#include #include #ifndef __VEC_H__ #define __VEC_H__ #define NMAT 4 typedef struct _vector { double x, y, z; } Vector; typedef struct _line { Vector *start, *end; } Line; void vadd(Vector *a, Vector *b, Vector *c); void vsub(Vector *a, Vector *b, Vector *c); double dotprod(Vector *a, Vector *b); void crossprod(Vector *a, Vector *b, Vector *c); void smul(double s, Vector *a, Vector *b); void vnorm(Vector *src, Vector *dst); void vmul(double m[NMAT][NMAT], Vector *a, Vector *b); void mmult(double a[NMAT][NMAT], double b[NMAT][NMAT], double c[NMAT][NMAT]); void getmatrix(double m[NMAT][NMAT],Vector *p,Vector *v); void project(Vector *a, double d, Vector *ans); void printvec(Vector *v); void printmatrix(double m[NMAT][NMAT]); #endif