OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/eos/base
[eos/hostdependX86LINUX64.git] / include / Vector.h
1 /*
2 # %M% %Y% %I%
3 # The latest update : %G% at %U%
4 #
5 #%Z% Vector.h ver %I%
6 #%Z% Created by 
7 #%Z%
8 #%Z% Usage : Vector.h 
9 #%Z% Attention
10 #%Z%
11 */
12
13 #ifndef VECTOR_H
14 #define VECTOR_H
15
16 /* struct begin */
17 typedef struct floatVector {
18         unsigned long size;
19         float*        data;
20 } floatVector;
21
22 typedef struct intVector {
23         unsigned long size;
24         int*        data;
25 } intVector;
26
27 /* struct end */
28
29 /* prototype begin */
30 extern floatVector* floatVectorInit(floatVector* v, long size);
31 extern floatVector* floatVectorFree(floatVector* v);
32
33 extern intVector* intVectorInit(intVector* v, long size);
34 extern intVector* intVectorFree(intVector* v);
35
36
37 extern floatVector* floatVectorAdd(floatVector* v, floatVector* u, floatVector* w);
38 extern floatVector* floatVectorMinus(floatVector* v, floatVector* u, floatVector* w);
39
40 extern double floatVectorScalarProduct(floatVector* x, floatVector* y);
41 extern double lfloatVectorLength(floatVector* x);
42
43 extern void lVectorSplineTableMake(floatVector* x, floatVector* y, floatVector* z);
44
45 extern double lVectorSpline(double t, floatVector* x, floatVector* y, floatVector* z);
46
47 extern void lVectorSplineTable2DMake(floatVector* p, floatVector* x, floatVector* y, floatVector* a, floatVector* b);
48 extern void lVectorSpline2D(double t, double* px, double* py, 
49 floatVector* p, floatVector* x, floatVector* y,
50 floatVector* a, floatVector* b);
51 /* prototype end */
52
53 /* struct begin */
54 typedef struct doubleVector {
55         unsigned long size;
56         double*        data;
57 } doubleVector;
58 /* struct end */
59
60 /* prototype begin */
61 extern doubleVector* doubleVectorInit(doubleVector* v, long size);
62 extern doubleVector* doubleVectorFree(doubleVector* v);
63 extern doubleVector* doubleVectorAdd(doubleVector* v, doubleVector* u, doubleVector* w);
64 extern doubleVector* doubleVectorMinus(doubleVector* v, doubleVector* u, doubleVector* w);
65
66 extern double doubleVectorScalarProduct(doubleVector* x, doubleVector* y);
67 extern double ldoubleVectorLength(doubleVector* x);
68
69 extern void ldoubleVectorSplineTableMake(doubleVector* x, doubleVector* y, doubleVector* z);
70
71 extern double ldoubleVectorSpline(double t, doubleVector* x, doubleVector* y, doubleVector* z);
72
73 extern void ldoubleVectorSplineTable2DMake(doubleVector* p, doubleVector* x, doubleVector* y, doubleVector* a, doubleVector* b);
74 extern void ldoubleVectorSpline2D(double t, double* px, double* py, 
75 doubleVector* p, doubleVector* x, doubleVector* y,
76 doubleVector* a, doubleVector* b);
77 /* prototype begin */
78
79 #endif /* VECTOR_H */