spLib
|
float型を扱うためのベクトル型です. [詳解]
#include <sp/vector.h>
フィールド | |
long | length |
float * | data |
float * | imag |
関連関数 | |
(これらはメソッドではありません) | |
#define | fvnums(x, length, value) fvinit(x, (float)(value), 0.0, (float)(length)) |
#define | fvzeros(x, length) fvnums(x, length, 0.0) |
#define | fvones(x, length) fvnums(x, length, 1.0) |
#define | fvinums(x, length, value) fviinit(x, (float)(value), 0.0, (float)(length)) |
#define | fvizeros(x, length) fvinums(x, length, 0.0) |
#define | fviones(x, length) fvinums(x, length, 1.0) |
#define | fvrinums(x, length, value) fvriinit(x, (float)(value), 0.0, (float)(length)) |
#define | fvrizeros(x, length) fvrinums(x, length, 0.0) |
#define | fvriones(x, length) fvrinums(x, length, 1.0) |
#define | xfvnums(length, value) xfvinit((float)(value), 0.0, (float)(length)) |
#define | xfvnumsul(plugin, length, value, unlock_flag) xfvinitul(plugin, (float)(value), 0.0, (float)(length), unlock_flag) |
#define | xfvzeros(length) xfvnums(length, 0.0) |
#define | xfvzerosul(plugin, length, unlock_flag) xfvnumsul(plugin, length, 0.0, unlock_flag) |
#define | xfvones(length) xfvnums(length, 1.0) |
#define | xfvonesul(plugin, length, unlock_flag) xfvnumsul(plugin, length, 1.0, unlock_flag) |
#define | xfvnull() xfvalloc(0) |
#define | xfvnullul(plugin, unlock_flag) xfvallocul(plugin, 0, unlock_flag) |
#define | xfvrinums(length, value) xfvriinit((float)(value), 0.0, (float)(length)) |
#define | xfvrinumsul(plugin, length, value, unlock_flag) xfvriinitul(plugin, (float)(value), 0.0, (float)(length), unlock_flag) |
#define | xfvrizeros(length) xfvrinums(length, 0.0) |
#define | xfvrizerosul(plugin, length, unlock_flag) xfvrinumsul(plugin, length, 0.0, unlock_flag) |
#define | xfvriones(length) xfvrinums(length, 1.0) |
#define | xfvrionesul(plugin, length, unlock_flag) xfvrinumsul(plugin, length, 1.0, unlock_flag) |
#define | fvunset(x) fvset(x, NULL, 0) |
#define | fviunset(x) fviset(x, NULL, 0) |
ベクトル型用ファイル入出力 (<sp/fileio.h>) | |
spFVector | xfvreadfsignal (const char *filename, long headlen, int swap) |
spBool | fvwritefsignal (const char *filename, spFVector vector, int swap) |
#define | xfvreadfvector(filename, swap) xfvreadfsignal((filename), 0, (swap)) |
#define | fvwritefvector(filename, vector, swap) fvwritefsignal(filename, vector, swap) |
float型を扱うためのベクトル型です.
実際には,クラスではなく, typedef struct _spFVector *spFVector;
により typedef された型です. メモリを確保するには, xfvalloc() , xfvinit() などの xfv で始まる関数を呼び出す必要があります. また,メモリを解放するには, xfvfree() を呼ぶ必要があります.
spFVector のメモリを確保し,ロック・アンロック状態を設定します.
spFVector のメモリを確保し,入力ベクトルの状態に基づいてロック・アンロック状態を設定します.
spFVector の実部と虚部のメモリを確保し,ロック・アンロック状態を設定します.
ベクトルの要素数を変更し,長くなった部分の要素を0に初期化します.
x
のアドレスが返り,失敗時には SP_NODATA が返ります. void fvreal | ( | spFVector | x | ) |
x
に対し,虚部が存在すれば虚部のメモリを解放し,実部のみのデータにします.
void fvimag | ( | spFVector | x | ) |
x
の虚部のみのデータにします.元々の虚部は実部となります.
void fvconj | ( | spFVector | x | ) |
x
の複素共役を計算します.
void fvriswap | ( | spFVector | x | ) |
x
の実部と虚部を入れ替えます.
x
のデータを y
にコピーします.x
の虚部は, y->imag != NULL
が成り立つ場合にのみコピーされます.
long fvcopyfromarray | ( | spFVector | y, |
long | y_offset, | ||
float * | data, | ||
long | length ) |
配列 data
のデータをベクトル y
の位置 y_offset
へコピーします.
long fvcopyfromriarray | ( | spFVector | y, |
long | y_offset, | ||
float * | data, | ||
float * | imag, | ||
long | length ) |
実部が data
,虚部が imag
である複素数配列のデータをベクトル y
の位置 y_offset
へコピーします.
long fvcopytoarray | ( | spFVector | x, |
long | x_offset, | ||
float * | data, | ||
long | length ) |
ベクトル x
の位置 x_offset
から取り出したデータを,配列 data
へコピーします.
long fvcopytoriarray | ( | spFVector | x, |
long | x_offset, | ||
float * | data, | ||
float * | imag, | ||
long | length ) |
ベクトル x
の位置 x_offset
から取り出したデータを,実部 data
,虚部 imag
の複素数配列へコピーします.
ベクトル x
を,要素の値の範囲が m
から n
で増分が incr
になるように初期化します.
spFVector xfvinit | ( | float | m, |
float | incr, | ||
float | n ) |
要素の値の範囲が m
から n
で増分が incr
であるようなベクトルを新規に作成します.
要素の値の範囲が m
から n
で増分が incr
であるようなプラグインベースのベクトルを新規に作成します.
ベクトル x
の虚部を,要素の値の範囲が m
から n
で増分が incr
になるように初期化します.
ベクトル x
の実部と虚部を,要素の値の範囲が m
から n
で増分が incr
になるように初期化します.
spFVector xfvriinit | ( | float | m, |
float | incr, | ||
float | n ) |
実部と虚部において,要素の値の範囲が m
から n
で増分が incr
であるようなベクトルを新規に作成します.
実部と虚部において,要素の値の範囲が m
から n
で増分が incr
であるようなプラグインベースのベクトルを新規に作成します.
ベクトル x
の offset
から要素数 length
分のデータを取り出します.
ベクトル x
を要素数 x_length
で切り出し,それをベクトル y
の位置 y_offset
へペーストします. 引数 overlap
は,ペーストする際に重畳加算するかどうかを決定するフラグです.
long fvadd | ( | spFVector | y, |
long | y_offset, | ||
spFVector | 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 fvset | ( | spFVector | x, |
float * | data, | ||
long | length ) |
data
のアドレスを x->data
に設定します.
void fviset | ( | spFVector | x, |
float * | imag, | ||
long | length ) |
imag
のアドレスを x->imag
に設定します.
data
のアドレスをプラグインベースの新規ベクトルの data
に設定します.
spFVector xfvset | ( | float * | data, |
long | length ) |
data
のアドレスを新規ベクトルの data
に設定します.
spFVector xfvsetnew | ( | float * | 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 に設定します.
float* data |
実部のデータを保持します.メモリ確保された spFVector 型 x
があった場合,0番目の要素は x->data
[0] で取得できます.
float* imag |
虚部のデータを保持します.メモリ確保された spFVector 型 x
があった場合,0番目の要素は x->imag
[0] で取得できます.虚部が存在しない場合はNULLであることがあります.