initial checkin of the new concept approach
[physik/posic.git] / math / math.c
1 /*
2  * math.c - basic vector calculations
3  *
4  * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
5  *
6  */
7
8
9 #include <string.h>
10 #include "math.h"
11
12 int v3_add(t_3dvec *sum,t_3dvec *a,t_3dvec *b) {
13
14         sum->x=a->x+b->x;
15         sum->y=a->y+b->y;
16         sum->z=a->z+b->z;
17
18         return 0;
19 }
20
21 int v3_sub(t_3dvec *sum,t_3dvec *a,t_3dvec *b) {
22
23         sum->x=a->x-b->x;
24         sum->y=a->y-b->y;
25         sum->z=a->z-b->z;
26
27         return 0;
28 }
29
30 int v3_scale(t_3dvec *result,t_3dvec *a,double s) {
31
32         result->x=s*a->x;
33         result->y=s*a->y;
34         result->z=s*a->z;
35
36         return 0;
37 }
38
39 int v3_zero(t_3dvec *vec) {
40
41         vec->x=.0;
42         vec->y=.0;
43         vec->z=.0;
44
45         return 0;
46 }
47
48 int v3_set(t_3dvec *vec,double *ptr) {
49
50         memcpy(vec,ptr,sizeof(t_3dvec));
51
52         return 0;
53 }
54
55 int v3_copy(t_3dvec *trg,t_3dvec *src) {
56
57         memcpy(trg,src,sizeof(t_3dvec));
58
59         return 0;
60 }
61
62 int v3_cmp(t_3dvec *a,t_3dvec *b) {
63
64         return(memcmp(a,b,sizeof(t_3dvec)));
65 }
66