Mercurial > hg > ltpda
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 */