24 #ifndef __LIBHARKIO3__ 25 #define __LIBHARKIO3__ 37 #define HARK_EPS 0.00001 42 #define HARKIO_VER "1.3" 47 #define HARKIO_TAG "HARK1.3" 90 enum harkio_DataType { harkio_DataType_INT32 , harkio_DataType_FLOAT32 , harkio_DataType_COMPLEX };
91 enum UseTagType { NON_TAG , USE_TAG , ID_TAG };
101 typedef float _Complex COMPLEX_TYPE;
113 COMPLEX_TYPE(*cmap)(COMPLEX_TYPE);
116 typedef int (*harkio_Matrix_calcfuncInt32)(int, int);
117 typedef float(*harkio_Matrix_calcfuncFloat32)(float, float);
118 typedef COMPLEX_TYPE(*harkio_Matrix_calcfuncComplex)(COMPLEX_TYPE, COMPLEX_TYPE);
123 #define HARK_DIM 2 //dimention 129 #define HARKIO_LOGLEVEL_ENV_NAME "HARKIO_LOG_LEVEL" 134 #define harkio_Log_setLevel(PrintLevel) harkio_Log_printf_( (enum harkio_Log_logLevel)-1, "", PrintLevel, __func__, __LINE__) 139 #define harkio_Log_printf(LogLevel, message, ...) harkio_Log_printf_(LogLevel, message, 0, __func__, __LINE__, ##__VA_ARGS__) 152 #define DEPRECATED(X) __declspec(deprecated(X)) 154 #define DEPRECATED(X) __attribute__((deprecated)) 274 #if defined(__cplusplus) 368 int harkio_Config_setSynchronousAverage(
harkio_Config *cfg,
int value);
369 int harkio_Config_setTSPpath(
harkio_Config *cfg,
const char *value);
370 int harkio_Config_setTSPoffset(
harkio_Config *cfg,
int value);
371 int harkio_Config_setPeakSearchFrom(
harkio_Config *cfg,
int value);
372 int harkio_Config_setPeakSearchTo(
harkio_Config *cfg,
int value);
374 int harkio_Config_setComment(
harkio_Config *cfg,
const char *value);
375 int harkio_Config_setSamplingRate(
harkio_Config *cfg,
int value);
376 int harkio_Config_setTSPlength(
harkio_Config *cfg,
int value);
377 int harkio_Config_setSignalMax(
harkio_Config *cfg,
int value);
497 void harkio_Log_printf_(
enum harkio_Log_logLevel LogLevel,
char *message ,
int PrintLevel,
const char *func,
int line, ...);
498 void harkio_Log_FileOpenFailed(
char *filename);
499 void harkio_Log_WrongValue(
char *valuename,
char *reason);
500 void harkio_Log_NullPointer(
char *valuename);
504 #if defined(__cplusplus) harkio_DataType
harkio_Matrix の型を表す
Definition: libharkio3.h:90
harkio_Matrix * harkio_Matrix_fromFile(char *path)
harkio_Matrix_write で書き込んだファイルを読み込む。
Definition: libharkio3_matrix.c:350
harkio_Position * harkio_Position_copy(harkio_Position *p)
harkio_Position をコピーする
Definition: libharkio3_position.c:518
int harkio_Positions_isEqual(harkio_Positions *a, harkio_Positions *b)
2つの harkio_Positions が等しいか否かを判定する
Definition: libharkio3_positions.c:715
harkio_Neighbors * harkio_Neighbors_copy(harkio_Neighbors *poses)
harkio_Neighbors の内容を コピーする
Definition: libharkio3_neighbors.c:630
Definition: libharkio3.h:73
int harkio_Neighbors_append(harkio_Neighbors *nbrs, int id, int numNeighbors, int *neighbors)
新しい隣接関係を追加する。与えられた ID に隣接関係がすでに定義されていれば追加し、定義が無ければ新し...
Definition: libharkio3_neighbors.c:286
harkio_Position ** pos
Definition: libharkio3.h:199
int harkio_Matrix_setValueFloat32(harkio_Matrix *m, int row, int col, float value)
float32 型の harkio_Matrix の値を設定する
Definition: libharkio3_matrix.c:1261
harkio_Log_logLevel
harkio_Log で、メッセージのログがどのレベルかを表す。
Definition: libharkio3.h:69
char * harkio_Positions_getType(harkio_Positions *poses)
Getter。harkio_Positions のタイプを返す。
Definition: libharkio3_positions.c:380
harkio_Positions * poses
Definition: libharkio3.h:262
int harkio_Position_getSys(harkio_Position *pos)
Getter。harkio_Position の 座標系を返す。
Definition: libharkio3_position.c:156
int harkio_Matrix_isEqual(harkio_Matrix *a, harkio_Matrix *b)
2つの harkio_Matrix オブジェクトが等しいかどうかを判定する
Definition: libharkio3_matrix.c:1675
InternalAllocFlag
保持メモリの割当て状態を管理するフラグ(内部用)
Definition: libharkio3.h:96
harkio_Matrix * harkio_Matrix_zeros(char *type, int rows, int cols)
要素が全てゼロの行列を生成するコンストラクタ
Definition: libharkio3_matrix.c:107
int * numNeighbors
Definition: libharkio3.h:242
harkio_Positions の隣接関係を表す構造体。自分を含む。s
Definition: libharkio3.h:239
harkio_Matrix * harkio_Matrix_getDiag(harkio_Matrix *m)
対角成分を取り出す
Definition: libharkio3_matrix.c:2061
int harkio_Matrix_getValueInt32(harkio_Matrix *m, int row, int col, int *value)
int32 型の harkio_Matrix の値を取り出す
Definition: libharkio3_matrix.c:1150
int internal_locsize
Definition: libharkio3.h:268
int harkio_Matrix_setValueComplex(harkio_Matrix *m, int row, int col, COMPLEX_TYPE value)
complex 型の harkio_Matrix の値を設定する
Definition: libharkio3_matrix.c:1299
float * harkio_Position_getPosition(harkio_Position *pos)
Getter。harkio_Position の座標を返す。
Definition: libharkio3_position.c:118
harkio_Matrix * harkio_Matrix_reshape(harkio_Matrix *m, int rows, int cols)
行列の並び順を変更する
Definition: libharkio3_matrix.c:2671
int harkio_XML_write(harkio_XML *xml, FILE *outstream)
harkio_XML をファイルに保存する。
Definition: libharkio3_xml.c:230
int harkio_Position_setPosition(harkio_Position *pos, enum Coordinate sys, float *coord)
Setter。harkio_Position の 座標を更新する。
Definition: libharkio3_position.c:177
harkio_Positions * harkio_TransferFunction_getMicrophones(harkio_TransferFunction *tf)
Getter。harkio_TransferFunction の マイク位置を表す harkio_Positions を返す
Definition: libharkio3_transferfunction.c:440
int harkio_CheckType(char *type)
[内部用] harkio_Matrix の型判定
Definition: libharkio3_matrix.c:1967
harkio_XML * harkio_XML_newFromXMLbuffer(char *buffer, int strlen, char *dtdpath)
コンストラクタ。XMLが格納された文字列へのポインタから、harkio_XML オブジェクトを生成する ...
Definition: libharkio3_xml.c:122
int libharkio3_TransferFunction_readlibhakio2(harkio_TransferFunction **arg_tf, char *loctfpath, char *septfpath)
harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。(deprecated)
Definition: libharkio3_conversion.c:176
Definition: libharkio3.h:70
位置を表す構造体。
Definition: libharkio3.h:181
Definition: libharkio3.h:74
harkio_Matrix * harkio_Matrix_ones(char *type, int rows, int cols)
要素が全て1の行列を生成するコンストラクタ
Definition: libharkio3_matrix.c:168
int harkio_TransferFunction_appendLocTF(harkio_TransferFunction *tf, harkio_Matrix *tfs)
harkio_TransferFunction の定位伝達関数を表す harkio_Matrix 配列に要素を追加する。 ...
Definition: libharkio3_transferfunction.c:682
int samplingRate
Definition: libharkio3.h:215
harkio_Config * cfg
Definition: libharkio3.h:254
int synchronousAverage
Definition: libharkio3.h:208
int rows
Definition: libharkio3.h:173
Definition: libharkio3.h:72
伝達関数ファイルの XML (位置、隣接関係、設定) の読み書きのための構造体
Definition: libharkio3.h:251
harkio_Position * harkio_Positions_getByCoord(harkio_Positions *poses, enum Coordinate sys, float *coord, float tolerance)
Getter。harkio_Positions が持つ harkio_Position のから、与えられた位置に近いものを返す。 ...
Definition: libharkio3_positions.c:326
harkio_Neighbors * nbrs
Definition: libharkio3.h:265
int harkio_Config_getSynchronousAverage(harkio_Config *cfg)
Getter。harkio_Config の同期加算回数を返す
Definition: libharkio3_config.c:76
int harkio_Positions_removeById(harkio_Positions *poses, int id)
harkio_Positions から、与えられた ID の harkio_Position を削除する
Definition: libharkio3_positions.c:520
int channelsUse
Definition: libharkio3.h:187
harkio_TransferFunction * harkio_TransferFunction_new(void)
コンストラクタ。空の伝達関数構造体 harkio_TransferFunctionを作成する。
Definition: libharkio3_transferfunction.c:35
char * comment
Definition: libharkio3.h:207
enum NeighborAlgorithm harkio_Neighbors_getNeighborAlgorithm(harkio_Neighbors *nbs)
Getter. harkio_Neighbors の近接関係計算アルゴリズムを返す。
Definition: libharkio3_neighbors.c:212
harkio_Position * harkio_Positions_getById(harkio_Positions *poses, int id)
Getter。harkio_Positions が持つ harkio_Position のから、与えられた id と同じものを返す。 ...
Definition: libharkio3_positions.c:293
harkio_Positions * mics
Definition: libharkio3.h:263
char * harkio_Config_getComment(harkio_Config *cfg)
Getter。harkio_Config のコメントを返す
Definition: libharkio3_config.c:62
harkio_Neighbors * nbrs
Definition: libharkio3.h:253
int peakSearchFrom
Definition: libharkio3.h:212
int harkio_Neighbors_Algorithms_NearestNeighbor(harkio_Neighbors *nbrs, int n, float thresh)
近接関係計算アルゴリズムの実装。近傍をクラスタリングする方法。
Definition: libharkio3_neighbors.c:398
NeighborAlgorithm
harkio_Neighbors で、Position (伝達関数測定位置など) が隣接しているか否かを判定するアルゴリズムを表す...
Definition: libharkio3.h:61
harkio_Matrix * harkio_TransferFunction_getTFById(harkio_TransferFunction *tf, int id, enum harkio_TFType tf_type)
harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す
Definition: libharkio3_transferfunction.c:973
int harkio_Neighbors_calcNeighbors(harkio_Neighbors *nbrs, enum NeighborAlgorithm alg,...)
harkio_Neighbors に登録されている位置の近接関係を計算する。
Definition: libharkio3_neighbors.c:240
struct zip * handle
Definition: libharkio3.h:261
int peakSearchTo
Definition: libharkio3.h:213
harkio_Neighbors * harkio_Neighbors_new(harkio_Positions *poses)
コンストラクタ。近接関係を表すオブジェクトを生成する。
Definition: libharkio3_neighbors.c:28
void harkio_Neighbors_print(harkio_Neighbors *nbrs)
harkio_Neighbors の内容を stderr に表示する。
Definition: libharkio3_neighbors.c:537
harkio_TransferFunction * harkio_Compat_TransferFunction_readlibharkio2(char *loctfpath, char *septfpath)
コンストラクタ。harkio2フォーマットの伝達関数ファイルを読み込み、構造体を構成する。 ...
Definition: libharkio3_conversion.c:144
harkio_Matrix * harkio_Matrix_sum(harkio_Matrix **matrix, int num)
複数 harkio_Matrix の要素ごとの総和を求める
Definition: libharkio3_matrix.c:1062
COMPLEX_TYPE * complexdata
Definition: libharkio3.h:163
int TSPLength
Definition: libharkio3.h:211
harkio_Matrix ** loctfs
Definition: libharkio3.h:266
harkio_Matrix * harkio_Matrix_getValues(harkio_Matrix *matrix, int rowFrom, int rowTo, int colFrom, int colTo)
harkio_Matrix の部分行列を取り出す
Definition: libharkio3_matrix.c:1376
int frame
Definition: libharkio3.h:197
void harkio_Positions_print(harkio_Positions *pos)
harkio_Positions をテキストで表示する
Definition: libharkio3_positions.c:651
harkio_Config * harkio_Config_new(void)
コンストラクタ。空の harkio_Config を作成する。
Definition: libharkio3_config.c:21
harkio_Matrix * harkio_TransferFunction_getTFByPos(harkio_TransferFunction *tf, harkio_Position *pos, float tolerance, enum harkio_TFType tf_type)
harkio_TransferFunction 構造体に含まれる伝達関数群から特定の伝達関数を取り出す
Definition: libharkio3_transferfunction.c:919
harkio_XML * harkio_XML_new(void)
コンストラクタ。新たな harkio_XML オブジェクトを生成する。
Definition: libharkio3_xml.c:43
伝達関数そのものを表す構造体
Definition: libharkio3.h:260
int harkio_TransferFunction_setLocTFs(harkio_TransferFunction *tf, harkio_Matrix **tfs)
Setter。harkio_TransferFunction の音源位置ごとの定位伝達関数を表す harkio_Matrix 配列へのポインタを設...
Definition: libharkio3_transferfunction.c:612
harkio_Positions * harkio_Positions_copy(harkio_Positions *pos)
harkio_Positions をコピーする
Definition: libharkio3_positions.c:617
int TSPoffset
Definition: libharkio3.h:210
harkio_Matrix * harkio_Matrix_eye(char *type, int size)
単位行列生成するコンストラクタ
Definition: libharkio3_matrix.c:293
harkio_Positions * poses
Definition: libharkio3.h:252
harkio_XML * harkio_XML_newFromData(harkio_Positions *ps, harkio_Neighbors *nbrs, harkio_Config *cfg)
コンストラクタ。harkio_XML のメンバへのポインタを受け取って、新たな harkio_XML オブジェクトを生成する...
Definition: libharkio3_xml.c:103
int harkio_Positions_removeByCoord(harkio_Positions *poses, enum Coordinate sys, float *coord, float tolerance)
harkio_Positions から、与えられた座標の harkio_Position を削除する
Definition: libharkio3_positions.c:580
harkio_Neighbors * harkio_TransferFunction_getNeighbors(harkio_TransferFunction *tf)
Getter。harkio_TransferFunction の harkio_Neighbor を返す
Definition: libharkio3_transferfunction.c:418
harkio_TransferFunction * harkio_Compat_SeparationMatrix_readlibharkio2(char *sepmatpath, char *tfzippath)
コンストラクタ。harkio2フォーマットの分離行列ファイルを読み込み、構造体を構成する。 ...
Definition: libharkio3_conversion.c:159
位置の集合を表す構造体。
Definition: libharkio3.h:195
harkio_Matrix内部用。
Definition: libharkio3.h:160
harkio_Matrix ** septfs
Definition: libharkio3.h:267
int harkio_Positions_getFrame(harkio_Positions *poses)
Getter。harkio_Positions のフレーム番号を返す。
Definition: libharkio3_positions.c:424
harkio_XML * harkio_XML_newFromXML(char *xmlpath, char *dtdpath)
コンストラクタ。ファイルを読み込んで、新たな harkio_XML オブジェクトを生成する。
Definition: libharkio3_xml.c:61
Definition: libharkio3.h:55
伝達関数などの、行列を表す構造体。
Definition: libharkio3.h:169
harkio_Matrix * harkio_Matrix_copy(harkio_Matrix *m)
harkio_Matrix をコピーする。
Definition: libharkio3_matrix.c:609
harkio_Matrix * harkio_Matrix_makeDiag(harkio_Matrix *m)
列ベクトルを対角成分にもつ正方行列を返す
Definition: libharkio3_matrix.c:2106
harkio_Positions * harkio_Positions_new(char *type, int frame, int size, harkio_Position **pos)
コンストラクタ。空の位置セットのオブジェクト harkio_Positions を作成する。
Definition: libharkio3_positions.c:38
size_t harkio_Matrix_size(harkio_Matrix *m, int *size)
harkio_Matrix のサイズを取得する
Definition: libharkio3_matrix.c:1776
Definition: libharkio3.h:63
float harkio_Position_convToDegree(float radian)
内部用関数。 ラジアン(radian)から角度(degree)に変換
Definition: libharkio3_position.c:601
char * TSPpath
Definition: libharkio3.h:209
int harkio_Position_getID(harkio_Position *pos)
Getter。harkio_Position の ID を返す。
Definition: libharkio3_position.c:137
int id
Definition: libharkio3.h:182
float * coord
Definition: libharkio3.h:184
Coordinate
harkio_Positions で座標軸を表す。
Definition: libharkio3.h:53
int harkio_Neighbors_getSize(harkio_Neighbors *nbs)
Getter. harkio_Neighbors に登録されている harkio_Positions の長さ
Definition: libharkio3_neighbors.c:191
void harkio_Matrix_print(harkio_Matrix *m)
harkio_Matrix を表示する
Definition: libharkio3_matrix.c:1562
void harkio_Matrix_delete(harkio_Matrix **m)
デストラクタ。
Definition: libharkio3_matrix.c:560
int nfft
Definition: libharkio3.h:214
int harkio_TransferFunction_setMicrophones(harkio_TransferFunction *tf, harkio_Positions *value)
Setter。harkio_TransferFunction のマイク位置に対応する harkio_Positions を設定する ...
Definition: libharkio3_transferfunction.c:548
int harkio_XML_writeHead(FILE *outstream)
harkio_Positions をXMLファイルに保存する。
Definition: libharkio3_xml.c:267
int ** neighbors
Definition: libharkio3.h:243
Definition: libharkio3.h:62
void harkio_XML_delete(harkio_XML **xml)
デストラクタ。harkio_XML のメモリを解放する。
Definition: libharkio3_xml.c:165
int internal_sepsize
Definition: libharkio3.h:269
harkio_Matrix * harkio_Matrix_ecalcCInt32(harkio_Matrix *m, int value, harkio_Matrix_calcfuncInt32 func)
行列の各要素を関数で写像する
Definition: libharkio3_matrix.c:2541
harkio_TFType
伝達関数が定位用か分離用かを表す。(内部用)
Definition: libharkio3.h:80
int harkio_TransferFunction_setPositions(harkio_TransferFunction *tf, harkio_Positions *value)
Setter。harkio_TransferFunction の音源位置に対応する harkio_Positions を設定する
Definition: libharkio3_transferfunction.c:580
int signalMax
Definition: libharkio3.h:216
harkio_Matrix * harkio_Matrix_ctranspose(harkio_Matrix *m)
行列を複素共役転置する
Definition: libharkio3_matrix.c:2789
harkio_Matrix * harkio_Matrix_ediv(harkio_Matrix *a, harkio_Matrix *b)
2 つの harkio_Matrix の要素ごとの商を求める。
Definition: libharkio3_matrix.c:1987
float * floatdata
Definition: libharkio3.h:162
harkio_Matrix * harkio_Matrix_transpose(harkio_Matrix *m)
行列のを転置する
Definition: libharkio3_matrix.c:2735
int harkio_Positions_getSize(harkio_Positions *poses)
Getter。harkio_Positions の harkio_Position の数を返す。
Definition: libharkio3_positions.c:402
char * harkio_Matrix_getTag(harkio_Matrix *xml)
harkio_Matrix のタグを取得する
Definition: libharkio3_matrix.c:1537
伝達関数の計測条件などの一般的な情報を表す構造体
Definition: libharkio3.h:206
char * harkio_Positions_printBuffer(harkio_Positions *pos)
harkio_Positions の文字列表現を格納したバッファを返す。
Definition: libharkio3_positions.c:684
#define DEPRECATED(X)
deprecated関数定義用.ソース内で関数を使用している場合に,コンパイル時警告を出す属性を設定.
Definition: libharkio3.h:154
harkio_Matrix_map で要素ごとの処理を行うための関数ポインタ群。
Definition: libharkio3.h:110
float harkio_Position_convToRadian(float degree)
内部用関数。 角度(degree)からラジアン(radian)に変換
Definition: libharkio3_position.c:592
int harkio_Position_setNumChannels(harkio_Position *pos, int numChannels)
Setter。harkio_Position の チャンネル数を更新する。
Definition: libharkio3_position.c:249
float euclidDistance(harkio_Position *pos_a, harkio_Position *pos_b, int length)
内部用関数。二つの harkio_Position の距離を求める
Definition: libharkio3_neighbors.c:484
harkio_Matrix * harkio_Matrix_vstack(harkio_Matrix *src, harkio_Matrix *stack)
srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。 ...
Definition: libharkio3_matrix.c:228
int harkio_Neighbors_isEqual(harkio_Neighbors *a, harkio_Neighbors *b)
harkio_Neighbors が等しいかどうかを比較する。
Definition: libharkio3_neighbors.c:567
int harkio_Positions_append(harkio_Positions *poses, harkio_Position *pos)
harkio_Positions に新たな harkio_Position を追加する。
Definition: libharkio3_positions.c:454
void harkio_Config_delete(harkio_Config **cfg)
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
Definition: libharkio3_config.c:34
char * harkio_Matrix_printBuffer(harkio_Matrix *m)
harkio_Matrix の文字列表現を格納したバッファを返す。
Definition: libharkio3_matrix.c:1600
harkio_Matrix * harkio_Matrix_epowerCFloat32(harkio_Matrix *m, float value)
行列を定数でべき乗する
Definition: libharkio3_matrix.c:2470
harkio_Matrix * harkio_Matrix_ecalcCFloat32(harkio_Matrix *m, float value, harkio_Matrix_calcfuncFloat32 func)
行列の各要素を関数で写像する
Definition: libharkio3_matrix.c:2584
harkio_TransferFunction * harkio_TransferFunction_fromData(harkio_Positions *poses, harkio_Positions *mics, harkio_Config *cfg, harkio_Neighbors *nbrs)
コンストラクタ。与えられた 音源位置群、マイク位置群、コンフィグ、隣接音源位置から構造体を生成する。 ...
Definition: libharkio3_transferfunction.c:65
int harkio_TransferFunction_appendSepTF(harkio_TransferFunction *tf, harkio_Matrix *tfs)
harkio_TransferFunction の分離伝達関数を表す harkio_Matrix 配列に要素を追加する。 ...
Definition: libharkio3_transferfunction.c:729
harkio_Matrix * data
Definition: libharkio3.h:186
harkio_Config * cfg
Definition: libharkio3.h:264
Definition: libharkio3.h:71
int harkio_Neighbors_getNeighbors(harkio_Neighbors *nbrs, int id, int *numNeighbors, int **neighbors)
getter。与えられた id の近接 id を返す。[]
Definition: libharkio3_neighbors.c:142
int harkio_TransferFunction_setNeighbors(harkio_TransferFunction *tf, harkio_Neighbors *value)
Setter。harkio_TransferFunction の harkio_Neighbors を設定する
Definition: libharkio3_transferfunction.c:516
char * path
Definition: libharkio3.h:185
harkio_Config * harkio_TransferFunction_getConfig(harkio_TransferFunction *tf)
Getter。harkio_TransferFunction の harkio_Config を返す
Definition: libharkio3_transferfunction.c:396
harkio_Matrix * harkio_Matrix_sub(harkio_Matrix *a, harkio_Matrix *b)
2 つの harkio_Matrix の差を求める。
Definition: libharkio3_matrix.c:787
char * harkio_Config_getTSPpath(harkio_Config *cfg)
Getter。harkio_Config の TSP 信号のパスを返す
Definition: libharkio3_config.c:89
int libharkio3_SeparationMatrix_readlibhakio2(harkio_TransferFunction **arg_tf, char *sepmatpath, char *septfzippath)
harkio2フォーマットの分離行列ファイルを読み込み、構造体を構成する。(deprecated)
Definition: libharkio3_conversion.c:186
Definition: libharkio3.h:54
int harkio_XML_writePositions(harkio_Positions *poses, FILE *outstream)
harkio_Positions をXMLファイルに保存する。
Definition: libharkio3_xml.c:249
harkio_Matrix * harkio_Matrix_epowerCComplex(harkio_Matrix *m, COMPLEX_TYPE value)
行列を定数でべき乗する
Definition: libharkio3_matrix.c:2482
int * channels
Definition: libharkio3.h:189
void harkio_Neighbors_delete(harkio_Neighbors **nbrs)
デストラクタ。harkio_Neighbors のメモリを解放する。
Definition: libharkio3_neighbors.c:97
int harkio_Matrix_getValueFloat32(harkio_Matrix *m, int row, int col, float *value)
float32 型の harkio_Matrix の値を取り出す
Definition: libharkio3_matrix.c:1224
harkio_Positions * harkio_Positions_newFromXMLbuffer(char *buffer, int len, char *dtdpath)
コンストラクタ。XMLが格納された文字列へのポインタから、harkio_Positions オブジェクトを生成する ...
Definition: libharkio3_positions.c:123
harkio_Matrix * harkio_Matrix_fromZip(struct zip *handle, char *path)
[内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。
Definition: libharkio3_matrix.c:452
harkio_Matrix * harkio_Matrix_emul(harkio_Matrix *a, harkio_Matrix *b)
2 つの harkio_Matrix の要素ごとの積を求める。
Definition: libharkio3_matrix.c:986
int harkio_TransferFunction_setConfig(harkio_TransferFunction *tf, harkio_Config *value)
Setter。harkio_TransferFunction の harkio_Config を設定する
Definition: libharkio3_transferfunction.c:485
int cols
Definition: libharkio3.h:174
multipleType data
Definition: libharkio3.h:175
harkio_Positions * harkio_TransferFunction_getPositions(harkio_TransferFunction *tf)
Getter。harkio_TransferFunction の 音源位置を表す harkio_Positions を返す
Definition: libharkio3_transferfunction.c:462
harkio_Matrix * harkio_Matrix_mul(harkio_Matrix *a, harkio_Matrix *b)
2 つの harkio_Matrix の積を求める。
Definition: libharkio3_matrix.c:867
harkio_TransferFunction * harkio_TransferFunction_fromFile(char *path, char *signature)
コンストラクタ。与えられたファイルをロードし、構造体を構成する。
Definition: libharkio3_transferfunction.c:105
harkio_Matrix * harkio_Matrix_emap(harkio_Matrix *m, harkio_Matrix_maps *map)
行列の各要素を関数で写像する
Definition: libharkio3_matrix.c:2495
char * type
Definition: libharkio3.h:198
int harkio_Matrix_write(harkio_Matrix *m, char *path)
harkio_Matrix をファイルに書き込む
Definition: libharkio3_matrix.c:1821
harkio_Positions * poses
Definition: libharkio3.h:244
int harkio_TransferFunction_setSepTFs(harkio_TransferFunction *tf, harkio_Matrix **tfs)
Setter。harkio_TransferFunction の音源位置ごとの分離伝達関数を表す harkio_Matrix 配列へのポインタを設...
Definition: libharkio3_transferfunction.c:647
char * harkio_XML_writeBuffer(harkio_XML *xml)
harkio_XML をバッファに保存する。
Definition: libharkio3_xml.c:296
int numChannels
Definition: libharkio3.h:188
int size
Definition: libharkio3.h:240
int harkio_Position_isEqual(harkio_Position *a, harkio_Position *b)
2つの harkio_Position が等しいか否かを判定する
Definition: libharkio3_position.c:362
int harkio_Matrix_setValues(harkio_Matrix *m1, harkio_Matrix *m2, int row, int col)
harkio_Matrix の一部を別の harkio_Matrix で上書きする
Definition: libharkio3_matrix.c:1459
int harkio_Matrix_setValueInt32(harkio_Matrix *m, int row, int col, int value)
int32 型の harkio_Matrix の値を設定する
Definition: libharkio3_matrix.c:1187
harkio_Matrix * harkio_Matrix_ecalcCComplex(harkio_Matrix *m, COMPLEX_TYPE value, harkio_Matrix_calcfuncComplex func)
行列の各要素を関数で写像する
Definition: libharkio3_matrix.c:2627
harkio_Matrix * harkio_Matrix_new(char *type, int rows, int cols)
初期化しないコンストラクタ
Definition: libharkio3_matrix.c:28
int harkio_TransferFunction_write(harkio_TransferFunction *tf, char *path, char *signature)
harkio_TransferFunction 構造体の情報をファイルに書き込む
Definition: libharkio3_transferfunction.c:782
void harkio_TransferFunction_delete(harkio_TransferFunction **tf)
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
Definition: libharkio3_transferfunction.c:329
void harkio_Position_delete(harkio_Position **pos)
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
Definition: libharkio3_position.c:83
int harkio_XML_writeTail(FILE *outstream)
harkio_Positions をXMLファイルに保存する。
Definition: libharkio3_xml.c:281
int harkio_Position_Convert(harkio_Position *pos, float *coord, enum Coordinate type)
harkio_Positions の座標を指定した座標系で得る。
Definition: libharkio3_position.c:438
int dim
Definition: libharkio3.h:172
void harkio_Positions_delete(harkio_Positions **pos)
デストラクタ。メンバになっている構造体を含めて全てのメモリを開放する。
Definition: libharkio3_positions.c:255
harkio_Position * harkio_Position_new(int id, enum Coordinate sys, float *coord, char *path)
コンストラクタ。空の 与えられた座標の POS を返す。
Definition: libharkio3_position.c:35
int harkio_Position_setChannelsUse(harkio_Position *pos, int channels_use)
Setter。harkio_Position の チャンネル使用の有無を更新する。
Definition: libharkio3_position.c:278
int size
Definition: libharkio3.h:196
char * harkio_Matrix_writeBuffer(harkio_Matrix *m, size_t *size)
harkio_Matrix のファイルフォーマットを書き込んだバッファを返す。
Definition: libharkio3_matrix.c:1861
void harkio_Position_print(harkio_Position *pos)
harkio_Position をテキストで表示する
Definition: libharkio3_position.c:306
harkio_Matrix * harkio_Matrix_add(harkio_Matrix *a, harkio_Matrix *b)
2 つの harkio_Matrix の和を求める。
Definition: libharkio3_matrix.c:628
int harkio_Position_setChannels(harkio_Position *pos, const int *channels, const int numChannels)
Setter。harkio_Position の チャンネルを更新する。
Definition: libharkio3_position.c:207
int harkio_Matrix_getValueComplex(harkio_Matrix *m, int row, int col, COMPLEX_TYPE *value)
complex 型の harkio_Matrix の値を取り出す
Definition: libharkio3_matrix.c:1337
int * ids
Definition: libharkio3.h:241
int * intdata
Definition: libharkio3.h:161