「Vector(API)」の版間の差分

提供: Eospedia
移動: 案内検索
(Kinoshita がページ「Vector」を「Vector(API)」に移動しました: コマンド及び他の記事との重複を避けるため)
行2: 行2:
  
 
== 構造体 ==
 
== 構造体 ==
*ベクトル(float, int, double)
+
ベクトル: float, int, double
 
  typedef struct floatVector {
 
  typedef struct floatVector {
 
  unsigned long size;
 
  unsigned long size;
行18: 行18:
 
  } doubleVector;
 
  } doubleVector;
 
   
 
   
size: ベクトルのサイズ(次元)
+
size: ベクトルのサイズ(次元)<br>
data: 実データ
+
data: 実データ
  
 
== API ==
 
== API ==
*初期化
+
===初期化===
 
  extern floatVector* floatVectorInit(floatVector* v, long size);
 
  extern floatVector* floatVectorInit(floatVector* v, long size);
 
  extern intVector* intVectorInit(intVector* v, long size);
 
  extern intVector* intVectorInit(intVector* v, long size);
 
  extern doubleVector* doubleVectorInit(doubleVector* v, long size);
 
  extern doubleVector* doubleVectorInit(doubleVector* v, long size);
  
*解放
+
===解放===
 
  extern floatVector* floatVectorFree(floatVector* v);
 
  extern floatVector* floatVectorFree(floatVector* v);
 
  extern intVector* intVectorFree(intVector* v);
 
  extern intVector* intVectorFree(intVector* v);
 
  extern doubleVector* doubleVectorFree(doubleVector* v);
 
  extern doubleVector* doubleVectorFree(doubleVector* v);
  
*加算
+
===加算===
 
  extern floatVector* floatVectorAdd(floatVector* v, floatVector* u, floatVector* w);
 
  extern floatVector* floatVectorAdd(floatVector* v, floatVector* u, floatVector* w);
 
  extern doubleVector* doubleVectorAdd(doubleVector* v, doubleVector* u, doubleVector* w);
 
  extern doubleVector* doubleVectorAdd(doubleVector* v, doubleVector* u, doubleVector* w);
  
*減算
+
===減算===
 
  extern floatVector* floatVectorMinus(floatVector* v, floatVector* u, floatVector* w);
 
  extern floatVector* floatVectorMinus(floatVector* v, floatVector* u, floatVector* w);
 
  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);

2014年5月19日 (月) 01:38時点における版

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);