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

公開メンバ関数 | |
ベクトル型用テキスト入出力 (<sp/fileio.h>) | |
| spBool | lvreadlvector_txt (const char *filename, spLVector vector) |
| spLVector | xlvreadlvector_txt (const char *filename) |
| spBool | lvreadcol_txt (const char *filename, int col, spLVector vector) |
| spLVector | xlvreadcol_txt (const char *filename, int col) |
| spBool | lvwritelvector_txt (const char *filename, spLVector vector) |
ベクトル出力 (<sp/fileio.h>) | |
| void | lvdump (spLVector vec) |
| void | lvfdump (spLVector vec, FILE *fp) |
| void | lvnfdump (FILE *fp,...) |
メモリ確保と解放 | |
| spLVector | xlvalloc (long length) |
| void | xlvfree (spLVector vector) |
| spLVector | xlvallocul (spPlugin *plugin, long length, spBool unlock_flag) |
| spLVector | xlvalloculfromv (spLVector x, long length) |
| void | lvrfree (spLVector x) |
| void | lvialloc (spLVector x) |
| void | lvifree (spLVector x) |
| spLVector | xlvriallocul (spPlugin *plugin, long length, spBool unlock_flag) |
| spLVector | xlvrialloc (long length) |
| spLVector | xlvrealloc (spLVector x, long length) |
ロック・アンロック | |
| spBool | lvisplugincomputable (spLVector x) |
| spBool | lvislocked (spLVector x) |
| spBool | lvlock (spLVector x) |
| spBool | lvunlock (spLVector x) |
| spBool | lvsetlock (spLVector x, spBool lock) |
| spBool | lvsync (spLVector x) |
複素数 | |
| spLVector | xlvcplx (spLVector xr, spLVector xi) |
| void | lvreal (spLVector x) |
| void | lvimag (spLVector x) |
| spLVector | xlvreal (spLVector x) |
| spLVector | xlvimag (spLVector x) |
| void | lvconj (spLVector x) |
| spLVector | xlvconj (spLVector x) |
| void | lvriswap (spLVector x) |
| spLVector | xlvriswap (spLVector x) |
データコピー | |
| void | lvcopy (spLVector y, spLVector x) |
| void | lvrcopyi (spLVector y, spLVector x) |
| void | lvicopyr (spLVector y, spLVector x) |
| long | lvcopyfromarray (spLVector y, long y_offset, long *data, long length) |
| long | lvcopyfromriarray (spLVector y, long y_offset, long *data, long *imag, long length) |
| long | lvcopytoarray (spLVector x, long x_offset, long *data, long length) |
| long | lvcopytoriarray (spLVector x, long x_offset, long *data, long *imag, long length) |
| spLVector | xlvclone (spLVector x) |
| spLVector | xlvcat (spLVector x, spLVector y) |
| void | lvcat (spLVector x, spLVector y) |
データ初期化 | |
| spBool | lvinit (spLVector x, long m, long incr, long n) |
| spLVector | xlvinit (long m, long incr, long n) |
| spLVector | xlvinitul (spPlugin *plugin, long m, long incr, long n, spBool unlock_flag) |
| spBool | lviinit (spLVector x, long m, long incr, long n) |
| spBool | lvriinit (spLVector x, long m, long incr, long n) |
| spLVector | xlvriinit (long m, long incr, long n) |
| spLVector | xlvriinitul (spPlugin *plugin, long m, long incr, long n, spBool unlock_flag) |
データ編集 | |
| spLVector | xlvcut (spLVector x, long offset, long length) |
| long | lvpaste (spLVector y, spLVector x, long y_offset, long x_length, spBool overlap) |
| long | lvadd (spLVector y, long y_offset, spLVector x, long x_offset, long x_length, spBool overlap) |
| void | lverase (spLVector x, long offset, long length, spBool inv) |
データ変更 | |
| void | lvset (spLVector x, long *data, long length) |
| void | lviset (spLVector x, long *imag, long length) |
| spLVector | xlvsetve (spPlugin *plugin, long *data, long length) |
| spLVector | xlvset (long *data, long length) |
| spLVector | xlvsetnew (long *data, long length) |
| spBool | lvsetval (spLVector x, long index, long value) |
| spBool | lvsetival (spLVector x, long index, long value) |
絶対値(<sp/vmath.h>) | |
| void | lvabs (spLVector x) |
| spLVector | xlvabs (spLVector x) |
平方根(<sp/vmath.h>) | |
| void | lvsqrt (spLVector x) |
| spLVector | xlvsqrt (spLVector x) |
自乗(<sp/vmath.h>) | |
| void | lvsquare (spLVector x) |
| spLVector | xlvsquare (spLVector x) |
符号関数(<sp/vmath.h>) | |
| void | lvsign (spLVector x) |
| spLVector | xlvsign (spLVector x) |
累積和(<sp/vmath.h>) | |
| void | lvcumsum (spLVector x) |
| spLVector | xlvcumsum (spLVector x) |
累積積(<sp/vmath.h>) | |
| void | lvcumprod (spLVector x) |
| spLVector | xlvcumprod (spLVector x) |
差分ベクトル(<sp/vmath.h>) | |
| void | lvcodiff (spLVector x, double coef) |
| spLVector | xlvcodiff (spLVector x, double coef) |
| #define | lvdiff(x) lvcodiff(x, 1.0); |
| #define | xlvdiff(x) xlvcodiff(x, 1.0); |
総和(<sp/vmath.h>) | |
| long | lvsum (spLVector x) |
| long | lvisum (spLVector x) |
| long | lvsqsum (spLVector x) |
| long | lvabssum (spLVector x) |
総乗(<sp/vmath.h>) | |
| long | lvprod (spLVector x) |
| long | lvriprod (spLVector x, long *oiprod) |
ノルム(<sp/vmath.h>) | |
| double | lvnorm (spLVector x, long p) |
内積(<sp/vmath.h>) | |
| long | lvdot (spLVector x, spLVector y) |
| void | lvcplxdot (spLVector x, spLVector y, long *re, long *im) |
平均・分散(<sp/vmath.h>) | |
| double | lvvar (spLVector x, double *mean) |
| double | lvstd (spLVector x, double *mean) |
| #define | lvmean(x) ((double)lvsum(x) / (double)x->length) |
最大・最小(<sp/vmath.h>) | |
| long | lvmin (spLVector x, long *index) |
| long | lvmax (spLVector x, long *index) |
| void | lvscmin (spLVector x, long a) |
| void | lvscmax (spLVector x, long a) |
| void | lvelmin (spLVector x, spLVector y) |
| void | lvelmax (spLVector x, spLVector y) |
ソート・中央値(<sp/vmath.h>) | |
| void | lvsort (spLVector x) |
| spLVector | xlvsort (spLVector x) |
| spLVector | xlvsortidx (spLVector x) |
| double | lvmedian (spLVector x) |
| spLVector | xlvmedian (spLVector x, double *median) |
零交差数(<sp/vmath.h>) | |
| long | lvzerocross (spLVector x, int slope_sign) |
四則演算(<sp/voperate.h>) | |
| void | lvoper (spLVector a, const char *op, spLVector b) |
| spLVector | xlvoper (spLVector a, const char *op, spLVector b) |
| void | lvscoper (spLVector a, const char *op, double t) |
| spLVector | xlvscoper (spLVector a, const char *op, double t) |
| void | lvcplxoper (spLVector a, const char *op, double tr, double ti) |
| spLVector | xlvcplxoper (spLVector a, const char *op, double tr, double ti) |
要素の並び替え(<sp/voperate.h>) | |
| spLVector | xlvremap (spLVector x, spLVector map) |
要素の抽出(<sp/voperate.h>) | |
| spLVector | xlvfind (spLVector x) |
| spLVector | xlvfindv (spLVector x) |
要素の比較(<sp/voperate.h>) | |
| void | lvsceval (spLVector x, const char *op, long t) |
| spLVector | xlvsceval (spLVector x, const char *op, long t) |
| spLVector | xlvscfind (spLVector x, const char *op, long t) |
| spLVector | xlvscfindv (spLVector x, const char *op, long t) |
フィールド | |
| long | length |
| long * | data |
| long * | imag |
関連関数 | |
(これらはメソッドではありません) | |
| #define | lvnums(x, length, value) lvinit(x, (long)(value), 0, (long)(length)) |
| #define | lvzeros(x, length) lvnums(x, length, 0) |
| #define | lvones(x, length) lvnums(x, length, 1) |
| #define | lvinums(x, length, value) lviinit(x, (long)(value), 0, (long)(length)) |
| #define | lvizeros(x, length) lvinums(x, length, 0.0) |
| #define | lviones(x, length) lvinums(x, length, 1.0) |
| #define | lvrinums(x, length, value) lvriinit(x, (long)(value), 0, (long)(length)) |
| #define | lvrizeros(x, length) lvrinums(x, length, 0.0) |
| #define | lvriones(x, length) lvrinums(x, length, 1.0) |
| #define | xlvnums(length, value) xlvinit((long)(value), 0, (long)(length)) |
| #define | xlvnumsul(plugin, length, value, unlock_flag) xlvinitul(plugin, (long)(value), 0, (long)(length), unlock_flag) |
| #define | xlvzeros(length) xlvnums(length, 0) |
| #define | xlvzerosul(plugin, length, unlock_flag) xlvnumsul(plugin, length, 0, unlock_flag) |
| #define | xlvones(length) xlvnums(length, 1) |
| #define | xlvonesul(plugin, length, unlock_flag) xlvnumsul(plugin, length, 1, unlock_flag) |
| #define | xlvnull() xlvalloc(0) |
| #define | xlvnullul(plugin, unlock_flag) xlvallocul(plugin, 0, unlock_flag) |
| #define | xlvrinums(length, value) xlvriinit((long)(value), 0, (long)(length)) |
| #define | xlvrinumsul(plugin, length, value, unlock_flag) xlvriinitul(plugin, (long)(value), 0, (long)(length), unlock_flag) |
| #define | xlvrizeros(length) xlvrinums(length, 0) |
| #define | xlvrizerosul(plugin, length, unlock_flag) xlvrinumsul(plugin, length, 0, unlock_flag) |
| #define | xlvriones(length) xlvrinums(length, 1) |
| #define | xlvrionesul(plugin, length, unlock_flag) xlvrinumsul(plugin, length, 1, unlock_flag) |
| #define | lvunset(x) lvset(x, NULL, 0) |
| #define | lviunset(x) lviset(x, NULL, 0) |
ベクトル型用ファイル入出力 (<sp/fileio.h>) | |
| spLVector | xlvreadlsignal (const char *filename, long headlen, int swap) |
| spBool | lvwritelsignal (const char *filename, spLVector vector, int swap) |
| #define | xlvreadlvector(filename, swap) xlvreadlsignal((filename), 0, (swap)) |
| #define | lvwritelvector(filename, vector, swap) lvwritelsignal(filename, vector, swap) |
long型を扱うためのベクトル型です.
実際には,クラスではなく, typedef struct _spLVector *spLVector; により typedef された型です. メモリを確保するには, xlvalloc() , xlvinit() などの xlv で始まる関数を呼び出す必要があります. また,メモリを解放するには, xlvfree() を呼ぶ必要があります.
spLVector のメモリを確保し,ロック・アンロック状態を設定します.
spLVector のメモリを確保し,入力ベクトルの状態に基づいてロック・アンロック状態を設定します.
spLVector の実部と虚部のメモリを確保し,ロック・アンロック状態を設定します.
ベクトルの要素数を変更し,長くなった部分の要素を0に初期化します.
x のアドレスが返り,失敗時には SP_NODATA が返ります. | void lvreal | ( | spLVector | x | ) |
x に対し,虚部が存在すれば虚部のメモリを解放し,実部のみのデータにします.
| void lvimag | ( | spLVector | x | ) |
x の虚部のみのデータにします.元々の虚部は実部となります.
| void lvconj | ( | spLVector | x | ) |
x の複素共役を計算します.
| void lvriswap | ( | spLVector | x | ) |
x の実部と虚部を入れ替えます.
x のデータを y にコピーします.x の虚部は, y->imag != NULL が成り立つ場合にのみコピーされます.
| long lvcopyfromarray | ( | spLVector | y, |
| long | y_offset, | ||
| long * | data, | ||
| long | length ) |
配列 data のデータをベクトル y の位置 y_offset へコピーします.
| long lvcopyfromriarray | ( | spLVector | y, |
| long | y_offset, | ||
| long * | data, | ||
| long * | imag, | ||
| long | length ) |
実部が data ,虚部が imag である複素数配列のデータをベクトル y の位置 y_offset へコピーします.
| long lvcopytoarray | ( | spLVector | x, |
| long | x_offset, | ||
| long * | data, | ||
| long | length ) |
ベクトル x の位置 x_offset から取り出したデータを,配列 data へコピーします.
| long lvcopytoriarray | ( | spLVector | x, |
| long | x_offset, | ||
| long * | data, | ||
| long * | imag, | ||
| long | length ) |
ベクトル x の位置 x_offset から取り出したデータを,実部 data ,虚部 imag の複素数配列へコピーします.
ベクトル x を,要素の値の範囲が m から n で増分が incr になるように初期化します.
| spLVector xlvinit | ( | long | m, |
| long | incr, | ||
| long | n ) |
要素の値の範囲が m から n で増分が incr であるようなベクトルを新規に作成します.
要素の値の範囲が m から n で増分が incr であるようなプラグインベースのベクトルを新規に作成します.
ベクトル x の虚部を,要素の値の範囲が m から n で増分が incr になるように初期化します.
ベクトル x の実部と虚部を,要素の値の範囲が m から n で増分が incr になるように初期化します.
| spLVector xlvriinit | ( | long | m, |
| long | incr, | ||
| long | n ) |
実部と虚部において,要素の値の範囲が m から n で増分が incr であるようなベクトルを新規に作成します.
実部と虚部において,要素の値の範囲が m から n で増分が incr であるようなプラグインベースのベクトルを新規に作成します.
ベクトル x の offset から要素数 length 分のデータを取り出します.
ベクトル x を要素数 x_length で切り出し,それをベクトル y の位置 y_offset へペーストします. 引数 overlap は,ペーストする際に重畳加算するかどうかを決定するフラグです.
| long lvadd | ( | spLVector | y, |
| long | y_offset, | ||
| spLVector | 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 lvset | ( | spLVector | x, |
| long * | data, | ||
| long | length ) |
data のアドレスを x->data に設定します.
| void lviset | ( | spLVector | x, |
| long * | imag, | ||
| long | length ) |
imag のアドレスを x->imag に設定します.
data のアドレスをプラグインベースの新規ベクトルの data に設定します.
| spLVector xlvset | ( | long * | data, |
| long | length ) |
data のアドレスを新規ベクトルの data に設定します.
| spLVector xlvsetnew | ( | long * | 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であるようなプラグインベースのベクトルを新規に作成します.
要素の値が要素数 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 |
ベクトルの要素数を保持します.メモリ確保された spLVector 型 x があった場合,その要素数は x->length で取得できます.
| long* data |
実部のデータを保持します.メモリ確保された spLVector 型 x があった場合,0番目の要素は x->data[0] で取得できます.
| long* imag |
虚部のデータを保持します.メモリ確保された spLVector 型 x があった場合,0番目の要素は x->imag[0] で取得できます.虚部が存在しない場合はNULLであることがあります.