-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvector.h
31 lines (24 loc) · 831 Bytes
/
vector.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef VECTOR_H
#define VECTOR_H
typedef struct vector {
double x;
double y;
double z;
} vector;
vector *new_vector(double x, double y, double z);
vector *new_zvector();
vector *cpy_vector(const vector *v);
void set(vector *v, double x, double y, double z);
void assign(vector *v, const vector *u);
void add(const vector *l, const vector *r, vector *res);
void sub(const vector *l, const vector *r, vector *res);
void mul(const vector *l, double r, vector *res);
void move(vector *v, const vector *oth);
void scale(vector *v, double factor);
double dot(const vector *l, const vector *r);
void cross(const vector *l, const vector *r, vector *res);
double mixed(const vector *a, const vector *b, const vector *c);
double len_sq(const vector *v);
double len(const vector *v);
void dump(const vector *v);
#endif // VECTOR_H