libharkio3
A File I/O and Data Manipulation Library for HARK
|
harkio_Matrix の API群。 行列の生成、操作、メモリ解放などを行う。 More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "libharkio3.h"
Functions | |
harkio_Matrix * | harkio_Matrix_new (char *type, int rows, int cols) |
初期化しないコンストラクタ More... | |
harkio_Matrix * | harkio_Matrix_zeros (char *type, int rows, int cols) |
要素が全てゼロの行列を生成するコンストラクタ More... | |
harkio_Matrix * | harkio_Matrix_ones (char *type, int rows, int cols) |
要素が全て1の行列を生成するコンストラクタ More... | |
harkio_Matrix * | harkio_Matrix_vstack (harkio_Matrix *src, harkio_Matrix *stack) |
srcにstackの内容を縦方向(rows方向)にスタックする。この際、srcの容量はstack分拡張される。 More... | |
harkio_Matrix * | harkio_Matrix_eye (char *type, int size) |
単位行列生成するコンストラクタ 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... | |
void | harkio_Matrix_delete (harkio_Matrix **m) |
デストラクタ。 More... | |
harkio_Matrix * | harkio_Matrix_copy (harkio_Matrix *m) |
harkio_Matrix をコピーする。 More... | |
harkio_Matrix * | harkio_Matrix_add (harkio_Matrix *a, harkio_Matrix *b) |
2 つの harkio_Matrix の和を求める。 More... | |
harkio_Matrix * | harkio_Matrix_add_fast (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_sum (harkio_Matrix **matrix, int num) |
複数 harkio_Matrix の要素ごとの総和を求める More... | |
int | harkio_Matrix_getValueInt32 (harkio_Matrix *m, int row, int col, int *value) |
int32 型の harkio_Matrix の値を取り出す More... | |
int | harkio_Matrix_setValueInt32 (harkio_Matrix *m, int row, int col, int value) |
int32 型の harkio_Matrix の値を設定する More... | |
int | harkio_Matrix_getValueFloat32 (harkio_Matrix *m, int row, int col, float *value) |
float32 型の harkio_Matrix の値を取り出す More... | |
int | harkio_Matrix_setValueFloat32 (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 *m, 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 *m) |
harkio_Matrix のタグを取得する More... | |
void | harkio_Matrix_print (harkio_Matrix *m) |
harkio_Matrix を表示する More... | |
int | harkio_Matrix_addstring (char **buffer, char *str, int bufsize) |
文字列を追記する。 More... | |
char * | harkio_Matrix_printBuffer (harkio_Matrix *m) |
harkio_Matrix の文字列表現を格納したバッファを返す。 More... | |
int | harkio_Matrix_isEqual (harkio_Matrix *a, harkio_Matrix *b) |
2つの harkio_Matrix オブジェクトが等しいかどうかを判定する More... | |
size_t | harkio_Matrix_size (harkio_Matrix *m, int *size) |
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... | |
int | harkio_CheckType (char *type) |
[内部用] 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... | |
int | isquare (int i) |
要素ごとに自乗した行列を返す More... | |
float | fsquare (float i) |
COMPLEX_TYPE | csquare (COMPLEX_TYPE i) |
harkio_Matrix * | harkio_Matrix_esquare (harkio_Matrix *m) |
float | floatabs (float i) |
要素ごとの絶対値を要素に持つ行列を返す More... | |
COMPLEX_TYPE | complexabs (COMPLEX_TYPE i) |
harkio_Matrix * | harkio_Matrix_eabs (harkio_Matrix *m) |
int | intconj (int i) |
要素ごとに複素共役を求めた行列を返す More... | |
float | floatconj (float i) |
harkio_Matrix * | harkio_Matrix_econj (harkio_Matrix *m) |
int | inttanh (int i) |
要素ごとに双曲線正接値を求めた行列を返す More... | |
harkio_Matrix * | harkio_Matrix_etanh (harkio_Matrix *m) |
int | intcosh (int i) |
要素ごとに双曲線余弦値を求めた行列を返す More... | |
harkio_Matrix * | harkio_Matrix_ecosh (harkio_Matrix *m) |
int | intlog (int i) |
要素ごとに自然対数を求めた行列を返す More... | |
harkio_Matrix * | harkio_Matrix_elog (harkio_Matrix *m) |
int | intlog10 (int i) |
要素ごとに常用対数を求めた行列を返す More... | |
COMPLEX_TYPE | complexlog10 (COMPLEX_TYPE i) |
harkio_Matrix * | harkio_Matrix_elog10 (harkio_Matrix *m) |
int | intreal (int i) |
要素ごとに実数部をとる行列を返す More... | |
float | floatreal (float i) |
COMPLEX_TYPE | complexreal (COMPLEX_TYPE i) |
harkio_Matrix * | harkio_Matrix_ereal (harkio_Matrix *m) |
int | intimag (int i) |
要素ごとに虚数部をとる行列を返す More... | |
float | floatimag (float i) |
COMPLEX_TYPE | compleximag (COMPLEX_TYPE i) |
harkio_Matrix * | harkio_Matrix_eimag (harkio_Matrix *m) |
int | iimul (int i1, int i2) |
行列を定数倍する More... | |
harkio_Matrix * | harkio_Matrix_emulCInt32 (harkio_Matrix *m, int value) |
float | ffmul (float i1, float i2) |
行列を定数倍する More... | |
harkio_Matrix * | harkio_Matrix_emulCFloat32 (harkio_Matrix *m, float value) |
COMPLEX_TYPE | ccmul (COMPLEX_TYPE i1, COMPLEX_TYPE i2) |
行列を定数倍する More... | |
harkio_Matrix * | harkio_Matrix_emulCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
int | iidiv (int i1, int i2) |
行列を定数で除算する More... | |
harkio_Matrix * | harkio_Matrix_edivCInt32 (harkio_Matrix *m, int value) |
float | ffdiv (float i1, float i2) |
行列を定数で除算する More... | |
harkio_Matrix * | harkio_Matrix_edivCFloat32 (harkio_Matrix *m, float value) |
COMPLEX_TYPE | ccdiv (COMPLEX_TYPE i1, COMPLEX_TYPE i2) |
行列を定数で除算する More... | |
harkio_Matrix * | harkio_Matrix_edivCComplex (harkio_Matrix *m, COMPLEX_TYPE value) |
int | iipower (int i1, int i2) |
行列を定数でべき乗する More... | |
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... | |
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 の API群。 行列の生成、操作、メモリ解放などを行う。
COMPLEX_TYPE ccdiv | ( | COMPLEX_TYPE | i1, |
COMPLEX_TYPE | i2 | ||
) |
行列を定数で除算する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 除算したい値 |
COMPLEX_TYPE ccmul | ( | COMPLEX_TYPE | i1, |
COMPLEX_TYPE | i2 | ||
) |
行列を定数倍する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 定数係数 |
float ffdiv | ( | float | i1, |
float | i2 | ||
) |
行列を定数で除算する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 除算したい値 |
float ffmul | ( | float | i1, |
float | i2 | ||
) |
行列を定数倍する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 定数係数 |
float floatabs | ( | float | i | ) |
要素ごとの絶対値を要素に持つ行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。 cabsf は float を返すので型を COMPLEX_TYPE で保つための wrapper を用意している。
int harkio_CheckType | ( | char * | type | ) |
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_add_fast | ( | harkio_Matrix * | a, |
harkio_Matrix * | b | ||
) |
2 つの harkio_Matrix の和を求める。(高速版)
[in] | a | harkio_Matrix オブジェクト |
[in] | b | harkio_Matrix オブジェクト |
要素ごとの a と b の和を harkio_Matrix オブジェクト a に代入する。 メモリを確保しないため速度は速いが、変数 a の元の内容は保存されない。
int harkio_Matrix_addstring | ( | char ** | buffer, |
char * | str, | ||
int | bufsize | ||
) |
文字列を追記する。
[in] | buffer | 追記元の文字列アドレス |
[in] | str | 追記する文字列 |
[in] | bufsize | bufferが確保している長さ |
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 iidiv | ( | int | i1, |
int | i2 | ||
) |
行列を定数で除算する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 除算したい値 |
int iimul | ( | int | i1, |
int | i2 | ||
) |
行列を定数倍する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 定数係数 |
int iipower | ( | int | i1, |
int | i2 | ||
) |
行列を定数でべき乗する
[in] | m | harkio_Matrix オブジェクト |
[in] | value | 指数 |
int intconj | ( | int | i | ) |
要素ごとに複素共役を求めた行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。 complex 型以外は影響なし。
int intcosh | ( | int | i | ) |
要素ごとに双曲線余弦値を求めた行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。
int intimag | ( | int | i | ) |
要素ごとに虚数部をとる行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。
int intlog | ( | int | i | ) |
要素ごとに自然対数を求めた行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。
int intlog10 | ( | int | i | ) |
要素ごとに常用対数を求めた行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。
int intreal | ( | int | i | ) |
要素ごとに実数部をとる行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。
int inttanh | ( | int | i | ) |
要素ごとに双曲線正接値を求めた行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。
int isquare | ( | int | i | ) |
要素ごとに自乗した行列を返す
[in] | m | harkio_Matrix オブジェクト |
harkio_Matrix_emap を元に実装している。