libharkio3
A File I/O and Data Manipulation Library for HARK
 All Classes Files Functions Variables Enumerations Enumerator Macros Groups
Functions
libharkio3_matrix.c File Reference

harkio_Matrix の API群。 行列の生成、操作、メモリ解放などを行う。 More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "libharkio3.h"
Include dependency graph for libharkio3_matrix.c:

Functions

harkio_Matrixharkio_Matrix_new (char *type, int rows, int cols)
 初期化しないコンストラクタ More...
 
harkio_Matrixharkio_Matrix_zeros (char *type, int rows, int cols)
 要素が全てゼロの行列を生成するコンストラクタ More...
 
harkio_Matrixharkio_Matrix_ones (char *type, int rows, int cols)
 要素が全て1の行列を生成するコンストラクタ More...
 
harkio_Matrixharkio_Matrix_eye (char *type, int size)
 単位行列生成するコンストラクタ More...
 
harkio_Matrixharkio_Matrix_fromFile (char *path)
 harkio_Matrix_write で書き込んだファイルを読み込む。 More...
 
harkio_Matrixharkio_Matrix_fromZip (struct zip *handle, char *path)
 [内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。 More...
 
void harkio_Matrix_delete (harkio_Matrix **m)
 デストラクタ。 More...
 
harkio_Matrixharkio_Matrix_copy (harkio_Matrix *m)
 harkio_Matrix をコピーする。 More...
 
harkio_Matrixharkio_Matrix_add (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の和を求める。 More...
 
harkio_Matrixharkio_Matrix_add_fast (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の和を求める。(高速版) More...
 
harkio_Matrixharkio_Matrix_sub (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の差を求める。 More...
 
harkio_Matrixharkio_Matrix_mul (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の積を求める。 More...
 
harkio_Matrixharkio_Matrix_emul (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の要素ごとの積を求める。 More...
 
harkio_Matrixharkio_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_Matrixharkio_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_Matrixharkio_Matrix_ediv (harkio_Matrix *a, harkio_Matrix *b)
 2 つの harkio_Matrix の要素ごとの商を求める。 More...
 
harkio_Matrixharkio_Matrix_getDiag (harkio_Matrix *m)
 対角成分を取り出す More...
 
harkio_Matrixharkio_Matrix_makeDiag (harkio_Matrix *m)
 列ベクトルを対角成分にもつ正方行列を返す More...
 
int isquare (int i)
 harkio_Matrix_esquare の int 用ヘルパ関数
 
float fsquare (float i)
 harkio_Matrix_esquare の float 用ヘルパ関数
 
COMPLEX_TYPE csquare (COMPLEX_TYPE i)
 harkio_Matrix_esquare の complex 用ヘルパ関数
 
harkio_Matrixharkio_Matrix_esquare (harkio_Matrix *m)
 要素ごとに自乗した行列を返す More...
 
float floatabs (float i)
 
COMPLEX_TYPE complexabs (COMPLEX_TYPE i)
 harkio_Matrix_eabs の complex 用ヘルパ関数
 
harkio_Matrixharkio_Matrix_eabs (harkio_Matrix *m)
 要素ごとの絶対値を要素に持つ行列を返す More...
 
int intconj (int i)
 harkio_Matrix_econj の int 用ヘルパ関数
 
float floatconj (float i)
 harkio_Matrix_econj の float 用ヘルパ関数
 
harkio_Matrixharkio_Matrix_econj (harkio_Matrix *m)
 要素ごとに複素共役を求めた行列を返す More...
 
int inttanh (int i)
 harkio_Matrix_etanh の float 用ヘルパ関数
 
harkio_Matrixharkio_Matrix_etanh (harkio_Matrix *m)
 要素ごとに双曲線正接値を求めた行列を返す More...
 
int intcosh (int i)
 要素ごとに双曲線余弦値を求めた行列を返す More...
 
harkio_Matrixharkio_Matrix_ecosh (harkio_Matrix *m)
 
int intlog (int i)
 要素ごとに自然対数を求めた行列を返す More...
 
harkio_Matrixharkio_Matrix_elog (harkio_Matrix *m)
 
int intlog10 (int i)
 要素ごとに常用対数を求めた行列を返す More...
 
COMPLEX_TYPE complexlog10 (COMPLEX_TYPE i)
 
harkio_Matrixharkio_Matrix_elog10 (harkio_Matrix *m)
 
int intreal (int i)
 要素ごとに実数部をとる行列を返す More...
 
float floatreal (float i)
 
COMPLEX_TYPE complexreal (COMPLEX_TYPE i)
 
harkio_Matrixharkio_Matrix_ereal (harkio_Matrix *m)
 
int intimag (int i)
 要素ごとに虚数部をとる行列を返す More...
 
float floatimag (float i)
 
COMPLEX_TYPE compleximag (COMPLEX_TYPE i)
 
harkio_Matrixharkio_Matrix_eimag (harkio_Matrix *m)
 
int iimul (int i1, int i2)
 行列を定数倍する More...
 
harkio_Matrixharkio_Matrix_emulCInt32 (harkio_Matrix *m, int value)
 
float ffmul (float i1, float i2)
 行列を定数倍する More...
 
harkio_Matrixharkio_Matrix_emulCFloat32 (harkio_Matrix *m, float value)
 
COMPLEX_TYPE ccmul (COMPLEX_TYPE i1, COMPLEX_TYPE i2)
 行列を定数倍する More...
 
harkio_Matrixharkio_Matrix_emulCComplex (harkio_Matrix *m, COMPLEX_TYPE value)
 
int iidiv (int i1, int i2)
 行列を定数で除算する More...
 
harkio_Matrixharkio_Matrix_edivCInt32 (harkio_Matrix *m, int value)
 
float ffdiv (float i1, float i2)
 行列を定数で除算する More...
 
harkio_Matrixharkio_Matrix_edivCFloat32 (harkio_Matrix *m, float value)
 
COMPLEX_TYPE ccdiv (COMPLEX_TYPE i1, COMPLEX_TYPE i2)
 行列を定数で除算する More...
 
harkio_Matrixharkio_Matrix_edivCComplex (harkio_Matrix *m, COMPLEX_TYPE value)
 
int iipower (int i1, int i2)
 行列を定数でべき乗する More...
 
harkio_Matrixharkio_Matrix_epowerCInt32 (harkio_Matrix *m, int value)
 
harkio_Matrixharkio_Matrix_epowerCFloat32 (harkio_Matrix *m, float value)
 行列を定数でべき乗する More...
 
harkio_Matrixharkio_Matrix_epowerCComplex (harkio_Matrix *m, COMPLEX_TYPE value)
 行列を定数でべき乗する More...
 
harkio_Matrixharkio_Matrix_emap (harkio_Matrix *m, harkio_Matrix_maps *map)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_ecalcCInt32 (harkio_Matrix *m, int value, harkio_Matrix_calcfuncInt32 func)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_ecalcCFloat32 (harkio_Matrix *m, float value, harkio_Matrix_calcfuncFloat32 func)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_ecalcCComplex (harkio_Matrix *m, COMPLEX_TYPE value, harkio_Matrix_calcfuncComplex func)
 行列の各要素を関数で写像する More...
 
harkio_Matrixharkio_Matrix_reshape (harkio_Matrix *m, int rows, int cols)
 行列の並び順を変更する More...
 
harkio_Matrixharkio_Matrix_transpose (harkio_Matrix *m)
 行列のを転置する More...
 
harkio_Matrixharkio_Matrix_ctranspose (harkio_Matrix *m)
 行列を複素共役転置する More...
 
harkio_Matrixharkio_Matrix_sumRow (harkio_Matrix *matrix)
 
harkio_Matrixharkio_Matrix_sumCol (harkio_Matrix *matrix)
 
harkio_Matrixharkio_Matrix_sumAll (harkio_Matrix *matrix)
 

Detailed Description

harkio_Matrix の API群。 行列の生成、操作、メモリ解放などを行う。

Author
Takeshi Mizumoto
Version
0.1

Function Documentation

COMPLEX_TYPE ccdiv ( COMPLEX_TYPE  i1,
COMPLEX_TYPE  i2 
)

行列を定数で除算する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value除算したい値
Returns
定数で除算された行列
COMPLEX_TYPE ccmul ( COMPLEX_TYPE  i1,
COMPLEX_TYPE  i2 
)

行列を定数倍する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value定数係数
Returns
定数倍された行列
float ffdiv ( float  i1,
float  i2 
)

行列を定数で除算する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value除算したい値
Returns
定数で除算された行列
float ffmul ( float  i1,
float  i2 
)

行列を定数倍する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value定数係数
Returns
定数倍された行列
int harkio_CheckType ( char *  type)

[内部用] harkio_Matrix の型判定

Parameters
[in]type型の文字列

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_add ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の和を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの和を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_add_fast ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の和を求める。(高速版)

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト

要素ごとの a と b の和を harkio_Matrix オブジェクト a に代入する。 メモリを確保しないため速度は速いが、変数 a の元の内容は保存されない。

Returns
引数 a へのポインタ。失敗すれば NULL

Here is the call graph for this function:

int harkio_Matrix_addstring ( char **  buffer,
char *  str,
int  bufsize 
)

文字列を追記する。

Parameters
[in]bufferharkio_Matrix オブジェクト
[in]strharkio_Matrix オブジェクト
[in]bufsizeharkio_Matrix オブジェクト
Returns
buffer の実際の長さ

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_copy ( harkio_Matrix m)

harkio_Matrix をコピーする。

Parameters
[in]mコピーしたい harkio_Matrix オブジェクト
Returns
内容をコピーした harkio_Matrix オブジェクト。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_ctranspose ( harkio_Matrix m)

行列を複素共役転置する

Parameters
[in]mharkio_Matrix オブジェクト
Returns
複素共役転置された行列のオブジェクト

行列の配列サイズは (row, col) –> (col, row) となり、         各要素は複素共役がとられる。

Here is the call graph for this function:

void harkio_Matrix_delete ( harkio_Matrix **  m)

デストラクタ。

Parameters
[in]m解放したい harkio_Matrix オブジェクト

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_eabs ( harkio_Matrix m)

要素ごとの絶対値を要素に持つ行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとの絶対値を持つ行列

harkio_Matrix_emap を元に実装している。 cabsf は float を返すので型を COMPLEX_TYPE で保つための wrapper を用意している。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_ecalcCComplex ( harkio_Matrix m,
COMPLEX_TYPE  value,
harkio_Matrix_calcfuncComplex  func 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ecalcCFloat32 ( harkio_Matrix m,
float  value,
harkio_Matrix_calcfuncFloat32  func 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ecalcCInt32 ( harkio_Matrix m,
int  value,
harkio_Matrix_calcfuncInt32  func 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_econj ( harkio_Matrix m)

要素ごとに複素共役を求めた行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに複素共役を求めた行列

harkio_Matrix_emap を元に実装している。 complex 型以外は影響なし。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_ediv ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の要素ごとの商を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの商 (a / b) を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_emap ( harkio_Matrix m,
harkio_Matrix_maps map 
)

行列の各要素を関数で写像する

Parameters
[in]mharkio_Matrix オブジェクト
[in]map型ごとの関数ポインタ
Returns
m の各要素に対して、引数 map で定義した関数を施して、 施した結果の新しい行列を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_emul ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の要素ごとの積を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの積を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_epowerCComplex ( harkio_Matrix m,
COMPLEX_TYPE  value 
)

行列を定数でべき乗する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value指数
Returns
指数でべき乗された行列

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_epowerCFloat32 ( harkio_Matrix m,
float  value 
)

行列を定数でべき乗する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value指数
Returns
指数でべき乗された行列

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_esquare ( harkio_Matrix m)

要素ごとに自乗した行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに自乗した行列

harkio_Matrix_emap を元に実装している。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_etanh ( harkio_Matrix m)

要素ごとに双曲線正接値を求めた行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに双曲線正接値を求めた行列

harkio_Matrix_emap を元に実装している。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_eye ( char *  type,
int  size 
)

単位行列生成するコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]sizeharkio_Matrix のサイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

単位行列は正方行列なので、列・行は共に size と等しい。 使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_fromFile ( char *  path)

harkio_Matrix_write で書き込んだファイルを読み込む。

Parameters
[in]pathファイルへのパス。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_fromZip ( struct zip *  handle,
char *  path 
)

[内部用] zip ファイル内のharkio_Matrix_write で書き込んだファイルを読み込む。

Parameters
[in]handleZip ファイルへのハンドル
[in]path対象ファイルの Zip ファイル内のパス
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_getDiag ( harkio_Matrix m)

対角成分を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
m の対角成分を要素に持つ (mのサイズ, 1) の行列へのポインタ

m は正方行列でなければならない。

Here is the call graph for this function:

char* harkio_Matrix_getTag ( harkio_Matrix m)

harkio_Matrix のタグを取得する

Parameters
[in]mharkio_Matrix オブジェクト
Returns
取り出しに成功すれば 変数へのポインタ。失敗すれば NULL

ポインタそのものを返すので、受け取った先で Free すると m の tag が破壊されるので注意。

int harkio_Matrix_getValueComplex ( harkio_Matrix m,
int  row,
int  col,
COMPLEX_TYPE *  value 
)

complex 型の harkio_Matrix の値を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]row取り出したい値の 行位置 (0 から開始)
[in]col取り出したい値の 列位置 (0 から開始)
[out]value取り出した値を格納する変数へのポインタ
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_getValueFloat32 ( harkio_Matrix m,
int  row,
int  col,
float *  value 
)

float32 型の harkio_Matrix の値を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]row取り出したい値の 行位置 (0 から開始)
[in]col取り出したい値の 列位置 (0 から開始)
[out]value取り出した値を格納する変数へのポインタ
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_getValueInt32 ( harkio_Matrix m,
int  row,
int  col,
int *  value 
)

int32 型の harkio_Matrix の値を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]row取り出したい値の 行位置 (0 から開始)
[in]col取り出したい値の 列位置 (0 から開始)
[out]value取り出した値を格納する変数へのポインタ
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_getValues ( harkio_Matrix m,
int  rowFrom,
int  rowTo,
int  colFrom,
int  colTo 
)

harkio_Matrix の部分行列を取り出す

Parameters
[in]mharkio_Matrix オブジェクト
[in]rowFrom取り出したい値の 行開始位置 (0 から開始)
[in]rowTo取り出したい値の 行終了位置 (0 から開始)
[in]colFrom取り出したい値の 列開始位置 (0 から開始)
[in]colTo取り出したい値の 列終了位置 (0 から開始)
Returns
取り出しに成功すれば部分行列を含む harkio_Matrix オブジェクト 失敗すれば NULL ポインタ。

Here is the call graph for this function:

Here is the caller graph for this function:

int harkio_Matrix_isEqual ( harkio_Matrix a,
harkio_Matrix b 
)

2つの harkio_Matrix オブジェクトが等しいかどうかを判定する

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
等しければ EXIT_SUCCESS, 等しくなければ EXIT_FAILURE

型、サイズ、すべての値が同じでなければならない。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_makeDiag ( harkio_Matrix m)

列ベクトルを対角成分にもつ正方行列を返す

Parameters
[in]mharkio_Matrix オブジェクト。サイズは (X, 1)
Returns
m の対角成分を要素に持つ (X, X) の行列へのポインタ

m は列ベクトル (row = 1) でなければならない。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_mul ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の積を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
a と b の行列の積をもつ harkio_Matrix オブジェクト。失敗すれば NULL

a のサイズが (A1, A2), b のサイズが (B1, B2) の場合、 A2 = B1 でなければ失敗する。 サイズが合っている場合、サイズ (A1, B2) の新しい行列ができる。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_new ( char *  type,
int  rows,
int  cols 
)

初期化しないコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]rowsharkio_Matrix の行サイズ。
[in]colsharkio_Matrix の列サイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_ones ( char *  type,
int  rows,
int  cols 
)

要素が全て1の行列を生成するコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]rowsharkio_Matrix の行サイズ。
[in]colsharkio_Matrix の列サイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

void harkio_Matrix_print ( harkio_Matrix m)

harkio_Matrix を表示する

Parameters
[in]mharkio_Matrix オブジェクト

Here is the call graph for this function:

char* harkio_Matrix_printBuffer ( harkio_Matrix m)

harkio_Matrix の文字列表現を格納したバッファを返す。

Parameters
[in]mharkio_Matrix オブジェクト
Returns
char * (利用者によるfree が必要)

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_reshape ( harkio_Matrix m,
int  rows,
int  cols 
)

行列の並び順を変更する

Parameters
[in]mharkio_Matrix オブジェクト
[in]rows新しい行数
[in]cols新しい列数
Returns
並び順が変更された行列のオブジェクト

行列の配列サイズ自体は変更しないので、元の rows * cols と、新しい rows * cols は等しくなければならない。

Here is the call graph for this function:

int harkio_Matrix_setValueComplex ( harkio_Matrix m,
int  row,
int  col,
COMPLEX_TYPE  value 
)

complex 型の harkio_Matrix の値を設定する

Parameters
[in]mharkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
[out]value設定しい値
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_setValueFloat32 ( harkio_Matrix m,
int  row,
int  col,
float  value 
)

float32 型の harkio_Matrix の値を設定する

Parameters
[in]mharkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
[out]value設定しい値
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_setValueInt32 ( harkio_Matrix m,
int  row,
int  col,
int  value 
)

int32 型の harkio_Matrix の値を設定する

Parameters
[in]mharkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
[out]value設定しい値
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

Here is the caller graph for this function:

int harkio_Matrix_setValues ( harkio_Matrix m1,
harkio_Matrix m2,
int  row,
int  col 
)

harkio_Matrix の一部を別の harkio_Matrix で上書きする

Parameters
[in]m1値を設定したい先の harkio_Matrix オブジェクト
[in]m2値を設定したい元の harkio_Matrix オブジェクト
[in]row設定したい値の 行位置 (0 から開始)
[in]col設定したい値の 列位置 (0 から開始)
Returns
取り出しに成功すれば EXIT_SUCCESS, 失敗すれば EXIT_FAILURE

m1 より m2 のサイズが小さくなければならない。また、はみ出ない row/col の値でなければならない。 複数の値をまとめて保存するときに使用

Here is the call graph for this function:

size_t harkio_Matrix_size ( harkio_Matrix m,
int *  size 
)

harkio_Matrix のサイズを取得する

Parameters
[in]mharkio_Matrix オブジェクト
[in]size行列のサイズが格納されるポインタ。 長さ 2 のメモリが確保された int 配列である必要がある。
Returns
行列全体のサイズ

size は呼び出し前にメモリ確保が必要であることに注意。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_sub ( harkio_Matrix a,
harkio_Matrix b 
)

2 つの harkio_Matrix の差を求める。

Parameters
[in]aharkio_Matrix オブジェクト
[in]bharkio_Matrix オブジェクト
Returns
要素ごとの差 (a-b) を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_sum ( harkio_Matrix **  matrix,
int  num 
)

複数 harkio_Matrix の要素ごとの総和を求める

Parameters
[in]matrixharkio_Matrix オブジェクト のポインタ配列
[in]nummatrix の長さ
Returns
matrix の要素ごとの全ての和を要素に持つ新しい harkio_Matrix オブジェクト。失敗すれば NULL

matrix 配列が差す harkio_Matrix オブジェクトは全て同じサイズ、型でなければならない。

Here is the call graph for this function:

harkio_Matrix* harkio_Matrix_transpose ( harkio_Matrix m)

行列のを転置する

Parameters
[in]mharkio_Matrix オブジェクト
Returns
転置された行列のオブジェクト

行列の配列サイズは (row, col) –> (col, row) となる。

Here is the call graph for this function:

int harkio_Matrix_write ( harkio_Matrix m,
char *  path 
)

harkio_Matrix をファイルに書き込む

Parameters
[in]mharkio_Matrix オブジェクト
[in]path書き込むファイルへのパス
Returns
書き込みに成功すれば EXIT_SUCCESS、失敗すれば EXIT_FAILURE

Here is the call graph for this function:

char* harkio_Matrix_writeBuffer ( harkio_Matrix m,
size_t *  size 
)

harkio_Matrix のファイルフォーマットを書き込んだバッファを返す。

Parameters
[in]mharkio_Matrix オブジェクト
[out]size戻り値が指すバッファのサイズ
Returns
harkio_Matrix のファイルフォーマットと同じデータが格納されたバッファへのポインタ。

Here is the call graph for this function:

Here is the caller graph for this function:

harkio_Matrix* harkio_Matrix_zeros ( char *  type,
int  rows,
int  cols 
)

要素が全てゼロの行列を生成するコンストラクタ

Parameters
[in]type   harkio_Matrix の型。 int32, float32, complex から選べる。
[in]rowsharkio_Matrix の行サイズ。
[in]colsharkio_Matrix の列サイズ。
Returns
harkio_Matrix 型のポインタ。失敗すると NULL を返す。

使用が終わったら、 harkio_Matrix_delete でメモリ解放を行う。

Here is the call graph for this function:

Here is the caller graph for this function:

int iidiv ( int  i1,
int  i2 
)

行列を定数で除算する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value除算したい値
Returns
定数で除算された行列
int iimul ( int  i1,
int  i2 
)

行列を定数倍する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value定数係数
Returns
定数倍された行列
int iipower ( int  i1,
int  i2 
)

行列を定数でべき乗する

Parameters
[in]mharkio_Matrix オブジェクト
[in]value指数
Returns
指数でべき乗された行列
int intcosh ( int  i)

要素ごとに双曲線余弦値を求めた行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに双曲線余弦値を求めた行列

harkio_Matrix_emap を元に実装している。

int intimag ( int  i)

要素ごとに虚数部をとる行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに虚数部をとる行列

harkio_Matrix_emap を元に実装している。

int intlog ( int  i)

要素ごとに自然対数を求めた行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに自然対数を求めた行列

harkio_Matrix_emap を元に実装している。

int intlog10 ( int  i)

要素ごとに常用対数を求めた行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに常用対数を求めた行列

harkio_Matrix_emap を元に実装している。

int intreal ( int  i)

要素ごとに実数部をとる行列を返す

Parameters
[in]mharkio_Matrix オブジェクト
Returns
要素ごとに実数部をとる行列

harkio_Matrix_emap を元に実装している。