diff src/c_sources/Vector.h @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/c_sources/Vector.h	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,68 @@
+/*
+ * Header for Vector.c
+ *
+ * $Id: Vector.h,v 1.1 2011/06/14 10:40:52 ingo Exp $
+ */
+
+#ifndef VECTOR_H
+#define VECTOR_H
+
+#ifndef ALLOCATE_ARRAY
+#define ALLOCATE_ARRAY(type, n) ((type *)calloc(n, sizeof(type)))
+#endif
+
+#ifndef ALLOCATE
+#define ALLOCATE(type)          ((type *)calloc(1, sizeof(type)))
+#endif
+
+#define NONE          -1
+#define WARNING        1
+#define INFO           2
+#define DEBUG          3
+#define VERBOSE_LEVEL  INFO
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct Vector
+{
+  /* size of vector */
+  long int size;
+  
+  /* data array containing vector elements */
+  double *data;
+} Vector;
+
+
+/* from Vector.c */
+void    printMsg(int level, char *format, ...);
+char   *toString(Vector *t);
+Vector *initVector(double *data, long int size);
+Vector *copyVector(Vector *in);
+void    freeVector(Vector *v);
+
+
+/* vector operations */
+Vector *vec_plus_s(Vector *v, double s);
+Vector *s_plus_vec(double s, Vector *v);
+Vector *vec_plus_vec(int num, Vector *v, ...);
+Vector *plus_internal(Vector *v, double s);
+Vector *plus_internal_v(Vector *v1, Vector *v2);
+
+Vector *vec_minus_s(Vector *v, double s);
+Vector *s_minus_vec(double s, Vector *v);
+
+Vector *vec_times_s(Vector *v, double s);
+Vector *s_times_vec(double s, Vector *v);
+Vector *vec_times_vec(int num, Vector *v, ...);
+Vector *times_internal(Vector *v, double s);
+Vector *times_internal_v(Vector *v1, Vector *v2);
+
+Vector *vec_div_s(Vector *v, double s);
+
+Vector *sin_of_vec(Vector *v);
+Vector *cos_of_vec(Vector *v);
+
+#endif /* VECTOR_H */