// copyright Min Zhong, cs838 proj2, April, 2000 #ifndef VECTOR_H #define VECTOR_H typedef double Point4[4]; void v3_assign(double vTo[3], double vFrom[3]); void v3_crossp(double v1[3], double v2[3], double vres[3]); void v3_dotp(double v1[3], double v2[3], double &a); /* vect vprod[3] = v[3] * s */ void v3_scale(double v[3], double s, double vprod[3]); void v3_add(double v1[3], double v2[3], double vres[3]); void v3_sub(double v1[3], double v2[3], double vres[3]); /* in case of tiny mag, make the vect 0 */ void v3_normalize(double v[3], double v_unit[3]); // for 4-d vectors void v4_scale(double v[4], double s, double vprod[4]); void v4_add(double v1[4], double v2[4], double vres[4]); void v4_sub(double v1[4], double v2[4], double vres[4]); void v4_assign(double vTo[4], double vFrom[4]); void v4_set(double vTo[4], double c); // set vect to a const void v4_normalize(double v[4], double v_unit[4]); /* in case of tiny mag, make the vect 0 */ #endif