「Vector(API)」の版間の差分
提供: Eospedia
行40: | 行40: | ||
extern doubleVector* doubleVectorMinus(doubleVector* v, doubleVector* u, doubleVector* w); | extern doubleVector* doubleVectorMinus(doubleVector* v, doubleVector* u, doubleVector* w); | ||
− | === | + | ===内積=== |
extern double floatVectorScalarProduct(floatVector* x, floatVector* y); | extern double floatVectorScalarProduct(floatVector* x, floatVector* y); | ||
extern double doubleVectorScalarProduct(doubleVector* x, doubleVector* y); | extern double doubleVectorScalarProduct(doubleVector* x, doubleVector* y); | ||
+ | |||
+ | ===長さ=== | ||
extern double lfloatVectorLength(floatVector* x); | extern double lfloatVectorLength(floatVector* x); | ||
extern double ldoubleVectorLength(doubleVector* x); | extern double ldoubleVectorLength(doubleVector* x); | ||
+ | ===未分類=== | ||
extern void lVectorSplineTableMake(floatVector* x, floatVector* y, floatVector* z); | extern void lVectorSplineTableMake(floatVector* x, floatVector* y, floatVector* z); | ||
extern void ldoubleVectorSplineTableMake(doubleVector* x, doubleVector* y, doubleVector* z); | extern void ldoubleVectorSplineTableMake(doubleVector* x, doubleVector* y, doubleVector* z); |
2014年5月22日 (木) 06:54時点における版
General/Vectorは、ベクトル表現のためのAPI です。
構造体
ベクトル: float, int, double
typedef struct floatVector { unsigned long size; float* data; } floatVector; typedef struct intVector { unsigned long size; int* data; } intVector; typedef struct doubleVector { unsigned long size; double* data; } doubleVector;
size: ベクトルのサイズ(次元)
data: 実データ
API
初期化
extern floatVector* floatVectorInit(floatVector* v, long size); extern intVector* intVectorInit(intVector* v, long size); extern doubleVector* doubleVectorInit(doubleVector* v, long size);
解放
extern floatVector* floatVectorFree(floatVector* v); extern intVector* intVectorFree(intVector* v); extern doubleVector* doubleVectorFree(doubleVector* v);
加算
extern floatVector* floatVectorAdd(floatVector* v, floatVector* u, floatVector* w); extern doubleVector* doubleVectorAdd(doubleVector* v, doubleVector* u, doubleVector* w);
減算
extern floatVector* floatVectorMinus(floatVector* v, floatVector* u, floatVector* w); extern doubleVector* doubleVectorMinus(doubleVector* v, doubleVector* u, doubleVector* w);
内積
extern double floatVectorScalarProduct(floatVector* x, floatVector* y); extern double doubleVectorScalarProduct(doubleVector* x, doubleVector* y);
長さ
extern double lfloatVectorLength(floatVector* x); extern double ldoubleVectorLength(doubleVector* x);
未分類
extern void lVectorSplineTableMake(floatVector* x, floatVector* y, floatVector* z); extern void ldoubleVectorSplineTableMake(doubleVector* x, doubleVector* y, doubleVector* z);
extern double lVectorSpline(double t, floatVector* x, floatVector* y, floatVector* z); extern double ldoubleVectorSpline(double t, doubleVector* x, doubleVector* y, doubleVector* z);
extern void lVectorSplineTable2DMake(floatVector* p, floatVector* x, floatVector* y, floatVector* a, floatVector* b); extern void ldoubleVectorSplineTable2DMake(doubleVector* p, doubleVector* x, doubleVector* y, doubleVector* a, doubleVector* b); extern void lVectorSpline2D(double t, double* px, double* py, floatVector* p, floatVector* x, floatVector* y, floatVector* a, floatVector* b); extern void ldoubleVectorSpline2D(double t, double* px, double* py, doubleVector* p, doubleVector* x, doubleVector* y, doubleVector* a, doubleVector* b);