| spLib
    | 
double型を扱うためのベクトル型です. [詳解]
#include <sp/vector.h>

| フィールド | |
| long | length | 
| double * | data | 
| double * | imag | 
| 関連関数 | |
| (これらはメソッドではありません) | |
| #define | dvnums(x, length, value) dvinit(x, (double)(value), 0.0, (double)(length)) | 
| #define | dvzeros(x, length) dvnums(x, length, 0.0) | 
| #define | dvones(x, length) dvnums(x, length, 1.0) | 
| #define | dvinums(x, length, value) dviinit(x, (double)(value), 0.0, (double)(length)) | 
| #define | dvizeros(x, length) dvinums(x, length, 0.0) | 
| #define | dviones(x, length) dvinums(x, length, 1.0) | 
| #define | dvrinums(x, length, value) dvriinit(x, (double)(value), 0.0, (double)(length)) | 
| #define | dvrizeros(x, length) dvrinums(x, length, 0.0) | 
| #define | dvriones(x, length) dvrinums(x, length, 1.0) | 
| #define | xdvnums(length, value) xdvinit((double)(value), 0.0, (double)(length)) | 
| #define | xdvnumsul(plugin, length, value, unlock_flag) xdvinitul(plugin, (double)(value), 0.0, (double)(length), unlock_flag) | 
| #define | xdvzeros(length) xdvnums(length, 0.0) | 
| #define | xdvzerosul(plugin, length, unlock_flag) xdvnumsul(plugin, length, 0.0, unlock_flag) | 
| #define | xdvones(length) xdvnums(length, 1.0) | 
| #define | xdvonesul(plugin, length, unlock_flag) xdvnumsul(plugin, length, 1.0, unlock_flag) | 
| #define | xdvnull() xdvalloc(0) | 
| #define | xdvnullul(plugin, unlock_flag) xdvallocul(plugin, 0, unlock_flag) | 
| #define | xdvrinums(length, value) xdvriinit((double)(value), 0.0, (double)(length)) | 
| #define | xdvrinumsul(plugin, length, value, unlock_flag) xdvriinitul(plugin, (double)(value), 0.0, (double)(length), unlock_flag) | 
| #define | xdvrizeros(length) xdvrinums(length, 0.0) | 
| #define | xdvrizerosul(plugin, length, unlock_flag) xdvrinumsul(plugin, length, 0.0, unlock_flag) | 
| #define | xdvriones(length) xdvrinums(length, 1.0) | 
| #define | xdvrionesul(plugin, length, unlock_flag) xdvrinumsul(plugin, length, 1.0, unlock_flag) | 
| #define | dvunset(x) dvset(x, NULL, 0) | 
| #define | dviunset(x) dviset(x, NULL, 0) | 
| ベクトル型用ファイル入出力 (<sp/fileio.h>) | |
| spDVector | xdvreaddsignal (const char *filename, long headlen, int swap) | 
| spDVector | xdvreadssignal (const char *filename, long headlen, int swap) | 
| spDVector | xdvreadlsignal (const char *filename, long headlen, int swap) | 
| spDVector | xdvreadfsignal (const char *filename, long headlen, int swap) | 
| spBool | dvwritedsignal (const char *filename, spDVector vector, int swap) | 
| spBool | dvwritessignal (const char *filename, spDVector vector, int swap) | 
| spBool | dvwritelsignal (const char *filename, spDVector vector, int swap) | 
| spBool | dvwritefsignal (const char *filename, spDVector vector, int swap) | 
| #define | xdvreaddvector(filename, swap) xdvreaddsignal((filename), 0, (swap)) | 
| #define | xdvreadsvector(filename, swap) xdvreadssignal((filename), 0, (swap)) | 
| #define | xdvreadlvector(filename, swap) xdvreadlsignal((filename), 0, (swap)) | 
| #define | xdvreadfvector(filename, swap) xdvreadfsignal((filename), 0, (swap)) | 
| #define | dvwritedvector(filename, vector, swap) dvwritedsignal(filename, vector, swap) | 
| #define | dvwritesvector(filename, vector, swap) dvwritessignal(filename, vector, swap) | 
| #define | dvwritelvector(filename, vector, swap) dvwritelsignal(filename, vector, swap) | 
| #define | dvwritefvector(filename, vector, swap) dvwritefsignal(filename, vector, swap) | 
double型を扱うためのベクトル型です.
実際には,クラスではなく, typedef struct _spDVector *spDVector; により typedef された型です. メモリを確保するには, xdvalloc() , xdvinit() などの xdv で始まる関数を呼び出す必要があります. また,メモリを解放するには, xdvfree() を呼ぶ必要があります. 
spDVector のメモリを確保し,ロック・アンロック状態を設定します.
spDVector のメモリを確保し,入力ベクトルの状態に基づいてロック・アンロック状態を設定します.
spDVector の実部と虚部のメモリを確保し,ロック・アンロック状態を設定します.
ベクトルの要素数を変更し,長くなった部分の要素を0に初期化します.
x のアドレスが返り,失敗時には SP_NODATA が返ります. | void dvreal | ( | spDVector | x | ) | 
x に対し,虚部が存在すれば虚部のメモリを解放し,実部のみのデータにします. 
| void dvimag | ( | spDVector | x | ) | 
x の虚部のみのデータにします.元々の虚部は実部となります. 
| void dvconj | ( | spDVector | x | ) | 
x の複素共役を計算します. 
| void dvriswap | ( | spDVector | x | ) | 
x の実部と虚部を入れ替えます. 
x のデータを y にコピーします.x の虚部は, y->imag != NULL が成り立つ場合にのみコピーされます. 
| long dvcopyfromarray | ( | spDVector | y, | 
| long | y_offset, | ||
| double * | data, | ||
| long | length ) | 
配列 data のデータをベクトル y の位置 y_offset へコピーします. 
| long dvcopyfromriarray | ( | spDVector | y, | 
| long | y_offset, | ||
| double * | data, | ||
| double * | imag, | ||
| long | length ) | 
実部が data ,虚部が imag である複素数配列のデータをベクトル y の位置 y_offset へコピーします. 
| long dvcopytoarray | ( | spDVector | x, | 
| long | x_offset, | ||
| double * | data, | ||
| long | length ) | 
ベクトル x の位置 x_offset から取り出したデータを,配列 data へコピーします. 
| long dvcopytoriarray | ( | spDVector | x, | 
| long | x_offset, | ||
| double * | data, | ||
| double * | imag, | ||
| long | length ) | 
ベクトル x の位置 x_offset から取り出したデータを,実部 data ,虚部 imag の複素数配列へコピーします. 
ベクトル x を,要素の値の範囲が m から n で増分が incr になるように初期化します. 
| spDVector xdvinit | ( | double | m, | 
| double | incr, | ||
| double | n ) | 
要素の値の範囲が m から n で増分が incr であるようなベクトルを新規に作成します. 
要素の値の範囲が m から n で増分が incr であるようなプラグインベースのベクトルを新規に作成します. 
ベクトル x の虚部を,要素の値の範囲が m から n で増分が incr になるように初期化します. 
ベクトル x の実部と虚部を,要素の値の範囲が m から n で増分が incr になるように初期化します. 
| spDVector xdvriinit | ( | double | m, | 
| double | incr, | ||
| double | n ) | 
実部と虚部において,要素の値の範囲が m から n で増分が incr であるようなベクトルを新規に作成します. 
実部と虚部において,要素の値の範囲が m から n で増分が incr であるようなプラグインベースのベクトルを新規に作成します. 
ベクトル x の offset から要素数 length 分のデータを取り出します. 
ベクトル x を要素数 x_length で切り出し,それをベクトル y の位置 y_offset へペーストします. 引数 overlap は,ペーストする際に重畳加算するかどうかを決定するフラグです. 
| long dvadd | ( | spDVector | y, | 
| long | y_offset, | ||
| spDVector | x, | ||
| long | x_offset, | ||
| long | x_length, | ||
| spBool | overlap ) | 
ベクトル x を位置 x_offset から要素数 x_length で切り出し,それをベクトル y の位置 y_offset へペーストします. 引数 overlap が SP_TRUE の場合には,ペーストする際に重畳加算します. 
ベクトル x の位置 offset から要素数 length 分のデータを0に設定します. 引数 inv が SP_TRUE の場合には,位置 offset から要素数 length 分のデータのみを残し,それ以外の区間を0に設定します. 
| void dvset | ( | spDVector | x, | 
| double * | data, | ||
| long | length ) | 
data のアドレスを x->data に設定します. 
| void dviset | ( | spDVector | x, | 
| double * | imag, | ||
| long | length ) | 
imag のアドレスを x->imag に設定します. 
data のアドレスをプラグインベースの新規ベクトルの data に設定します. 
| spDVector xdvset | ( | double * | data, | 
| long | length ) | 
data のアドレスを新規ベクトルの data に設定します. 
| spDVector xdvsetnew | ( | double * | data, | 
| long | length ) | 
実部が data と同じ内容を持つ新規ベクトルを作成します. 
ベクトル x の要素を,要素数 length の範囲内で値が value になるよう初期化します. 
ベクトル x の要素を,要素数 length の範囲内で値が0になるよう初期化します. 
ベクトル x の要素を,要素数 length の範囲内で値が1になるよう初期化します. 
ベクトル x の虚部の要素を,要素数 length の範囲内で値が value になるよう初期化します. 
ベクトル x の虚部の要素を,要素数 length の範囲内で値が0になるよう初期化します. 
ベクトル x の虚部の要素を,要素数 length の範囲内で値が1になるよう初期化します. 
ベクトル x の実部と虚部の両方の要素を,要素数 length の範囲内で値が value になるよう初期化します. 
ベクトル x の実部と虚部の両方の要素を,要素数 length の範囲内で値が0になるよう初期化します. 
ベクトル x の実部と虚部の両方の要素を,要素数 length の範囲内で値が1になるよう初期化します. 
要素の値が要素数 length の範囲内で value であるようなベクトルを新規に作成します. 
| 
 | related | 
要素の値が要素数 length の範囲内で value であるようなプラグインベースのベクトルを新規に作成します. 
| 
 | related | 
要素の値が要素数 length の範囲内で0であるようなプラグインベースのベクトルを新規に作成します. 
| 
 | related | 
要素の値が要素数 length の範囲内で1であるようなプラグインベースのベクトルを新規に作成します. 
| 
 | related | 
要素数0であるベクトルを新規に作成します.
| 
 | related | 
要素数0であるプラグインベースのベクトルを新規に作成します.
実部と虚部の両方の要素の値が要素数 length の範囲内で value であるようなベクトルを新規に作成します. 
| 
 | related | 
実部と虚部の両方の要素の値が要素数 length の範囲内で value であるようなプラグインベースのベクトルを新規に作成します. 
実部と虚部の両方の要素の値が要素数 length の範囲内で0であるようなベクトルを新規に作成します. 
| 
 | related | 
実部と虚部の両方の要素の値が要素数 length の範囲内で0であるようなプラグインベースのベクトルを新規に作成します. 
実部と虚部の両方の要素の値が要素数 length の範囲内で1であるようなベクトルを新規に作成します. 
| 
 | related | 
実部と虚部の両方の要素の値が要素数 length の範囲内で1であるようなプラグインベースのベクトルを新規に作成します. 
| 
 | related | 
x->data を NULL に設定します. 
| 
 | related | 
x->imag を NULL に設定します. 
| long length | 
ベクトルの要素数を保持します.メモリ確保された spDVector 型 x があった場合,その要素数は x->length で取得できます. 
| double* data | 
実部のデータを保持します.メモリ確保された spDVector 型 x があった場合,0番目の要素は x->data[0] で取得できます.