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

公開メンバ関数 | |
ベクトル型用テキスト入出力 (<sp/fileio.h>) | |
| spBool | svreadsvector_txt (const char *filename, spSVector vector) |
| spSVector | xsvreadsvector_txt (const char *filename) |
| spBool | svreadcol_txt (const char *filename, int col, spSVector vector) |
| spSVector | xsvreadcol_txt (const char *filename, int col) |
| spBool | svwritesvector_txt (const char *filename, spSVector vector) |
ベクトル出力 (<sp/fileio.h>) | |
| void | svdump (spSVector vec) |
| void | svfdump (spSVector vec, FILE *fp) |
| void | svnfdump (FILE *fp,...) |
メモリ確保と解放 | |
| spSVector | xsvalloc (long length) |
| void | xsvfree (spSVector vector) |
| spSVector | xsvallocul (spPlugin *plugin, long length, spBool unlock_flag) |
| spSVector | xsvalloculfromv (spSVector x, long length) |
| void | svrfree (spSVector x) |
| void | svialloc (spSVector x) |
| void | svifree (spSVector x) |
| spSVector | xsvriallocul (spPlugin *plugin, long length, spBool unlock_flag) |
| spSVector | xsvrialloc (long length) |
| spSVector | xsvrealloc (spSVector x, long length) |
ロック・アンロック | |
| spBool | svisplugincomputable (spSVector x) |
| spBool | svislocked (spSVector x) |
| spBool | svlock (spSVector x) |
| spBool | svunlock (spSVector x) |
| spBool | svsetlock (spSVector x, spBool lock) |
| spBool | svsync (spSVector x) |
複素数 | |
| spSVector | xsvcplx (spSVector xr, spSVector xi) |
| void | svreal (spSVector x) |
| void | svimag (spSVector x) |
| spSVector | xsvreal (spSVector x) |
| spSVector | xsvimag (spSVector x) |
| void | svconj (spSVector x) |
| spSVector | xsvconj (spSVector x) |
| void | svriswap (spSVector x) |
| spSVector | xsvriswap (spSVector x) |
データコピー | |
| void | svcopy (spSVector y, spSVector x) |
| void | svrcopyi (spSVector y, spSVector x) |
| void | svicopyr (spSVector y, spSVector x) |
| long | svcopyfromarray (spSVector y, long y_offset, short *data, long length) |
| long | svcopyfromriarray (spSVector y, long y_offset, short *data, short *imag, long length) |
| long | svcopytoarray (spSVector x, long x_offset, short *data, long length) |
| long | svcopytoriarray (spSVector x, long x_offset, short *data, short *imag, long length) |
| spLVector | xsvtol (spSVector x) |
| spFVector | xsvtof (spSVector x) |
| spDVector | xsvtod (spSVector x) |
| spSVector | xsvclone (spSVector x) |
| spSVector | xsvcat (spSVector x, spSVector y) |
| void | svcat (spSVector x, spSVector y) |
データ初期化 | |
| spBool | svinit (spSVector x, long m, long incr, long n) |
| spSVector | xsvinit (long m, long incr, long n) |
| spSVector | xsvinitul (spPlugin *plugin, long m, long incr, long n, spBool unlock_flag) |
| spBool | sviinit (spSVector x, long m, long incr, long n) |
| spBool | svriinit (spSVector x, long m, long incr, long n) |
| spSVector | xsvriinit (long m, long incr, long n) |
| spSVector | xsvriinitul (spPlugin *plugin, long m, long incr, long n, spBool unlock_flag) |
データ編集 | |
| spSVector | xsvcut (spSVector x, long offset, long length) |
| long | svpaste (spSVector y, spSVector x, long y_offset, long x_length, spBool overlap) |
| long | svadd (spSVector y, long y_offset, spSVector x, long x_offset, long x_length, spBool overlap) |
| void | sverase (spSVector x, long offset, long length, spBool inv) |
データ変更 | |
| void | svset (spSVector x, short *data, long length) |
| void | sviset (spSVector x, short *imag, long length) |
| spSVector | xsvsetve (spPlugin *plugin, short *data, long length) |
| spSVector | xsvset (short *data, long length) |
| spSVector | xsvsetnew (short *data, long length) |
| spBool | svsetval (spSVector x, long index, short value) |
| spBool | svsetival (spSVector x, long index, short value) |
絶対値(<sp/vmath.h>) | |
| void | svabs (spSVector x) |
| spSVector | xsvabs (spSVector x) |
平方根(<sp/vmath.h>) | |
| void | svsqrt (spSVector x) |
| spSVector | xsvsqrt (spSVector x) |
自乗(<sp/vmath.h>) | |
| void | svsquare (spSVector x) |
| spSVector | xsvsquare (spSVector x) |
符号関数(<sp/vmath.h>) | |
| void | svsign (spSVector x) |
| spSVector | xsvsign (spSVector x) |
累積和(<sp/vmath.h>) | |
| void | svcumsum (spSVector x) |
| spSVector | xsvcumsum (spSVector x) |
累積積(<sp/vmath.h>) | |
| void | svcumprod (spSVector x) |
| spSVector | xsvcumprod (spSVector x) |
差分ベクトル(<sp/vmath.h>) | |
| void | svcodiff (spSVector x, double coef) |
| spSVector | xsvcodiff (spSVector x, double coef) |
| #define | svdiff(x) svcodiff(x, 1.0); |
| #define | xsvdiff(x) xsvcodiff(x, 1.0); |
総和(<sp/vmath.h>) | |
| long | svsum (spSVector x) |
| long | svisum (spSVector x) |
| long | svsqsum (spSVector x) |
| long | svabssum (spSVector x) |
総乗(<sp/vmath.h>) | |
| long | svprod (spSVector x) |
| long | svriprod (spSVector x, long *oiprod) |
ノルム(<sp/vmath.h>) | |
| double | svnorm (spSVector x, long p) |
内積(<sp/vmath.h>) | |
| long | svdot (spSVector x, spSVector y) |
| void | svcplxdot (spSVector x, spSVector y, long *re, long *im) |
平均・分散(<sp/vmath.h>) | |
| double | svvar (spSVector x, double *mean) |
| double | svstd (spSVector x, double *mean) |
| #define | svmean(x) ((double)svsum(x) / (double)x->length) |
最大・最小(<sp/vmath.h>) | |
| short | svmin (spSVector x, long *index) |
| short | svmax (spSVector x, long *index) |
| void | svscmin (spSVector x, short a) |
| void | svscmax (spSVector x, short a) |
| void | svelmin (spSVector x, spSVector y) |
| void | svelmax (spSVector x, spSVector y) |
ソート・中央値(<sp/vmath.h>) | |
| void | svsort (spSVector x) |
| spSVector | xsvsort (spSVector x) |
| spLVector | xsvsortidx (spSVector x) |
| double | svmedian (spSVector x) |
| spSVector | xsvmedian (spSVector x, double *median) |
零交差数(<sp/vmath.h>) | |
| long | svzerocross (spSVector x, int slope_sign) |
四則演算(<sp/voperate.h>) | |
| void | svoper (spSVector a, const char *op, spSVector b) |
| spSVector | xsvoper (spSVector a, const char *op, spSVector b) |
| void | svscoper (spSVector a, const char *op, double t) |
| spSVector | xsvscoper (spSVector a, const char *op, double t) |
| void | svcplxoper (spSVector a, const char *op, double tr, double ti) |
| spSVector | xsvcplxoper (spSVector a, const char *op, double tr, double ti) |
要素の並び替え(<sp/voperate.h>) | |
| spSVector | xsvremap (spSVector x, spLVector map) |
要素の抽出(<sp/voperate.h>) | |
| spLVector | xsvfind (spSVector x) |
| spSVector | xsvfindv (spSVector x) |
要素の比較(<sp/voperate.h>) | |
| void | svsceval (spSVector x, const char *op, short t) |
| spSVector | xsvsceval (spSVector x, const char *op, short t) |
| spLVector | xsvscfind (spSVector x, const char *op, short t) |
| spSVector | xsvscfindv (spSVector x, const char *op, short t) |
フィールド | |
| long | length |
| short * | data |
| short * | imag |
関連関数 | |
(これらはメソッドではありません) | |
| #define | svnums(x, length, value) svinit(x, (long)(value), 0, (long)(length)) |
| #define | svzeros(x, length) svnums(x, length, 0) |
| #define | svones(x, length) svnums(x, length, 1) |
| #define | svinums(x, length, value) sviinit(x, (long)(value), 0, (long)(length)) |
| #define | svizeros(x, length) svinums(x, length, 0.0) |
| #define | sviones(x, length) svinums(x, length, 1.0) |
| #define | svrinums(x, length, value) svriinit(x, (long)(value), 0, (long)(length)) |
| #define | svrizeros(x, length) svrinums(x, length, 0.0) |
| #define | svriones(x, length) svrinums(x, length, 1.0) |
| #define | xsvnums(length, value) xsvinit((long)(value), 0, (long)(length)) |
| #define | xsvnumsul(plugin, length, value, unlock_flag) xsvinitul(plugin, (long)(value), 0, (long)(length), unlock_flag) |
| #define | xsvzeros(length) xsvnums(length, 0) |
| #define | xsvzerosul(plugin, length, unlock_flag) xsvnumsul(plugin, length, 0, unlock_flag) |
| #define | xsvones(length) xsvnums(length, 1) |
| #define | xsvonesul(plugin, length, unlock_flag) xsvnumsul(plugin, length, 1, unlock_flag) |
| #define | xsvnull() xsvalloc(0) |
| #define | xsvnullul(plugin, unlock_flag) xsvallocul(plugin, 0, unlock_flag) |
| #define | xsvrinums(length, value) xsvriinit((long)(value), 0, (long)(length)) |
| #define | xsvrinumsul(plugin, length, value, unlock_flag) xsvriinitul(plugin, (long)(value), 0, (long)(length), unlock_flag) |
| #define | xsvrizeros(length) xsvrinums(length, 0) |
| #define | xsvrizerosul(plugin, length, unlock_flag) xsvrinumsul(plugin, length, 0, unlock_flag) |
| #define | xsvriones(length) xsvrinums(length, 1) |
| #define | xsvrionesul(plugin, length, unlock_flag) xsvrinumsul(plugin, length, 1, unlock_flag) |
| #define | svunset(x) svset(x, NULL, 0) |
| #define | sviunset(x) sviset(x, NULL, 0) |
ベクトル型用ファイル入出力 (<sp/fileio.h>) | |
| spSVector | xsvreadssignal (const char *filename, long headlen, int swap) |
| spBool | svwritessignal (const char *filename, spSVector vector, int swap) |
| #define | xsvreadsvector(filename, swap) xsvreadssignal((filename), 0, (swap)) |
| #define | svwritesvector(filename, vector, swap) svwritessignal(filename, vector, swap) |
short型を扱うためのベクトル型です.
実際には,クラスではなく, typedef struct _spSVector *spSVector; により typedef された型です. メモリを確保するには, xsvalloc() , xsvinit() などの xsv で始まる関数を呼び出す必要があります. また,メモリを解放するには, xsvfree() を呼ぶ必要があります.
spSVector のメモリを確保し,ロック・アンロック状態を設定します.
spSVector のメモリを確保し,入力ベクトルの状態に基づいてロック・アンロック状態を設定します.
spSVector の実部と虚部のメモリを確保し,ロック・アンロック状態を設定します.
ベクトルの要素数を変更し,長くなった部分の要素を0に初期化します.
x のアドレスが返り,失敗時には SP_NODATA が返ります. | void svreal | ( | spSVector | x | ) |
x に対し,虚部が存在すれば虚部のメモリを解放し,実部のみのデータにします.
| void svimag | ( | spSVector | x | ) |
x の虚部のみのデータにします.元々の虚部は実部となります.
| void svconj | ( | spSVector | x | ) |
x の複素共役を計算します.
| void svriswap | ( | spSVector | x | ) |
x の実部と虚部を入れ替えます.
x のデータを y にコピーします.x の虚部は, y->imag != NULL が成り立つ場合にのみコピーされます.
| long svcopyfromarray | ( | spSVector | y, |
| long | y_offset, | ||
| short * | data, | ||
| long | length ) |
配列 data のデータをベクトル y の位置 y_offset へコピーします.
| long svcopyfromriarray | ( | spSVector | y, |
| long | y_offset, | ||
| short * | data, | ||
| short * | imag, | ||
| long | length ) |
実部が data ,虚部が imag である複素数配列のデータをベクトル y の位置 y_offset へコピーします.
| long svcopytoarray | ( | spSVector | x, |
| long | x_offset, | ||
| short * | data, | ||
| long | length ) |
ベクトル x の位置 x_offset から取り出したデータを,配列 data へコピーします.
| long svcopytoriarray | ( | spSVector | x, |
| long | x_offset, | ||
| short * | data, | ||
| short * | imag, | ||
| long | length ) |
ベクトル x の位置 x_offset から取り出したデータを,実部 data ,虚部 imag の複素数配列へコピーします.
ベクトル x を,要素の値の範囲が m から n で増分が incr になるように初期化します.
| spSVector xsvinit | ( | long | m, |
| long | incr, | ||
| long | n ) |
要素の値の範囲が m から n で増分が incr であるようなベクトルを新規に作成します.
要素の値の範囲が m から n で増分が incr であるようなプラグインベースのベクトルを新規に作成します.
ベクトル x の虚部を,要素の値の範囲が m から n で増分が incr になるように初期化します.
ベクトル x の実部と虚部を,要素の値の範囲が m から n で増分が incr になるように初期化します.
| spSVector xsvriinit | ( | long | m, |
| long | incr, | ||
| long | n ) |
実部と虚部において,要素の値の範囲が m から n で増分が incr であるようなベクトルを新規に作成します.
実部と虚部において,要素の値の範囲が m から n で増分が incr であるようなプラグインベースのベクトルを新規に作成します.
ベクトル x の offset から要素数 length 分のデータを取り出します.
ベクトル x を要素数 x_length で切り出し,それをベクトル y の位置 y_offset へペーストします. 引数 overlap は,ペーストする際に重畳加算するかどうかを決定するフラグです.
| long svadd | ( | spSVector | y, |
| long | y_offset, | ||
| spSVector | 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 svset | ( | spSVector | x, |
| short * | data, | ||
| long | length ) |
data のアドレスを x->data に設定します.
| void sviset | ( | spSVector | x, |
| short * | imag, | ||
| long | length ) |
imag のアドレスを x->imag に設定します.
data のアドレスをプラグインベースの新規ベクトルの data に設定します.
| spSVector xsvset | ( | short * | data, |
| long | length ) |
data のアドレスを新規ベクトルの data に設定します.
| spSVector xsvsetnew | ( | short * | 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 |
ベクトルの要素数を保持します.メモリ確保された spSVector 型 x があった場合,その要素数は x->length で取得できます.
| short* data |
実部のデータを保持します.メモリ確保された spSVector 型 x があった場合,0番目の要素は x->data[0] で取得できます.
| short* imag |
虚部のデータを保持します.メモリ確保された spSVector 型 x があった場合,0番目の要素は x->imag[0] で取得できます.虚部が存在しない場合はNULLであることがあります.