|
libharkio3
A File I/O and Data Manipulation Library for HARK
|
全関数とデータ構造はこのファイルに定義されている。 More...
#include <stdio.h>#include <zip.h>#include <complex.h>

Go to the source code of this file.
Classes | |
| struct | harkio_Matrix_maps |
| harkio_Matrix_map で要素ごとの処理を行うための関数ポインタ群。 More... | |
| union | multipleType |
| harkio_Matrix内部用。 More... | |
| struct | harkio_Matrix |
| 伝達関数などの、行列を表す構造体。 More... | |
| struct | harkio_Position |
| 位置を表す構造体。 More... | |
| struct | harkio_Positions |
| 位置の集合を表す構造体。 More... | |
| struct | harkio_Config |
| 伝達関数の計測条件などの一般的な情報を表す構造体 More... | |
| struct | harkio_Neighbors |
| harkio_Positions の隣接関係を表す構造体。自分を含む。s More... | |
| struct | harkio_XML |
| 伝達関数ファイルの XML (位置、隣接関係、設定) の読み書きのための構造体 More... | |
| struct | harkio_TransferFunction |
| 伝達関数そのものを表す構造体 More... | |
Macros | |
| #define | HARK_EPS 0.00001 |
| 浮動小数点が等しいか否かの閾値 | |
| #define | HARKIO_VER "1.3" |
| libharkio3 の内部バージョン | |
| #define | HARKIO_TAG "HARK1.3" |
| libharkio3 現バージョンで作成したファイルに埋め込まれるタグ | |
| #define | HARK_DIM 2 |
| harkio_Matrix の次元。 2 (=行列) のみ。 | |
| #define | HARKIO_LOGLEVEL_ENV_NAME "HARKIO_LOG_LEVEL" |
| ログレベルを環境変数で設定するときの変数名 More... | |
| #define | harkio_Log_setLevel(PrintLevel) harkio_Log_printf_( (enum harkio_Log_logLevel)-1, "", PrintLevel, __func__, __LINE__) |
| ログレベルを設定 | |
| #define | harkio_Log_printf(LogLevel, message, ...) harkio_Log_printf_(LogLevel, message, 0, __func__, __LINE__, ##__VA_ARGS__) |
| ログを出力するマクロ | |
| #define | MSG_LEN 4192 |
| 文字列生成時のバッファの長さを表す。 | |
| #define | DEPRECATED(X) __attribute__((deprecated)) |
| deprecated関数定義用.ソース内で関数を使用している場合に,コンパイル時警告を出す属性を設定. | |
Enumerations | |
| enum | Coordinate { Polar, Cartesian } |
| harkio_Positions で座標軸を表す。 More... | |
| enum | NeighborAlgorithm { Undefined, NearestNeighbor } |
| harkio_Neighbors で、Position (伝達関数測定位置など) が隣接しているか否かを判定するアルゴリズムを表す。 More... | |
| enum | harkio_Log_logLevel { harkio_Log_Error, harkio_Log_Warning, harkio_Log_Info, harkio_Log_Debug, harkio_Log_Trace } |
| harkio_Log で、メッセージのログがどのレベルかを表す。 More... | |
| enum | harkio_TFType { loctf, septf } |
| 伝達関数が定位用か分離用かを表す。(内部用) | |
| enum | harkio_DataType { harkio_DataType_INT32, harkio_DataType_FLOAT32, harkio_DataType_COMPLEX } |
| harkio_Matrix の型を表す | |
| enum | UseTagType { NON_TAG, USE_TAG, ID_TAG } |
| enum | InternalAllocFlag { NO_INTERNAL_ALLOC, INTERNAL_ALLOC } |
| 保持メモリの割当て状態を管理するフラグ(内部用) | |
Functions | |
| harkio_Matrix * | harkio_Matrix_new (char *type, int rows, int cols) |
| 初期化しないコンストラクタ More... | |
| harkio_Matrix * | harkio_Matrix_eye (char *type, int size) |
| 単位行列生成するコンストラクタ More... | |
| harkio_Matrix * | harkio_Matrix_zeros (char *type, int rows, int cols) |
| 要素が全てゼロの行列を生成するコンストラクタ More... | |
| harkio_Matrix * | harkio_Matrix_vstack (harkio_Matrix *src, harkio_Matrix *stack) |
| srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。 More... | |
| harkio_Matrix * | harkio_Matrix_ones (char *type, int rows, int cols) |
| 要素が全て1の行列を生成するコンストラクタ More... | |
| harkio_Matrix * | harkio_Matrix_fromFile (char *path) |
| harkio_Matrix_write で書き込んだファイルを読み込む。 More... | |
| harkio_Matrix * | harkio_Matrix_fromZip (struct zip *handle, char *path) |
| [内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。 More... | |
| harkio_Matrix * | harkio_Matrix_copy (harkio_Matrix *m) |
| harkio_Matrix をコピーする。 More... | |
| void | harkio_Matrix_delete (harkio_Matrix **m) |
| デストラクタ。 More... | |
| void | harkio_Matrix_print (harkio_Matrix *m) |
| harkio_Matrix を表示する More... | |
| char * | harkio_Matrix_printBuffer (harkio_Matrix *m) |
| harkio_Matrix の文字列表現を格納したバッファを返す。 More... | |
| int | harkio_Matrix_write (harkio_Matrix *m, char *path) |
| harkio_Matrix をファイルに書き込む More... | |
| char * | harkio_Matrix_writeBuffer (harkio_Matrix *m, size_t *size) |
| harkio_Matrix のファイルフォーマットを書き込んだバッファを返す。 More... | |
| size_t | harkio_Matrix_size (harkio_Matrix *m, int *size) |
| harkio_Matrix のサイズを取得する More... | |
| harkio_Matrix * | harkio_Matrix_add (harkio_Matrix *a, harkio_Matrix *b) |
| 2 つの harkio_Matrix の和を求める。 More... | |
| harkio_Matrix * | harkio_Matrix_sub (harkio_Matrix *a, harkio_Matrix *b) |
| 2 つの harkio_Matrix の差を求める。 More... | |
| harkio_Matrix * | harkio_Matrix_mul (harkio_Matrix *a, harkio_Matrix *b) |
| 2 つの harkio_Matrix の積を求める。 More... | |
| harkio_Matrix * | harkio_Matrix_emul (harkio_Matrix *a, harkio_Matrix *b) |
| 2 つの harkio_Matrix の要素ごとの積を求める。 More... | |
| harkio_Matrix * | harkio_Matrix_sumRow (harkio_Matrix *matrix) |
| harkio_Matrix * | harkio_Matrix_sumCol (harkio_Matrix *matrix) |
| harkio_Matrix * | harkio_Matrix_sumAll (harkio_Matrix *matrix) |
| harkio_Matrix * | harkio_Matrix_sum (harkio_Matrix **matrix, int num) |
| 複数 harkio_Matrix の要素ごとの総和を求める More... | |
| harkio_Matrix * | harkio_Matrix_ediv (harkio_Matrix *a, harkio_Matrix *b) |
| 2 つの harkio_Matrix の要素ごとの商を求める。 More... | |
| harkio_Matrix * | harkio_Matrix_getDiag (harkio_Matrix *m) |
| 対角成分を取り出す More... | |
| harkio_Matrix * | harkio_Matrix_makeDiag (harkio_Matrix *m) |
| 列ベクトルを対角成分にもつ正方行列を返す More... | |
| harkio_Matrix * | harkio_Matrix_esquare (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_eabs (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_econj (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_etanh (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_ecosh (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_elog (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_elog10 (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_ereal (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_eimag (harkio_Matrix *m) |
| harkio_Matrix * | harkio_Matrix_emulCInt32 (harkio_Matrix *m, int value) |
| harkio_Matrix * | harkio_Matrix_emulCFloat32 (harkio_Matrix *m, float value) |
| harkio_Matrix * | harkio_Matrix_emulCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
| harkio_Matrix * | harkio_Matrix_edivCInt32 (harkio_Matrix *m, int value) |
| harkio_Matrix * | harkio_Matrix_edivCFloat32 (harkio_Matrix *m, float value) |
| harkio_Matrix * | harkio_Matrix_edivCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
| harkio_Matrix * | harkio_Matrix_epowerCInt32 (harkio_Matrix *m, int value) |
| harkio_Matrix * | harkio_Matrix_epowerCFloat32 (harkio_Matrix *m, float value) |
| 行列を定数でべき乗する More... | |
| harkio_Matrix * | harkio_Matrix_epowerCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
| 行列を定数でべき乗する More... | |
| harkio_Matrix * | harkio_Matrix_emap (harkio_Matrix *m, harkio_Matrix_maps *map) |
| 行列の各要素を関数で写像する More... | |
| harkio_Matrix * | harkio_Matrix_ecalcCInt32 (harkio_Matrix *m, int value, harkio_Matrix_calcfuncInt32 func) |
| 行列の各要素を関数で写像する More... | |
| harkio_Matrix * | harkio_Matrix_ecalcCFloat32 (harkio_Matrix *m, float value, harkio_Matrix_calcfuncFloat32 func) |
| 行列の各要素を関数で写像する More... | |
| harkio_Matrix * | harkio_Matrix_ecalcCComplex (harkio_Matrix *m, COMPLEX_TYPE value, harkio_Matrix_calcfuncComplex func) |
| 行列の各要素を関数で写像する More... | |
| harkio_Matrix * | harkio_Matrix_reshape (harkio_Matrix *m, int rows, int cols) |
| 行列の並び順を変更する More... | |
| harkio_Matrix * | harkio_Matrix_transpose (harkio_Matrix *m) |
| 行列のを転置する More... | |
| harkio_Matrix * | harkio_Matrix_ctranspose (harkio_Matrix *m) |
| 行列を複素共役転置する More... | |
| int | harkio_Matrix_setValueInt32 (harkio_Matrix *m, int row, int col, int value) |
| int32 型の harkio_Matrix の値を設定する More... | |
| int | harkio_Matrix_getValueInt32 (harkio_Matrix *m, int row, int col, int *value) |
| int32 型の harkio_Matrix の値を取り出す More... | |
| int | harkio_Matrix_setValueFloat32 (harkio_Matrix *m, int row, int col, float value) |
| float32 型の harkio_Matrix の値を設定する More... | |
| int | harkio_Matrix_getValueFloat32 (harkio_Matrix *m, int row, int col, float *value) |
| float32 型の harkio_Matrix の値を取り出す More... | |
| int | harkio_Matrix_setValueComplex (harkio_Matrix *m, int row, int col, COMPLEX_TYPE value) |
| complex 型の harkio_Matrix の値を設定する More... | |
| int | harkio_Matrix_getValueComplex (harkio_Matrix *m, int row, int col, COMPLEX_TYPE *value) |
| complex 型の harkio_Matrix の値を取り出す More... | |
| harkio_Matrix * | harkio_Matrix_getValues (harkio_Matrix *matrix, int rowFrom, int rowTo, int colFrom, int colTo) |
| harkio_Matrix の部分行列を取り出す More... | |
| int | harkio_Matrix_setValues (harkio_Matrix *m1, harkio_Matrix *m2, int row, int col) |
| harkio_Matrix の一部を別の harkio_Matrix で上書きする More... | |
| char * | harkio_Matrix_getTag (harkio_Matrix *xml) |
| harkio_Matrix のタグを取得する More... | |
| int | harkio_Matrix_isEqual (harkio_Matrix *a, harkio_Matrix *b) |
| 2つの harkio_Matrix オブジェクトが等しいかどうかを判定する More... | |
| int | harkio_CheckType (char *type) |
| [内部用] harkio_Matrix の型判定 More... | |
| harkio_Config * | harkio_Config_new (void) |
| コンストラクタ。空の harkio_Config を作成する。 More... | |
| harkio_Config * | harkio_Config_copy (harkio_Config *cfg) |
| void | harkio_Config_delete (harkio_Config **cfg) |
| デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More... | |
| int | harkio_Config_getSynchronousAverage (harkio_Config *cfg) |
| Getter。harkio_Config の同期加算回数を返す More... | |
| char * | harkio_Config_getTSPpath (harkio_Config *cfg) |
| Getter。harkio_Config の TSP 信号のパスを返す More... | |
| int | harkio_Config_getTSPoffset (harkio_Config *cfg) |
| int | harkio_Config_getPeakSearchFrom (harkio_Config *cfg) |
| int | harkio_Config_getPeakSearchTo (harkio_Config *cfg) |
| int | harkio_Config_getNfft (harkio_Config *cfg) |
| int | harkio_Config_getSamplingRate (harkio_Config *cfg) |
| int | harkio_Config_getTSPLength (harkio_Config *cfg) |
| int | harkio_Config_getSignalMax (harkio_Config *cfg) |
| char * | harkio_Config_getComment (harkio_Config *cfg) |
| Getter。harkio_Config のコメントを返す More... | |
| int | harkio_Config_setSynchronousAverage (harkio_Config *cfg, int value) |
| int | harkio_Config_setTSPpath (harkio_Config *cfg, const char *value) |
| int | harkio_Config_setTSPoffset (harkio_Config *cfg, int value) |
| int | harkio_Config_setPeakSearchFrom (harkio_Config *cfg, int value) |
| int | harkio_Config_setPeakSearchTo (harkio_Config *cfg, int value) |
| int | harkio_Config_setNfft (harkio_Config *cfg, int value) |
| int | harkio_Config_setComment (harkio_Config *cfg, const char *value) |
| int | harkio_Config_setSamplingRate (harkio_Config *cfg, int value) |
| int | harkio_Config_setTSPlength (harkio_Config *cfg, int value) |
| int | harkio_Config_setSignalMax (harkio_Config *cfg, int value) |
| int | harkio_Config_isEqual (harkio_Config *a, harkio_Config *b) |
| void | harkio_Config_print (harkio_Config *cfg) |
| char * | harkio_Config_printBuffer (harkio_Config *cfg) |
| harkio_Position * | harkio_Position_new (int id, enum Coordinate sys, float *coord, char *path) |
| コンストラクタ。空の 与えられた座標の POS を返す。 More... | |
| void | harkio_Position_delete (harkio_Position **pos) |
| デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More... | |
| void | harkio_Position_print (harkio_Position *pos) |
| harkio_Position をテキストで表示する More... | |
| char * | harkio_Position_printBuffer (harkio_Position *pos) |
| float * | harkio_Position_getPosition (harkio_Position *pos) |
| Getter。harkio_Position の座標を返す。 More... | |
| int | harkio_Position_setPosition (harkio_Position *pos, enum Coordinate sys, float *coord) |
| Setter。harkio_Position の 座標を更新する。 More... | |
| int | harkio_Position_getSys (harkio_Position *pos) |
| Getter。harkio_Position の 座標系を返す。 More... | |
| int | harkio_Position_isEqual (harkio_Position *a, harkio_Position *b) |
| 2つの harkio_Position が等しいか否かを判定する More... | |
| harkio_Position * | harkio_Position_copy (harkio_Position *p) |
| harkio_Position をコピーする More... | |
| int | harkio_Position_Convert (harkio_Position *pos, float *coord, enum Coordinate type) |
| harkio_Positions の座標を指定した座標系で得る。 More... | |
| float | harkio_Position_convToRadian (float degree) |
| 内部用関数。 角度(degree)からラジアン(radian)に変換 | |
| float | harkio_Position_convToDegree (float radian) |
| 内部用関数。 ラジアン(radian)から角度(degree)に変換 | |
| int | harkio_Position_getID (harkio_Position *pos) |
| Getter。harkio_Position の ID を返す。 More... | |
| int | harkio_Positions_getFrame (harkio_Positions *poses) |
| Getter。harkio_Positions のフレーム番号を返す。 More... | |
| int | harkio_Position_setChannels (harkio_Position *pos, const int *channels, const int numChannels) |
| Setter。harkio_Position の チャンネルを更新する。 More... | |
| int | harkio_Position_setNumChannels (harkio_Position *pos, int numChannels) |
| Setter。harkio_Position の チャンネル数を更新する。 More... | |
| int | harkio_Position_setChannelsUse (harkio_Position *pos, int channels_use) |
| Setter。harkio_Position の チャンネル使用の有無を更新する。 More... | |
| harkio_Positions * | harkio_Positions_new (char *type, int frame, int size, harkio_Position **pos) |
| コンストラクタ。空の位置セットのオブジェクト harkio_Positions を作成する。 More... | |
| harkio_Positions * | harkio_Positions_newFromXMLbuffer (char *buffer, int len, char *dtdpath) |
| コンストラクタ。XMLが格納された文字列へのポインタから、harkio_Positions オブジェクトを生成する More... | |
| void | harkio_Positions_delete (harkio_Positions **pos) |
| デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More... | |
| void | harkio_Positions_print (harkio_Positions *pos) |
| harkio_Positions をテキストで表示する More... | |
| char * | harkio_Positions_printBuffer (harkio_Positions *pos) |
| harkio_Positions の文字列表現を格納したバッファを返す。 More... | |
| harkio_Positions * | harkio_Positions_copy (harkio_Positions *pos) |
| harkio_Positions をコピーする More... | |
| int | harkio_Positions_append (harkio_Positions *poses, harkio_Position *pos) |
| harkio_Positions に新たな harkio_Position を追加する。 More... | |
| int | harkio_Positions_removeById (harkio_Positions *poses, int id) |
| harkio_Positions から、与えられた ID の harkio_Position を削除する More... | |
| int | harkio_Positions_removeByCoord (harkio_Positions *poses, enum Coordinate sys, float *coord, float tolerance) |
| harkio_Positions から、与えられた座標の harkio_Position を削除する More... | |
| harkio_Position * | harkio_Positions_getById (harkio_Positions *poses, int id) |
| Getter。harkio_Positions が持つ harkio_Position のから、与えられた id と同じものを返す。 More... | |
| harkio_Position * | harkio_Positions_getByCoord (harkio_Positions *poses, enum Coordinate sys, float *coord, float tolerance) |
| Getter。harkio_Positions が持つ harkio_Position のから、与えられた位置に近いものを返す。 More... | |
| char * | harkio_Positions_getType (harkio_Positions *poses) |
| Getter。harkio_Positions のタイプを返す。 More... | |
| int | harkio_Positions_isEqual (harkio_Positions *a, harkio_Positions *b) |
| 2つの harkio_Positions が等しいか否かを判定する More... | |
| int | harkio_Positions_getSize (harkio_Positions *poses) |
| Getter。harkio_Positions の harkio_Position の数を返す。 More... | |
| harkio_Neighbors * | harkio_Neighbors_new (harkio_Positions *poses) |
| コンストラクタ。近接関係を表すオブジェクトを生成する。 More... | |
| harkio_Neighbors * | harkio_Neighbors_copy (harkio_Neighbors *poses) |
| harkio_Neighbors の内容を コピーする More... | |
| void | harkio_Neighbors_delete (harkio_Neighbors **nbrs) |
| デストラクタ。harkio_Neighbors のメモリを解放する。 More... | |
| int | harkio_Neighbors_calcNeighbors (harkio_Neighbors *nbrs, enum NeighborAlgorithm alg,...) |
| harkio_Neighbors に登録されている位置の近接関係を計算する。 More... | |
| int | harkio_Neighbors_getNeighbors (harkio_Neighbors *nbrs, int id, int *numNeighbors, int **neighbors) |
| getter。与えられた id の近接 id を返す。[] More... | |
| int | harkio_Neighbors_append (harkio_Neighbors *nbrs, int id, int numNeighbors, int *neighbors) |
| 新しい隣接関係を追加する。与えられた ID に隣接関係がすでに定義されていれば追加し、定義が無ければ新しく作成する。 More... | |
| int | harkio_Neighbors_getSize (harkio_Neighbors *nbs) |
| Getter. harkio_Neighbors に登録されている harkio_Positions の長さ More... | |
| enum NeighborAlgorithm | harkio_Neighbors_getNeighborAlgorithm (harkio_Neighbors *nbs) |
| Getter. harkio_Neighbors の近接関係計算アルゴリズムを返す。 More... | |
| int | harkio_Neighbors_Algorithms_NearestNeighbor (harkio_Neighbors *nbrs, int n, float thresh) |
| 近接関係計算アルゴリズムの実装。近傍をクラスタリングする方法。 More... | |
| void | harkio_Neighbors_print (harkio_Neighbors *nbrs) |
| harkio_Neighbors の内容を stderr に表示する。 | |
| int | harkio_Neighbors_isEqual (harkio_Neighbors *a, harkio_Neighbors *b) |
| harkio_Neighbors が等しいかどうかを比較する。 More... | |
| float | euclidDistance (harkio_Position *pos_a, harkio_Position *pos_b, int length) |
| 内部用関数。二つの harkio_Position の距離を求める | |
| harkio_XML * | harkio_XML_new (void) |
| コンストラクタ。新たな harkio_XML オブジェクトを生成する。 More... | |
| harkio_XML * | harkio_XML_newFromXML (char *xmlpath, char *dtdpath) |
| コンストラクタ。ファイルを読み込んで、新たな harkio_XML オブジェクトを生成する。 More... | |
| harkio_XML * | harkio_XML_newFromXMLbuffer (char *buffer, int strlen, char *dtdpath) |
| コンストラクタ。XMLが格納された文字列へのポインタから、harkio_XML オブジェクトを生成する More... | |
| harkio_XML * | harkio_XML_newFromData (harkio_Positions *ps, harkio_Neighbors *nbrs, harkio_Config *cfg) |
| コンストラクタ。harkio_XML のメンバへのポインタを受け取って、新たな harkio_XML オブジェクトを生成する。 More... | |
| void | harkio_XML_delete (harkio_XML **xml) |
| デストラクタ。harkio_XML のメモリを解放する。 More... | |
| harkio_Config * | harkio_XML_getConfig (harkio_XML *xml) |
| int | harkio_XML_write (harkio_XML *xml, FILE *outstream) |
| harkio_XML をファイルに保存する。 More... | |
| int | harkio_XML_writeHead (FILE *outstream) |
| harkio_Positions をXMLファイルに保存する。 More... | |
| int | harkio_XML_writePositions (harkio_Positions *poses, FILE *outstream) |
| harkio_Positions をXMLファイルに保存する。 More... | |
| int | harkio_XML_writeTail (FILE *outstream) |
| harkio_Positions をXMLファイルに保存する。 More... | |
| harkio_Neighbors * | harkio_XML_getNeighbors (harkio_XML *xml) |
| harkio_Positions * | harkio_XML_getPositions (harkio_XML *xml) |
| char * | harkio_XML_writeBuffer (harkio_XML *xml) |
| harkio_XML をバッファに保存する。 More... | |
| harkio_TransferFunction * | harkio_TransferFunction_new (void) |
| コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。 More... | |
| harkio_TransferFunction * | harkio_TransferFunction_fromFile (char *path, char *signature) |
| コンストラクタ。与えられたファイルをロードし、構造体を構成する。 More... | |
| harkio_TransferFunction * | harkio_TransferFunction_fromData (harkio_Positions *poses, harkio_Positions *mics, harkio_Config *cfg, harkio_Neighbors *nbrs) |
| コンストラクタ。与えられた 音源位置群、マイク位置群、コンフィグ、隣接音源位置から構造体を生成する。 More... | |
| void | harkio_TransferFunction_delete (harkio_TransferFunction **tf) |
| デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。 More... | |
| int | harkio_TransferFunction_write (harkio_TransferFunction *tf, char *path, char *signature) |
| harkio_TransferFunction 構造体の情報をファイルに書き込む More... | |
| harkio_Config * | harkio_TransferFunction_getConfig (harkio_TransferFunction *tf) |
| Getter。harkio_TransferFunction の harkio_Config を返す More... | |
| harkio_Neighbors * | harkio_TransferFunction_getNeighbors (harkio_TransferFunction *tf) |
| Getter。harkio_TransferFunction の harkio_Neighbor を返す More... | |
| harkio_Positions * | harkio_TransferFunction_getMicrophones (harkio_TransferFunction *tf) |
| Getter。harkio_TransferFunction の マイク位置を表す harkio_Positions を返す More... | |
| harkio_Positions * | harkio_TransferFunction_getPositions (harkio_TransferFunction *tf) |
| Getter。harkio_TransferFunction の 音源位置を表す harkio_Positions を返す More... | |
| int | harkio_TransferFunction_setConfig (harkio_TransferFunction *tf, harkio_Config *value) |
| Setter。harkio_TransferFunction の harkio_Config を設定する More... | |
| int | harkio_TransferFunction_setNeighbors (harkio_TransferFunction *tf, harkio_Neighbors *value) |
| Setter。harkio_TransferFunction の harkio_Neighbors を設定する More... | |
| int | harkio_TransferFunction_setMicrophones (harkio_TransferFunction *tf, harkio_Positions *value) |
| Setter。harkio_TransferFunction のマイク位置に対応する harkio_Positions を設定する More... | |
| int | harkio_TransferFunction_setPositions (harkio_TransferFunction *tf, harkio_Positions *value) |
| Setter。harkio_TransferFunction の音源位置に対応する harkio_Positions を設定する More... | |
| harkio_Matrix * | harkio_TransferFunction_getTFByPos (harkio_TransferFunction *tf, harkio_Position *pos, float tolerance, enum harkio_TFType tf_type) |
| harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す More... | |
| harkio_Matrix * | harkio_TransferFunction_getTFById (harkio_TransferFunction *tf, int id, enum harkio_TFType tf_type) |
| harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す More... | |
| int | harkio_TransferFunction_setLocTFs (harkio_TransferFunction *tf, harkio_Matrix **tfs) |
| Setter。harkio_TransferFunction の音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタを設定する More... | |
| int | harkio_TransferFunction_setSepTFs (harkio_TransferFunction *tf, harkio_Matrix **tfs) |
| Setter。harkio_TransferFunction の音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタを設定する More... | |
| int | harkio_TransferFunction_appendLocTF (harkio_TransferFunction *tf, harkio_Matrix *tfs) |
| harkio_TransferFunction の定位伝達関数を表す harkio_Matrix 配列に要素を追加する。 More... | |
| int | harkio_TransferFunction_appendSepTF (harkio_TransferFunction *tf, harkio_Matrix *tfs) |
| harkio_TransferFunction の分離伝達関数を表す harkio_Matrix 配列に要素を追加する。 More... | |
| harkio_TransferFunction * | harkio_Compat_TransferFunction_readlibharkio2 (char *loctfpath, char *septfpath) |
| コンストラクタ。harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。 More... | |
| harkio_TransferFunction * | harkio_Compat_SeparationMatrix_readlibharkio2 (char *sepmatpath, char *tfzippath) |
| コンストラクタ。harkio2フォーマットの分離行列ファイルを読み込み、構造体を構成する。 More... | |
| DEPRECATED ("use 'harkio_Compat_TransferFunction_readlibharkio2'") int libharkio3_TransferFunction_readlibhakio2(harkio_TransferFunction **tf | |
| DEPRECATED ("use 'harkio_Compat_SeparationMatrix_readlibharkio2'") int libharkio3_SeparationMatrix_readlibhakio2(harkio_TransferFunction **tf | |
| void | harkio_Log_printf_ (enum harkio_Log_logLevel LogLevel, char *message, int PrintLevel, const char *func, int line,...) |
| void | harkio_Log_FileOpenFailed (char *filename) |
| void | harkio_Log_WrongValue (char *valuename, char *reason) |
| void | harkio_Log_NullPointer (char *valuename) |
Variables | |
| char * | loctfpath |
| char char * | septfpath |
| char * | sepmatpath |
| char char * | tfzippath |
全関数とデータ構造はこのファイルに定義されている。
| #define HARKIO_LOGLEVEL_ENV_NAME "HARKIO_LOG_LEVEL" |
ログレベルを環境変数で設定するときの変数名
値は error|e,warning|w,info|i,debug|d が設定可能
| enum Coordinate |
harkio_Positions で座標軸を表す。
| Enumerator | |
|---|---|
| Polar |
極座標系 |
| Cartesian |
直交座標系 |
| enum harkio_Log_logLevel |
| enum NeighborAlgorithm |
harkio_Neighbors で、Position (伝達関数測定位置など) が隣接しているか否かを判定するアルゴリズムを表す。
| Enumerator | |
|---|---|
| Undefined |
未設定。デフォルト値 |
| NearestNeighbor |
Nearest Neighbor 法。 閾値より近い複数個の Position が隣接していると判定する |
| int harkio_CheckType | ( | char * | type | ) |
| harkio_TransferFunction* harkio_Compat_SeparationMatrix_readlibharkio2 | ( | char * | sepmatpath, |
| char * | septfzippath | ||
| ) |
コンストラクタ。harkio2フォーマットの分離行列ファイルを読み込み、構造体を構成する。
| [in] | sepmatpath | 読み込む分離行列ファイルのパス。 |
| [in] | septfzippath | 対応する伝達関数(zip)ファイルのパス。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
| harkio_TransferFunction* harkio_Compat_TransferFunction_readlibharkio2 | ( | char * | loctfpath, |
| char * | septfpath | ||
| ) |
コンストラクタ。harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。
| [in] | loctfpath | 読み込む定位伝達関数ファイルのパス。 |
| [in] | septfpath | 読み込む分離伝達関数ファイルのパス。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。
| void harkio_Config_delete | ( | harkio_Config ** | cfg | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
| [in] | cfg | 開放したい伝達関数。解放後は NULL が代入される。 |

| char* harkio_Config_getComment | ( | harkio_Config * | cfg | ) |
Getter。harkio_Config のコメントを返す
| [in] | cfg | harkio_Config |

| int harkio_Config_getSynchronousAverage | ( | harkio_Config * | cfg | ) |
Getter。harkio_Config の同期加算回数を返す
| [in] | cfg | harkio_Config |

| char* harkio_Config_getTSPpath | ( | harkio_Config * | cfg | ) |
Getter。harkio_Config の TSP 信号のパスを返す
| [in] | cfg | harkio_Config |


| harkio_Config* harkio_Config_new | ( | void | ) |
コンストラクタ。空の harkio_Config を作成する。
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

| harkio_Matrix* harkio_Matrix_add | ( | harkio_Matrix * | a, |
| harkio_Matrix * | b | ||
| ) |
2 つの harkio_Matrix の和を求める。
| [in] | a | harkio_Matrix オブジェクト |
| [in] | b | harkio_Matrix オブジェクト |

| harkio_Matrix* harkio_Matrix_copy | ( | harkio_Matrix * | m | ) |
harkio_Matrix をコピーする。
| [in] | m | コピーしたい harkio_Matrix オブジェクト |

| harkio_Matrix* harkio_Matrix_ctranspose | ( | harkio_Matrix * | m | ) |
行列を複素共役転置する
| [in] | m | harkio_Matrix オブジェクト |
行列の配列サイズは (row, col) –> (col, row) となり、 各要素は複素共役がとられる。

| void harkio_Matrix_delete | ( | harkio_Matrix ** | m | ) |
デストラクタ。
| [in] | m | 解放したい harkio_Matrix オブジェクト |


| harkio_Matrix* harkio_Matrix_ecalcCComplex | ( | harkio_Matrix * | m, |
| COMPLEX_TYPE | value, | ||
| harkio_Matrix_calcfuncComplex | func | ||
| ) |
行列の各要素を関数で写像する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | map | 型ごとの関数ポインタ |


| harkio_Matrix* harkio_Matrix_ecalcCFloat32 | ( | harkio_Matrix * | m, |
| float | value, | ||
| harkio_Matrix_calcfuncFloat32 | func | ||
| ) |
行列の各要素を関数で写像する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | map | 型ごとの関数ポインタ |


| harkio_Matrix* harkio_Matrix_ecalcCInt32 | ( | harkio_Matrix * | m, |
| int | value, | ||
| harkio_Matrix_calcfuncInt32 | func | ||
| ) |
行列の各要素を関数で写像する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | map | 型ごとの関数ポインタ |


| harkio_Matrix* harkio_Matrix_ediv | ( | harkio_Matrix * | a, |
| harkio_Matrix * | b | ||
| ) |
2 つの harkio_Matrix の要素ごとの商を求める。
| [in] | a | harkio_Matrix オブジェクト |
| [in] | b | harkio_Matrix オブジェクト |

| harkio_Matrix* harkio_Matrix_emap | ( | harkio_Matrix * | m, |
| harkio_Matrix_maps * | map | ||
| ) |
行列の各要素を関数で写像する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | map | 型ごとの関数ポインタ |


| harkio_Matrix* harkio_Matrix_emul | ( | harkio_Matrix * | a, |
| harkio_Matrix * | b | ||
| ) |
2 つの harkio_Matrix の要素ごとの積を求める。
| [in] | a | harkio_Matrix オブジェクト |
| [in] | b | harkio_Matrix オブジェクト |

| harkio_Matrix* harkio_Matrix_epowerCComplex | ( | harkio_Matrix * | m, |
| COMPLEX_TYPE | value | ||
| ) |
行列を定数でべき乗する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | value | 指数 |

| harkio_Matrix* harkio_Matrix_epowerCFloat32 | ( | harkio_Matrix * | m, |
| float | value | ||
| ) |
行列を定数でべき乗する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | value | 指数 |

| harkio_Matrix* harkio_Matrix_eye | ( | char * | type, |
| int | size | ||
| ) |
単位行列生成するコンストラクタ
| [in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
| [in] | size | harkio_Matrix のサイズ。 |
単位行列は正方行列なので、列・行は共に size と等しい。 使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

| harkio_Matrix* harkio_Matrix_fromFile | ( | char * | path | ) |
harkio_Matrix_write で書き込んだファイルを読み込む。
| [in] | path | ファイルへのパス。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

| harkio_Matrix* harkio_Matrix_fromZip | ( | struct zip * | handle, |
| char * | path | ||
| ) |
[内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。
| [in] | handle | Zip ファイルへのハンドル |
| [in] | path | 対象ファイルの Zip ファイル内のパス |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。


| harkio_Matrix* harkio_Matrix_getDiag | ( | harkio_Matrix * | m | ) |
対角成分を取り出す
| [in] | m | harkio_Matrix オブジェクト |
m は正方行列でなければならない。

| char* harkio_Matrix_getTag | ( | harkio_Matrix * | m | ) |
harkio_Matrix のタグを取得する
| [in] | m | harkio_Matrix オブジェクト |
ポインタそのものを返すので、受け取った先で Free すると m の tag が破壊されるので注意。
| int harkio_Matrix_getValueComplex | ( | harkio_Matrix * | m, |
| int | row, | ||
| int | col, | ||
| COMPLEX_TYPE * | value | ||
| ) |
complex 型の harkio_Matrix の値を取り出す
| [in] | m | harkio_Matrix オブジェクト |
| [in] | row | 取り出したい値の 行位置 (0 から開始) |
| [in] | col | 取り出したい値の 列位置 (0 から開始) |
| [out] | value | 取り出した値を格納する変数へのポインタ |

| int harkio_Matrix_getValueFloat32 | ( | harkio_Matrix * | m, |
| int | row, | ||
| int | col, | ||
| float * | value | ||
| ) |
float32 型の harkio_Matrix の値を取り出す
| [in] | m | harkio_Matrix オブジェクト |
| [in] | row | 取り出したい値の 行位置 (0 から開始) |
| [in] | col | 取り出したい値の 列位置 (0 から開始) |
| [out] | value | 取り出した値を格納する変数へのポインタ |

| int harkio_Matrix_getValueInt32 | ( | harkio_Matrix * | m, |
| int | row, | ||
| int | col, | ||
| int * | value | ||
| ) |
int32 型の harkio_Matrix の値を取り出す
| [in] | m | harkio_Matrix オブジェクト |
| [in] | row | 取り出したい値の 行位置 (0 から開始) |
| [in] | col | 取り出したい値の 列位置 (0 から開始) |
| [out] | value | 取り出した値を格納する変数へのポインタ |


| harkio_Matrix* harkio_Matrix_getValues | ( | harkio_Matrix * | m, |
| int | rowFrom, | ||
| int | rowTo, | ||
| int | colFrom, | ||
| int | colTo | ||
| ) |
harkio_Matrix の部分行列を取り出す
| [in] | m | harkio_Matrix オブジェクト |
| [in] | rowFrom | 取り出したい値の 行開始位置 (0 から開始) |
| [in] | rowTo | 取り出したい値の 行終了位置 (0 から開始) |
| [in] | colFrom | 取り出したい値の 列開始位置 (0 から開始) |
| [in] | colTo | 取り出したい値の 列終了位置 (0 から開始) |


| int harkio_Matrix_isEqual | ( | harkio_Matrix * | a, |
| harkio_Matrix * | b | ||
| ) |
2つの harkio_Matrix オブジェクトが等しいかどうかを判定する
| [in] | a | harkio_Matrix オブジェクト |
| [in] | b | harkio_Matrix オブジェクト |
型、サイズ、すべての値が同じでなければならない。

| harkio_Matrix* harkio_Matrix_makeDiag | ( | harkio_Matrix * | m | ) |
列ベクトルを対角成分にもつ正方行列を返す
| [in] | m | harkio_Matrix オブジェクト。サイズは (X, 1) |
m は列ベクトル (row = 1) でなければならない。

| harkio_Matrix* harkio_Matrix_mul | ( | harkio_Matrix * | a, |
| harkio_Matrix * | b | ||
| ) |
2 つの harkio_Matrix の積を求める。
| [in] | a | harkio_Matrix オブジェクト |
| [in] | b | harkio_Matrix オブジェクト |
a のサイズが (A1, A2), b のサイズが (B1, B2) の場合、 A2 = B1 でなければ失敗する。 サイズが合っている場合、サイズ (A1, B2) の新しい行列ができる。

| harkio_Matrix* harkio_Matrix_new | ( | char * | type, |
| int | rows, | ||
| int | cols | ||
| ) |
初期化しないコンストラクタ
| [in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
| [in] | rows | harkio_Matrix の行サイズ。 |
| [in] | cols | harkio_Matrix の列サイズ。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。


| harkio_Matrix* harkio_Matrix_ones | ( | char * | type, |
| int | rows, | ||
| int | cols | ||
| ) |
要素が全て1の行列を生成するコンストラクタ
| [in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
| [in] | rows | harkio_Matrix の行サイズ。 |
| [in] | cols | harkio_Matrix の列サイズ。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

| void harkio_Matrix_print | ( | harkio_Matrix * | m | ) |
| char* harkio_Matrix_printBuffer | ( | harkio_Matrix * | m | ) |
harkio_Matrix の文字列表現を格納したバッファを返す。
| [in] | m | harkio_Matrix オブジェクト |


| harkio_Matrix* harkio_Matrix_reshape | ( | harkio_Matrix * | m, |
| int | rows, | ||
| int | cols | ||
| ) |
行列の並び順を変更する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | rows | 新しい行数 |
| [in] | cols | 新しい列数 |
行列の配列サイズ自体は変更しないので、元の rows * cols と、新しい rows * cols は等しくなければならない。

| int harkio_Matrix_setValueComplex | ( | harkio_Matrix * | m, |
| int | row, | ||
| int | col, | ||
| COMPLEX_TYPE | value | ||
| ) |
complex 型の harkio_Matrix の値を設定する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | row | 設定したい値の 行位置 (0 から開始) |
| [in] | col | 設定したい値の 列位置 (0 から開始) |
| [out] | value | 設定しい値 |

| int harkio_Matrix_setValueFloat32 | ( | harkio_Matrix * | m, |
| int | row, | ||
| int | col, | ||
| float | value | ||
| ) |
float32 型の harkio_Matrix の値を設定する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | row | 設定したい値の 行位置 (0 から開始) |
| [in] | col | 設定したい値の 列位置 (0 から開始) |
| [out] | value | 設定しい値 |

| int harkio_Matrix_setValueInt32 | ( | harkio_Matrix * | m, |
| int | row, | ||
| int | col, | ||
| int | value | ||
| ) |
int32 型の harkio_Matrix の値を設定する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | row | 設定したい値の 行位置 (0 から開始) |
| [in] | col | 設定したい値の 列位置 (0 から開始) |
| [out] | value | 設定しい値 |

| int harkio_Matrix_setValues | ( | harkio_Matrix * | m1, |
| harkio_Matrix * | m2, | ||
| int | row, | ||
| int | col | ||
| ) |
harkio_Matrix の一部を別の harkio_Matrix で上書きする
| [in] | m1 | 値を設定したい先の harkio_Matrix オブジェクト |
| [in] | m2 | 値を設定したい元の harkio_Matrix オブジェクト |
| [in] | row | 設定したい値の 行位置 (0 から開始) |
| [in] | col | 設定したい値の 列位置 (0 から開始) |
m1 より m2 のサイズが小さくなければならない。また、はみ出ない row/col の値でなければならない。 複数の値をまとめて保存するときに使用

| size_t harkio_Matrix_size | ( | harkio_Matrix * | m, |
| int * | size | ||
| ) |
harkio_Matrix のサイズを取得する
| [in] | m | harkio_Matrix オブジェクト |
| [in] | size | 行列のサイズが格納されるポインタ。 長さ 2 のメモリが確保された int 配列である必要がある。 |
size は呼び出し前にメモリ確保が必要であることに注意。


| harkio_Matrix* harkio_Matrix_sub | ( | harkio_Matrix * | a, |
| harkio_Matrix * | b | ||
| ) |
2 つの harkio_Matrix の差を求める。
| [in] | a | harkio_Matrix オブジェクト |
| [in] | b | harkio_Matrix オブジェクト |

| harkio_Matrix* harkio_Matrix_sum | ( | harkio_Matrix ** | matrix, |
| int | num | ||
| ) |
複数 harkio_Matrix の要素ごとの総和を求める
| [in] | matrix | harkio_Matrix オブジェクト のポインタ配列 |
| [in] | num | matrix の長さ |
matrix 配列が差す harkio_Matrix オブジェクトは全て同じサイズ、型でなければならない。

| harkio_Matrix* harkio_Matrix_transpose | ( | harkio_Matrix * | m | ) |
行列のを転置する
| [in] | m | harkio_Matrix オブジェクト |
行列の配列サイズは (row, col) –> (col, row) となる。

| harkio_Matrix* harkio_Matrix_vstack | ( | harkio_Matrix * | src, |
| harkio_Matrix * | stack | ||
| ) |
srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。
| [in] | src | vstackする対象のharkio_Matrixインスタンス |
| [in] | stack | vstackに加えるharkio_Matrixのインスタンス |

| int harkio_Matrix_write | ( | harkio_Matrix * | m, |
| char * | path | ||
| ) |
harkio_Matrix をファイルに書き込む
| [in] | m | harkio_Matrix オブジェクト |
| [in] | path | 書き込むファイルへのパス |

| char* harkio_Matrix_writeBuffer | ( | harkio_Matrix * | m, |
| size_t * | size | ||
| ) |
harkio_Matrix のファイルフォーマットを書き込んだバッファを返す。
| [in] | m | harkio_Matrix オブジェクト |
| [out] | size | 戻り値が指すバッファのサイズ |


| harkio_Matrix* harkio_Matrix_zeros | ( | char * | type, |
| int | rows, | ||
| int | cols | ||
| ) |
要素が全てゼロの行列を生成するコンストラクタ
| [in] | type | harkio_Matrix の型。 int32, float32, complex から選べる。 |
| [in] | rows | harkio_Matrix の行サイズ。 |
| [in] | cols | harkio_Matrix の列サイズ。 |
使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。


| int harkio_Neighbors_Algorithms_NearestNeighbor | ( | harkio_Neighbors * | nbrs, |
| int | n, | ||
| float | thresh | ||
| ) |
近接関係計算アルゴリズムの実装。近傍をクラスタリングする方法。
| [in] | nbrs | harkio_Neighbors オブジェクト |
| [in] | n | 近接関係と見なす最大数 |
| [in] | thresh | 近接か否かを判定するしきい値 |
nbrs が持つ位置のユークリッド距離をすべてについて計算し、 thresh より小さいものを近傍として登録する。ただし、その数が n より大きければ近い順に n 個だけ登録する。


| int harkio_Neighbors_append | ( | harkio_Neighbors * | nbrs, |
| int | id, | ||
| int | numNeighbors, | ||
| int * | neighbors | ||
| ) |
新しい隣接関係を追加する。与えられた ID に隣接関係がすでに定義されていれば追加し、定義が無ければ新しく作成する。
| [in] | nbs | harkio_Neighbors オブジェクト |
| [in] | id | 追加する id |
| [in] | numNeighbors | 追加する隣接点の数 |
| [in] | numNeighbors | 追加する隣接へのポインタ |

| int harkio_Neighbors_calcNeighbors | ( | harkio_Neighbors * | nbrs, |
| enum NeighborAlgorithm | alg, | ||
| ... | |||
| ) |
harkio_Neighbors に登録されている位置の近接関係を計算する。
| [in] | nbs | harkio_Neighbors オブジェクト |
| [in] | alg | 近接関係計算アルゴリズムを表す enum. |
| [in] | ... | アルゴリズムごとに決まる可変引数。 |


| harkio_Neighbors* harkio_Neighbors_copy | ( | harkio_Neighbors * | n1 | ) |
harkio_Neighbors の内容を コピーする


| void harkio_Neighbors_delete | ( | harkio_Neighbors ** | nbrs | ) |
デストラクタ。harkio_Neighbors のメモリを解放する。
| [in] | nbrs | メモリを解放するオブジェクトへのポインタへのポインタ |
解放に成功すると xml には NULL が代入される。メンバのいくつかが NULL でもよい。

| enum NeighborAlgorithm harkio_Neighbors_getNeighborAlgorithm | ( | harkio_Neighbors * | nbs | ) |
Getter. harkio_Neighbors の近接関係計算アルゴリズムを返す。
| [in] | nbs | harkio_Neighbors オブジェクト |
| int harkio_Neighbors_getNeighbors | ( | harkio_Neighbors * | nbrs, |
| int | id, | ||
| int * | numNeighbors, | ||
| int ** | neighbors | ||
| ) |
getter。与えられた id の近接 id を返す。[]
| [in] | nbrs | 近接 ID を検索したい hakrio_Neighbors オブジェクト |
| [in] | id | 近接 ID を検索したい対象の ID |
| [out] | numNeighbors | 見つかった近接 ID の個数 |
| [out] | neighbors | 見つかった近接 ID の配列へのポインタ |
引数に不備があれば EXIT_FAILURE が返される。成功すれば numNeighbors, neighbors に値がセットされ EXIT_SUCCESS が返る。 neighbors は関数内で malloc されるので free が必要。
| int harkio_Neighbors_getSize | ( | harkio_Neighbors * | nbs | ) |
Getter. harkio_Neighbors に登録されている harkio_Positions の長さ
| [in] | nbs | harkio_Neighbors オブジェクト |
| int harkio_Neighbors_isEqual | ( | harkio_Neighbors * | a, |
| harkio_Neighbors * | b | ||
| ) |
harkio_Neighbors が等しいかどうかを比較する。

| harkio_Neighbors* harkio_Neighbors_new | ( | harkio_Positions * | poses | ) |
コンストラクタ。近接関係を表すオブジェクトを生成する。
| [in] | poses | 近接関係を表現したい位置群を与える。 NULL でもよい。 |
poses はコピーせずにポインタが渡される。 NULL を与えた場合は位置が無い空のオブジェクトが生成される。 使用が終わったら、 harkio_Neighbors_delete でメモリ解放を行う。

| int harkio_Position_Convert | ( | harkio_Position * | pos, |
| float * | coord, | ||
| enum Coordinate | type | ||
| ) |
harkio_Positions の座標を指定した座標系で得る。
| [in] | pos | harkio_Position へのポインタ |
| [out] | coord | 変換された座標系 |
| [in] | type | 変換先の座標系 |


| harkio_Position* harkio_Position_copy | ( | harkio_Position * | p | ) |
harkio_Position をコピーする
| [in] | p | コピーしたい harkio_Position へのポインタ |


| void harkio_Position_delete | ( | harkio_Position ** | p | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
| [in] | p | 開放したい伝達関数。解放後は NULL が代入される。 |

| int harkio_Position_getID | ( | harkio_Position * | pos | ) |
Getter。harkio_Position の ID を返す。
| [in] | pos | harkio_Position 構造体へのポインタ |
| float* harkio_Position_getPosition | ( | harkio_Position * | pos | ) |
Getter。harkio_Position の座標を返す。
| [in] | pos | harkio_Position 構造体へのポインタ |
| int harkio_Position_getSys | ( | harkio_Position * | pos | ) |
Getter。harkio_Position の 座標系を返す。
| [in] | pos | harkio_Position 構造体へのポインタ |
| int harkio_Position_isEqual | ( | harkio_Position * | a, |
| harkio_Position * | b | ||
| ) |
2つの harkio_Position が等しいか否かを判定する
| [in] | a | 比較したい harkio_Position へのポインタ |
| [in] | b | 比較したい harkio_Position へのポインタ |
ID、座標系、パスが等しく、すべての座標の値の差が HARK_EPS 以内であれば等しいと判断する。


| harkio_Position* harkio_Position_new | ( | int | id, |
| enum Coordinate | sys, | ||
| float * | coord, | ||
| char * | path | ||
| ) |
コンストラクタ。空の 与えられた座標の POS を返す。
| [in] | id | harkio_Position の ID。 |
| [in] | sys | harkio_Position の 座標系。 |
| [in] | coord | harkio_Position の 座標そのもの。 |
| [in] | path | harkio_Position に対応するファイルへのパス。wav ファイルへのパスなど。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

| void harkio_Position_print | ( | harkio_Position * | pos | ) |
harkio_Position をテキストで表示する
| [in] | pos | テキストで表示したい harkio_Position へのポインタ |
| int harkio_Position_setChannels | ( | harkio_Position * | pos, |
| const int * | channels, | ||
| const int | numChannels | ||
| ) |
Setter。harkio_Position の チャンネルを更新する。
| [in,out] | pos | harkio_Position 構造体へのポインタ |
| [in] | channels | チャンネルの配列. Copied. Accept NULL |
| [in] | numChannels | length of channels. |
channels に合わせて、 numChannels の設定も必要。

| int harkio_Position_setChannelsUse | ( | harkio_Position * | pos, |
| int | channels_use | ||
| ) |
Setter。harkio_Position の チャンネル使用の有無を更新する。
| [in,out] | pos | harkio_Position 構造体へのポインタ |
| [in] | channels_use | channels 使用の有無。 0なら不使用、1なら使用。 |
channels, numChannels の設定も必要。

| int harkio_Position_setNumChannels | ( | harkio_Position * | pos, |
| int | numChannels | ||
| ) |
Setter。harkio_Position の チャンネル数を更新する。
| [in,out] | pos | harkio_Position 構造体へのポインタ |
| [in] | numChannels | チャンネル数 |
channels に合わせて、 numChannels の設定も必要。

| int harkio_Position_setPosition | ( | harkio_Position * | pos, |
| enum Coordinate | sys, | ||
| float * | coord | ||
| ) |
Setter。harkio_Position の 座標を更新する。
| [in,out] | pos | harkio_Position 構造体へのポインタ |
| [in] | sys | 座標系 |
| [in] | coord | 座標 |
| int harkio_Positions_append | ( | harkio_Positions * | poses, |
| harkio_Position * | pos | ||
| ) |
harkio_Positions に新たな harkio_Position を追加する。
| [in,out] | poses | 位置を追加する先の harkio_Positions |
| [in] | pos | 追加する harkio_Position |
pos はメモリをコピーせずに、ポインタが poses に追加される。 pos が 正のID を持つ場合はその ID のまま append される。 pos の ID が -1 の場合は、現在の harkio_Positions の ID の最大値 + 1 を自動的に与えて append される。

| harkio_Positions* harkio_Positions_copy | ( | harkio_Positions * | p1 | ) |
harkio_Positions をコピーする
| [in] | p1 | コピーしたい harkio_Positions へのポインタ |


| void harkio_Positions_delete | ( | harkio_Positions ** | pos | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
| [in] | pos | 開放したい伝達関数。解放後は NULL が代入される。 |


| harkio_Position* harkio_Positions_getByCoord | ( | harkio_Positions * | poses, |
| enum Coordinate | coordinate, | ||
| float * | coord, | ||
| float | tolerance | ||
| ) |
Getter。harkio_Positions が持つ harkio_Position のから、与えられた位置に近いものを返す。
| [in] | poses | harkio_Position を取り出したい構造体へのポインタ |
| [in] | coordinate | coord で与える座標の座標系 |
| [in] | coord | 取り出したい位置の座標 |
| [in] | tolerance | 許容誤差 |


| harkio_Position* harkio_Positions_getById | ( | harkio_Positions * | poses, |
| int | id | ||
| ) |
Getter。harkio_Positions が持つ harkio_Position のから、与えられた id と同じものを返す。
| [in] | poses | harkio_Position を取り出したい構造体へのポインタ |
| [in] | id | 取り出したい ID |

| int harkio_Positions_getFrame | ( | harkio_Positions * | poses | ) |
Getter。harkio_Positions のフレーム番号を返す。
| [in] | poses | harkio_Position を取り出したい構造体へのポインタ |
| int harkio_Positions_getSize | ( | harkio_Positions * | poses | ) |
Getter。harkio_Positions の harkio_Position の数を返す。
| [in] | poses | harkio_Position を取り出したい構造体へのポインタ |

| char* harkio_Positions_getType | ( | harkio_Positions * | poses | ) |
Getter。harkio_Positions のタイプを返す。
| [in] | poses | harkio_Position を取り出したい構造体へのポインタ |
| int harkio_Positions_isEqual | ( | harkio_Positions * | a, |
| harkio_Positions * | b | ||
| ) |
2つの harkio_Positions が等しいか否かを判定する
| [in] | a | 比較したい harkio_Positions へのポインタ |
| [in] | b | 比較したい harkio_Positions へのポインタ |
サイズ、フレーム番号、タイプが等しく、かつ、保持する harkio_Position が順番を含めて すべて等しいことが条件。 harkio_Position が等しいか否かは harkio_Position_isEqual で判定する。


| harkio_Positions* harkio_Positions_new | ( | char * | type, |
| int | frame, | ||
| int | size, | ||
| harkio_Position ** | pos | ||
| ) |
コンストラクタ。空の位置セットのオブジェクト harkio_Positions を作成する。
| [in] | type | harkio_Positions のタイプ。 tsp, impulse, noise, microphone, soundsource のいずれか、あるいは NULL |
| [in] | frame | harkio_Positions に対応するフレーム番号。 |
| [in] | size | harkio_Positions が保持する harkio_Position の数 (= pos の長さ) |
| [in] | pos | harkio_Positions に保持した harkio_Position 配列へのポインタ。 NULLが渡された場合、内部で空の配列を持ち、harkio_Positions_appendによって追加可能。 NULL以外が渡された場合、harkio_Positions_appendによる追加は不可。 |
使用が終わったら、 harkio_Positions_delete でメモリ解放を行う。 type の説明は下記の通り。 tsp: TSP測定 の音源位置を表すときに使用 impulse: インパルス応答の音源位置を表すときに使用 noise: ノイズの位置を表すときに使用 micorphone: マイク位置を表すときに使用 soundsource: 音源定位結果の位置を表すときに使用 NULL の場合は保存時に出力されない。

| harkio_Positions* harkio_Positions_newFromXMLbuffer | ( | char * | buffer, |
| int | len, | ||
| char * | dtdpath | ||
| ) |
コンストラクタ。XMLが格納された文字列へのポインタから、harkio_Positions オブジェクトを生成する
| [in] | buffer | XML が格納された文字列へのポインタ。 |
| [in] | len | buffer の長さ。 |
harkio_Positions_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。

| void harkio_Positions_print | ( | harkio_Positions * | p | ) |
harkio_Positions をテキストで表示する
| [in] | p | テキストで表示したい harkio_Positions へのポインタ |

| char* harkio_Positions_printBuffer | ( | harkio_Positions * | p | ) |
harkio_Positions の文字列表現を格納したバッファを返す。
| [in] | p | harkio_Positions オブジェクト |


| int harkio_Positions_removeByCoord | ( | harkio_Positions * | poses, |
| enum Coordinate | coordinate, | ||
| float * | coord, | ||
| float | tolerance | ||
| ) |
harkio_Positions から、与えられた座標の harkio_Position を削除する
| [in,out] | poses | 削除したい harkio_Positions |
| [in] | poses | harkio_Position を取り出したい構造体へのポインタ |
| [in] | coordinate | coord で与える座標の座標系 |
| [in] | coord | 取り出したい位置の座標 |
| [in] | tolerance | 許容誤差 |
削除された pos はメモリ解放も自動で行われる。

| int harkio_Positions_removeById | ( | harkio_Positions * | poses, |
| int | id | ||
| ) |
harkio_Positions から、与えられた ID の harkio_Position を削除する
| [in,out] | poses | 削除したい harkio_Positions |
| [out] | id | 削除したい harkio_Position の ID. |
削除された pos はメモリ解放も自動で行われる。 メモリはまるごとfreeされるので注意。


| int harkio_TransferFunction_appendLocTF | ( | harkio_TransferFunction * | tf, |
| harkio_Matrix * | mat | ||
| ) |
harkio_TransferFunction の定位伝達関数を表す harkio_Matrix 配列に要素を追加する。
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | mat | 音源位置の定位伝達関数を表す 追加のharkio_Matrix へのポインタ |

| int harkio_TransferFunction_appendSepTF | ( | harkio_TransferFunction * | tf, |
| harkio_Matrix * | mat | ||
| ) |
harkio_TransferFunction の分離伝達関数を表す harkio_Matrix 配列に要素を追加する。
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | mat | 分離伝達関数を表す 追加のharkio_Matrix へのポインタ |

| void harkio_TransferFunction_delete | ( | harkio_TransferFunction ** | tf | ) |
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
| [in] | tf | 開放したい伝達関数。解放後は NULL が代入される。 |


| harkio_TransferFunction* harkio_TransferFunction_fromData | ( | harkio_Positions * | poses, |
| harkio_Positions * | mics, | ||
| harkio_Config * | cfg, | ||
| harkio_Neighbors * | nbrs | ||
| ) |
コンストラクタ。与えられた 音源位置群、マイク位置群、コンフィグ、隣接音源位置から構造体を生成する。
| [in] | poses | 音源位置群。伝達関数測定位置のセットを表す。 |
| [in] | mics | マイク位置群。マイクアレイの各マイクの位置を表す。 |
| [in] | cfg | コンフィグ。伝達関数ファイルの設定を表す。 |
| [in] | nbrs | 近接音源位置。poses の隣接関係を表す。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

| harkio_TransferFunction* harkio_TransferFunction_fromFile | ( | char * | path, |
| char * | signature | ||
| ) |
コンストラクタ。与えられたファイルをロードし、構造体を構成する。
| [in] | path | 読み込みたいファイルのパス。 |
| [in] | signature | TransferFunction の シグネチャ。 NULL の場合はデフォルトの "transfer function" と解釈される。 この値と、開く zip ファイルの whatisthis.txt を比較し、異なれば NULL を返す。 |
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。

| harkio_Config* harkio_TransferFunction_getConfig | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の harkio_Config を返す
| [in] | tf | 伝達関数構造体 harkio_TransferFunction。 |

| harkio_Positions* harkio_TransferFunction_getMicrophones | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の マイク位置を表す harkio_Positions を返す
| [in] | tf | 伝達関数構造体 harkio_TransferFunction。 |

| harkio_Neighbors* harkio_TransferFunction_getNeighbors | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の harkio_Neighbor を返す
| [in] | tf | 伝達関数構造体 harkio_TransferFunction。 |

| harkio_Positions* harkio_TransferFunction_getPositions | ( | harkio_TransferFunction * | tf | ) |
Getter。harkio_TransferFunction の 音源位置を表す harkio_Positions を返す
| [in] | tf | 伝達関数構造体 harkio_TransferFunction。 |

| harkio_Matrix* harkio_TransferFunction_getTFById | ( | harkio_TransferFunction * | tf, |
| int | id, | ||
| enum harkio_TFType | tf_type | ||
| ) |
harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す
| [in] | tf | 伝達関数構造体 harkio_TransferFunction |
| [in] | id | 取り出したい伝達関数の ID |
| [in] | tf_type | 取り出すのが定位伝達関数か分離伝達関数かを選択 |
harkio_TransferFunction から、あるIDの伝達関数を取り出したい場合に使用する。 対応する ID の伝達関数を返す。 返す伝達関数が定位か分離かはtf_type で与えられる。
| harkio_Matrix* harkio_TransferFunction_getTFByPos | ( | harkio_TransferFunction * | tf, |
| harkio_Position * | pos, | ||
| float | tolerance, | ||
| enum harkio_TFType | tf_type | ||
| ) |
harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す
| [in] | tf | 伝達関数構造体 harkio_TransferFunction |
| [in] | pos | 取り出したい伝達関数の位置 |
| [in] | tolerance | 位置の許容誤差 |
| [in] | tf_type | 取り出すのが定位伝達関数か分離伝達関数かを選択 |
harkio_TransferFunction から、ある位置の伝達関数を取り出したい場合に使用する。 pos と距離が tolerance より小さい最初の位置に対応する伝達関数を返す。 返す伝達関数が定位か分離かはtf_type で与えられる。

| harkio_TransferFunction* harkio_TransferFunction_new | ( | void | ) |
コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。
使用が終わったら、 harkio_TransferFunction_delete でメモリ解放を行う。


| int harkio_TransferFunction_setConfig | ( | harkio_TransferFunction * | tf, |
| harkio_Config * | value | ||
| ) |
Setter。harkio_TransferFunction の harkio_Config を設定する
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | value | 更新したい harkio_Config へのポインタ |


| int harkio_TransferFunction_setLocTFs | ( | harkio_TransferFunction * | tf, |
| harkio_Matrix ** | tfs | ||
| ) |
Setter。harkio_TransferFunction の音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタを設定する
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | value | 更新したい 音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタ (NULLの場合は関数内部で動的確保) |

| int harkio_TransferFunction_setMicrophones | ( | harkio_TransferFunction * | tf, |
| harkio_Positions * | value | ||
| ) |
Setter。harkio_TransferFunction のマイク位置に対応する harkio_Positions を設定する
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | value | 更新したい マイク位置に対応する harkio_Positions へのポインタ |


| int harkio_TransferFunction_setNeighbors | ( | harkio_TransferFunction * | tf, |
| harkio_Neighbors * | value | ||
| ) |
Setter。harkio_TransferFunction の harkio_Neighbors を設定する
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | value | 更新したい harkio_Neighbors へのポインタ |

| int harkio_TransferFunction_setPositions | ( | harkio_TransferFunction * | tf, |
| harkio_Positions * | value | ||
| ) |
Setter。harkio_TransferFunction の音源位置に対応する harkio_Positions を設定する
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | value | 更新したい 音源位置に対応する harkio_Positions へのポインタ |


| int harkio_TransferFunction_setSepTFs | ( | harkio_TransferFunction * | tf, |
| harkio_Matrix ** | tfs | ||
| ) |
Setter。harkio_TransferFunction の音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタを設定する
| [in,out] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | value | 更新したい 音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタ (NULLの場合は関数内部で動的確保) |

| int harkio_TransferFunction_write | ( | harkio_TransferFunction * | tf, |
| char * | path, | ||
| char * | signature | ||
| ) |
harkio_TransferFunction 構造体の情報をファイルに書き込む
| [in] | tf | 伝達関数構造体 harkio_TransferFunction。 |
| [in] | path | 保存したいファイルへのパス |
| [in] | signature | TransferFunction の シグネチャ。 NULL の場合はデフォルトの "transfer function" が保存される。 この値は whatisthis.txt に書き込まれる。 |

| void harkio_XML_delete | ( | harkio_XML ** | xml | ) |
デストラクタ。harkio_XML のメモリを解放する。
| [in] | xml | メモリを解放するオブジェクトへのポインタへのポインタ |
解放に成功すると xml には NULL が代入される。メンバのいくつかが NULL でもよい。


| harkio_XML* harkio_XML_new | ( | void | ) |
コンストラクタ。新たな harkio_XML オブジェクトを生成する。
harkio_XML_delete でメモリ解放を行う必要がある。

| harkio_XML* harkio_XML_newFromData | ( | harkio_Positions * | ps, |
| harkio_Neighbors * | nbrs, | ||
| harkio_Config * | cfg | ||
| ) |
コンストラクタ。harkio_XML のメンバへのポインタを受け取って、新たな harkio_XML オブジェクトを生成する。
| [in] | ps | XML で表現する位置群を表す。 |
| [in] | nbrs | ps の近接関係を表す |
| [in] | cfg | XML の一般設定を表す。 |
harkio_XML_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。

| harkio_XML* harkio_XML_newFromXML | ( | char * | xmlpath, |
| char * | dtdpath | ||
| ) |
コンストラクタ。ファイルを読み込んで、新たな harkio_XML オブジェクトを生成する。
| [in] | xmlpath | 読み込む XML ファイルへのパス |
| [in] | dtdpath | [未実装] 読み込む XML ファイルを検査するための dtd ファイルへのパス。 |
harkio_XML_delete でメモリ解放を行う必要がある。

| harkio_XML* harkio_XML_newFromXMLbuffer | ( | char * | buffer, |
| int | len, | ||
| char * | dtdpath | ||
| ) |
コンストラクタ。XMLが格納された文字列へのポインタから、harkio_XML オブジェクトを生成する
| [in] | buffer | XML が格納された文字列へのポインタ。 |
| [in] | len | buffer の長さ。 |
| [in] | dtdpath | [未実装] 読み込む XML ファイルを検査するための dtd ファイルへのパス。 |
harkio_XML_delete でメモリ解放を行う必要がある。メンバは NULL でもよい。


| int harkio_XML_write | ( | harkio_XML * | xml, |
| FILE * | fstream | ||
| ) |
harkio_XML をファイルに保存する。
| [in] | xml | 保存される harkio_XML オブジェクト |
| [in] | fstream | 保存したいファイルへのハンドル |

| char* harkio_XML_writeBuffer | ( | harkio_XML * | xml | ) |
harkio_XML をバッファに保存する。
| [in] | xml | 保存される harkio_XML オブジェクト |
harkio_XML の XML表現を、ファイルに書き出さずに文字列として渡す。


| int harkio_XML_writeHead | ( | FILE * | outstream | ) |
harkio_Positions をXMLファイルに保存する。
| [in] | fstream | 保存したいファイルへのハンドル |
逐次的に保存したい場合に使用。 harkio_XML_writeHead, harkio_XML_writePositions, harkio_XML_writeTail の順番で実行すれば、harkio_XML_writePosition で書くたびにその harkio_Positions のメモリを解放できる。
| int harkio_XML_writePositions | ( | harkio_Positions * | poses, |
| FILE * | outstream | ||
| ) |
harkio_Positions をXMLファイルに保存する。
| [in] | poses | 保存される harkio_XML オブジェクト |
| [in] | fstream | 保存したいファイルへのハンドル |
逐次的に保存したい場合に使用

| int harkio_XML_writeTail | ( | FILE * | outstream | ) |
1.8.11