WIL説明書(C++)
3.0.0
|
行列クラス [詳解]
行列クラス
namespace FVCL::Data
行列情報を保有するクラスです。
本クラスでサポートする行列は、2次元の行列のみで、横方向(列)と縦方向(行)から成り立ちます。
公開型 | |
enum | { DataID = 200 } |
公開メンバ関数 | |
CFvMatrix () | |
コンストラクタ [詳解] | |
CFvMatrix (INT width, INT height) | |
(非推奨) コンストラクタ [詳解] | |
CFvMatrix (INT rows, INT cols, DOUBLE **matrix) | |
コンストラクタ [詳解] | |
CFvMatrix (FMATRIX *matrix, bool attach) | |
コンストラクタ [詳解] | |
CFvMatrix (const CFvMatrix &src) | |
コピーコンストラクタ [詳解] | |
virtual | ~CFvMatrix () |
デストラクタ [詳解] | |
virtual INT | GetDataID () const |
データIDの取得 [詳解] | |
virtual bool | GetPointer (INT id, void **val) const |
インスタンスのthisポインタの取得 [詳解] | |
virtual bool | Load (LPCTSTR szFileName) |
ファイル読み込み [詳解] | |
virtual bool | Save (LPCTSTR szFileName) |
ファイル保存 [詳解] | |
virtual bool | Resize (INT rows, INT cols) |
領域の確保 [詳解] | |
virtual void | Free () |
行列の解放 [詳解] | |
virtual bool | Attach (INT rows, INT cols, DOUBLE **matrix) |
アタッチ [詳解] | |
virtual bool | Attach (FMATRIX *matrix) |
アタッチ [詳解] | |
virtual void | IsAttach (bool value) |
アタッチ属性の設定 [詳解] | |
virtual bool | IsAttach () const |
アタッチ属性の取得 [詳解] | |
virtual bool | SetHandle (FMATRIX *handle) |
ハンドルの設定 [詳解] | |
virtual FMATRIX * | GetHandle () const |
行列構造体のアドレスの取得 [詳解] | |
virtual FMATRIX * | GetFMATRIX () const |
行列構造体のアドレスの取得 [詳解] | |
virtual INT | GetRows () const |
行サイズの取得 [詳解] | |
virtual INT | GetColumns () const |
列サイズの取得 [詳解] | |
virtual DOUBLE ** | GetAddress () const |
行列データの先頭アドレス取得 [詳解] | |
virtual bool | SetRowVector (INT row, const CFvVector &vector) |
ベクトルの設定 (行指定) [詳解] | |
virtual CFvVector | GetRowVector (INT row) const |
ベクトルの取得 (行指定) [詳解] | |
virtual bool | SetColVector (INT col, const CFvVector &vector) |
ベクトルの設定 (列指定) [詳解] | |
virtual CFvVector | GetColVector (INT col) const |
ベクトルの取得 (行指定) [詳解] | |
bool | SetSize (INT width, INT height) |
サイズの設定 [詳解] | |
bool | GetSize (INT *width, INT *height) const |
サイズの取得 [詳解] | |
INT | GetWidth () const |
列数の取得 [詳解] | |
INT | GetHeight () const |
行数の取得 [詳解] | |
bool | SetValue (INT x, INT y, DOUBLE value) |
行列データの設定 [詳解] | |
DOUBLE | GetValue (INT x, INT y) const |
行列データの取得 [詳解] | |
virtual DOUBLE * | operator[] (INT row) |
行列データの先頭アドレス取得 (行指定) [詳解] | |
virtual const DOUBLE * | operator[] (INT row) const |
行列データの先頭アドレス取得 (行指定) [詳解] | |
virtual DOUBLE & | operator() (INT row, INT col) |
行列要素への参照 (行、列指定) [詳解] | |
virtual const DOUBLE & | operator() (INT row, INT col) const |
行列要素への参照 (行、列指定) [詳解] | |
virtual CFvMatrix & | operator= (const CFvMatrix &src) |
代入オペレータ [詳解] | |
virtual bool | operator== (const CFvMatrix &src) const |
比較オペレータ(等価演算子) [詳解] | |
virtual bool | operator!= (const CFvMatrix &src) const |
比較オペレータ(非等価演算子) [詳解] | |
virtual CFvMatrix | operator+ (const CFvMatrix &src) const |
加算オペレータ(行列) [詳解] | |
virtual CFvMatrix | operator+ (DOUBLE scalar) const |
加算オペレータ(スカラー) [詳解] | |
virtual CFvMatrix & | operator+= (const CFvMatrix &src) |
加算代入オペレータ(行列) [詳解] | |
virtual CFvMatrix & | operator+= (DOUBLE scalar) |
加算代入オペレータ(スカラー) [詳解] | |
virtual CFvMatrix | operator- (const CFvMatrix &src) const |
減算オペレータ(行列) [詳解] | |
virtual CFvMatrix | operator- (DOUBLE scalar) const |
減算オペレータ(スカラー) [詳解] | |
virtual CFvMatrix & | operator-= (const CFvMatrix &src) |
減算代入オペレータ(行列) [詳解] | |
virtual CFvMatrix & | operator-= (DOUBLE scalar) |
減算代入オペレータ(スカラー) [詳解] | |
virtual CFvMatrix | operator* (const CFvMatrix &src) const |
乗算オペレータ(行列) [詳解] | |
virtual CFvMatrix | operator* (DOUBLE scalar) const |
乗算オペレータ(スカラー) [詳解] | |
virtual CFvMatrix & | operator*= (const CFvMatrix &src) |
乗算代入オペレータ(行列) [詳解] | |
virtual CFvMatrix & | operator*= (DOUBLE scalar) |
乗算代入オペレータ(スカラー) [詳解] | |
CFvMatrix & | Add (const CFvMatrix &src) |
加算 (行列+行列) [詳解] | |
CFvMatrix & | AddScalar (DOUBLE scalar) |
加算 (行列+スカラー) [詳解] | |
CFvMatrix & | Sub (const CFvMatrix &src) |
減算 (行列-行列) [詳解] | |
CFvMatrix & | SubScalar (DOUBLE scalar) |
減算 (行列-スカラー) [詳解] | |
CFvMatrix & | Mul (const CFvMatrix &src) |
乗算 (行列*行列) [詳解] | |
CFvMatrix & | MulScalar (DOUBLE scalar) |
乗算 (行列*スカラー) [詳解] | |
void | eye () |
単位行列の作成 [詳解] | |
void | ones () |
要素が全て1の行列の作成 [詳解] | |
void | zeros () |
要素が全て0の行列の作成 [詳解] | |
void | rand () |
![]() | |
CFvMatrix | triu (INT k) const |
上三角成分の抽出 [詳解] | |
CFvMatrix | tril (INT k) const |
下三角成分の抽出 [詳解] | |
CFvMatrix | circshift (INT sx, INT sy) const |
行列要素の循環シフト [詳解] | |
CFvMatrix | cat_horz (const CFvMatrix &right) const |
行列要素の水平方向結合 [詳解] | |
CFvMatrix | cat_vert (const CFvMatrix &bottom) const |
行列要素の垂直方向結合 [詳解] | |
CFvMatrix | flipdim_horz () const |
行列要素の反転 (左右反転) [詳解] | |
CFvMatrix | flipdim_vert () const |
行列要素の反転 (上下反転) [詳解] | |
CFvMatrix | Inverse (UINT option=1) const |
逆行列の生成 [詳解] | |
CFvVector | solve (const CFvVector &vector) const |
連立一次方程式の計算 [詳解] | |
CFvMatrix | transpose () const |
行列の転置 [詳解] | |
DOUBLE | trace () const |
行列のトレースの計算 [詳解] | |
DOUBLE | max_elem () const |
成分の最大値抽出 [詳解] | |
DOUBLE | min_elem () const |
成分の最小値抽出 [詳解] | |
CFvMatrix | asin () const |
各成分の asin の計算 [詳解] | |
CFvMatrix | acos () const |
各成分の acos の計算 [詳解] | |
CFvMatrix | atan () const |
各成分の atan の計算 [詳解] | |
CFvMatrix | atan2 (const CFvMatrix &ax) const |
各成分の atan2 の計算 [詳解] | |
CFvMatrix | cos () const |
各成分の cos の計算 [詳解] | |
CFvMatrix | sin () const |
各成分の sin の計算 [詳解] | |
CFvMatrix | tan () const |
各成分の tan の計算 [詳解] | |
CFvMatrix | exp () const |
各成分の exp の計算 [詳解] | |
CFvMatrix | log () const |
各成分の log の計算 [詳解] | |
CFvMatrix | sqrt () const |
各成分の sqrt の計算 [詳解] | |
CFvMatrix | abs () const |
各成分の abs の計算 [詳解] | |
CFvMatrix | ceil () const |
各成分の ceil の計算 [詳解] | |
CFvMatrix | floor () const |
各成分の floor の計算 [詳解] | |
CFvMatrix | mul_elem (const CFvMatrix &src) const |
成分ごとの乗算 (行列*行列) [詳解] | |
CFvMatrix | div_elem (const CFvMatrix &src) const |
成分ごとの除算 (行列/行列) [詳解] | |
void | modf (CFvMatrix *dsti, CFvMatrix *dstf) const |
各成分の modf の計算 [詳解] | |
bool | has_nan () const |
NaN 値を含んでいるか否かの判定 [詳解] | |
bool | is_nan () const |
全ての要素が NaN 値か否かの判定 [詳解] | |
bool | is_normal () const |
非数値判定 [詳解] | |
DOUBLE | det () const |
![]() | |
DOUBLE | norm (INT type) const |
![]() | |
INT | rank (DOUBLE tol) const |
![]() | |
DOUBLE | cond (INT type) const |
![]() | |
DOUBLE | rcond () const |
![]() | |
void | chol (CFvMatrix *a, INT mode) const |
![]() | |
void | lu (CFvMatrix *a, CFvBuffer< INT > *pivot) const |
![]() | |
void | qr (CFvMatrix *q, CFvMatrix *r) const |
![]() | |
void | svd (CFvMatrix *u, CFvMatrix *vt, CFvBuffer< DOUBLE > *sigma) const |
![]() | |
void | svd2 (CFvMatrix *u, CFvMatrix *vt, CFvBuffer< DOUBLE > *sigma, INT mode, DOUBLE rcond, INT *rank) const |
![]() | |
void | eig (CFvBuffer< FCOMPLEX > *lambda, CFvBuffer< FCOMPLEX > *vr, CFvBuffer< FCOMPLEX > *vl) const |
![]() | |
void | inverse3 (CFvMatrix *ai, DOUBLE *det) const |
![]() | |
void | pseudo_inverse (CFvMatrix *ai, DOUBLE threshold, INT *rank) const |
![]() | |
void | linsolve (INT method, DOUBLE rcond, const CFvVector &b, CFvVector *x, DOUBLE *residual, INT *rank) const |
![]() | |
void | linsolve2 (INT method, DOUBLE rcond, const CFvMatrix &b, CFvMatrix *x, CFvBuffer< DOUBLE > *residuals, INT *rank) const |
![]() | |
![]() | |
CFvDataObject () | |
標準のコンストラクタ [詳解] | |
virtual | ~CFvDataObject () |
デストラクタ [詳解] | |
![]() | |
CFvObject () | |
標準のコンストラクタ [詳解] | |
virtual | ~CFvObject () |
デストラクタ [詳解] | |
INT | SetErrorCode (INT err) |
エラーコードの設定 [詳解] | |
INT | SetErrorCode (INT err) const |
エラーコードの設定 [詳解] | |
INT | GetErrorCode () const |
エラーコードの取得 [詳解] | |
bool | SetAllocateOption (INT value) |
画像領域確保時のオプションの設定 [詳解] | |
INT | GetAllocateOption () const |
画像領域確保時のオプションの取得 [詳解] | |
void * | operator new (size_t uiSize) |
new オペレータ [詳解] | |
void * | operator new[] (size_t uiSize) |
new[] オペレータ [詳解] | |
void | operator delete (void *pvObject) |
delete オペレータ [詳解] | |
void | operator delete[] (void *pvObject) |
delete[] オペレータ [詳解] | |
void * | operator new (size_t uiSize, LPCSTR szFileName, INT iLine) |
new オペレータ [詳解] | |
void * | operator new[] (size_t uiSize, LPCSTR szFileName, INT iLine) |
new[] オペレータ [詳解] | |
void | operator delete (void *pvObject, LPCSTR szFileName, INT iLine) |
delete オペレータ [詳解] | |
void | operator delete[] (void *pvObject, LPCSTR szFileName, INT iLine) |
delete[] オペレータ [詳解] | |
virtual CFvObject & | operator= (const CFvObject &src) |
代入オペレータ [詳解] | |
virtual bool | operator== (const CFvObject &src) const |
比較オペレータ (==) [詳解] | |
virtual bool | operator!= (const CFvObject &src) const |
比較オペレータ (!=) [詳解] | |
静的公開メンバ関数 | |
static CFvMatrix | alloc (INT rows, INT cols) |
行列の生成 (0 初期化) [詳解] | |
static CFvMatrix | alloc_eye (INT rows, INT cols) |
単位行列の作成 [詳解] | |
static CFvMatrix | alloc_ones (INT rows, INT cols) |
行列の生成 (すべて 1 で初期化) [詳解] | |
![]() | |
static bool | SetDefaultAllocateOption (INT value) |
既定の画像領域確保時のオプションの設定 [詳解] | |
static INT | GetDefaultAllocateOption () |
既定の画像領域確保時のオプションの取得 [詳解] | |
フレンド | |
FVCL_API friend CFvVector | operator* (const CFvMatrix &matrix, const CFvVector &vector) |
乗算オペレータ(行列*ベクトル) [詳解] | |
FVCL_API friend CFvVector | operator* (const CFvVector &vector, const CFvMatrix &matrix) |
乗算オペレータ(ベクトル*行列) [詳解] | |
FVCL_API friend CFvMatrix | operator/ (const CFvMatrix &matrix, DOUBLE scalar) |
除算オペレータ(行列/スカラー) [詳解] | |
FVCL_API friend CFvMatrix | operator/ (DOUBLE scalar, const CFvMatrix &matrix) |
除算オペレータ(スカラー/行列) [詳解] | |
その他の継承メンバ | |
![]() | |
INT | fnCPUCheck () |
CPU情報の取得 [詳解] | |
![]() | |
INT | m_ErrorCode |
エラーコード [詳解] | |
INT | m_AllocateOption |
画像領域確保時のオプション [詳解] | |
FVCL::Data::CFvMatrix::CFvMatrix | ( | ) |
コンストラクタ
標準のコンストラクタです。
3x3 の行列を確保します。各成分は 0 初期化されています。
(非推奨) コンストラクタ
引数に指定されたサイズで行列を生成してオブジェクトを構築します。
確保する行列のサイズは width*height < 2^28 を満たすように指定してください。
確保された行列の内容は、0 で初期化されます。
確保されたメモリはデストラクタで自動的に解放されます。
[in] | width | 列サイズ(1以上) |
[in] | height | 行サイズ(1以上) |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
コンストラクタ
引数に指定されたサイズで行列を生成するか、 引数に指定されたアドレスにアタッチしてオブジェクトを構築します。
行列のサイズは rows*cols < 2^28 を満たすように指定してください。
指定されたメモリアドレスは解放されません。
※注)
引数 matrix に NULL を指定した時は、指定されたサイズで Resize を実行します。
NULL 以外の時は Attach を実行します。
[in] | rows | 行サイズ(1以上) |
[in] | cols | 列サイズ(1以上) |
[in] | matrix | 2次元配列のアドレス |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
FVCL::Data::CFvMatrix::CFvMatrix | ( | FMATRIX * | matrix, |
bool | attach | ||
) |
コンストラクタ
初期値を指定してオブジェクトを構築します。
[in] | matrix | 行列構造体 |
[in] | attach | アタッチ指定
|
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
FVCL::Data::CFvMatrix::CFvMatrix | ( | const CFvMatrix & | src | ) |
コピーコンストラクタ
引数の行列と同じサイズの行列を生成し、データをコピーします。 確保されたメモリはデストラクタで自動的に解放されます。
[in] | src | 複製元 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
|
virtual |
デストラクタ
メモリの解放を行います。
|
virtual |
データIDの取得
データIDを取得します。
User::SampleCode::Data::Matrix::GetDataID CFvMatrix.GetDataID -> 200
FVCL::CFvDataObjectを実装しています。
|
virtual |
インスタンスのthisポインタの取得
指定されたデータIDと自身のIDが一致する場合に thisポインタを返します。
[in] | id | データID |
[out] | val | thisポインタを格納する変数へのポインタ |
true | 正常 |
false | 異常 |
FVCL::CFvDataObjectを実装しています。
|
virtual |
ファイル読み込み
指定されたファイルからデータを復元します。
通常は Save メソッドで保存したファイルを指定してください。 それ以外で、何らかの画像ファイルが存在するとき、できる限り復元しようとしますが内容が正常とは限りません。
[in] | szFileName | ファイル名称 |
true | 正常 |
false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。メモリが不足しています。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが無効です。ファイル名に null や空白は指定できません。 |
21 | FVCL_ErrorCode::NOT_SUPPORTED | 指定されたファイル形式はサポートされていません。 |
23 | FVCL_ErrorCode::NOT_ALLOCATED | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::Save CFvMatrix.Save -> Success. User::SampleCode::Data::Matrix::Load CFvMatrix.Load [0][0]=1.000000 [0][1]=3.000000 [0][2]=3.000000 [1][0]=4.000000 [1][1]=-2.000000 [1][2]=1.000000 [2][0]=2.000000 [2][1]=5.000000 [2][2]=-1.000000
FVCL::CFvDataObjectを再実装しています。
|
virtual |
ファイル保存
指定されたファイルにデータを保存します。
行列を画像ファイルに保存します。
サポートしている画像ファイルの形式は以下の通りです。
[in] | szFileName | ファイル名称 ※注) カレントであってもパスを付加してください。 |
true | 正常 |
false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。メモリが不足しています。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが無効です。ファイル名に null や空白は指定できません。 |
21 | FVCL_ErrorCode::NOT_SUPPORTED | 指定されたファイル形式はサポートされていません。 |
23 | FVCL_ErrorCode::NOT_ALLOCATED | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::Save CFvMatrix.Save -> Success. User::SampleCode::Data::Matrix::Load CFvMatrix.Load [0][0]=1.000000 [0][1]=3.000000 [0][2]=3.000000 [1][0]=4.000000 [1][1]=-2.000000 [1][2]=1.000000 [2][0]=2.000000 [2][1]=5.000000 [2][2]=-1.000000
FVCL::CFvDataObjectを再実装しています。
行列の生成 (0 初期化)
行列を確保して返します。
確保する行列のサイズは rows*cols < 2^28 を満たすように指定してください。
確保された行列の各要素は 0 初期化されています。
[in] | rows | 行数 (1~) |
[in] | cols | 列数 (1~) |
FVCL::CFveException | 確保に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
単位行列の作成
正方行列を確保して、単位行列に設定して返します。 対角成分が 1.0 になり、他の成分は 0.0 になります。 確保する行列のサイズは rows*cols < 2^28 を満たすように指定してください。
[in] | rows | 行数 (1~) |
[in] | cols | 列数 (1~) |
FVCL::CFveException | 確保に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
行列の生成 (すべて 1 で初期化)
行列を確保して返します。
確保する行列のサイズは rows*cols < 2^28 を満たすように指定してください。
確保された行列の各要素は 1 で初期化されています。
[in] | rows | 行数 (1~) |
[in] | cols | 列数 (1~) |
FVCL::CFveException | 確保に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
領域の確保
行列を確保します。
確保する行列のサイズは rows*cols < 2^28 を満たすように指定してください。
[in] | rows | 行サイズ (1~) |
[in] | cols | 列サイズ (1~) |
true | 正常 |
false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
CFvMatrix.Resize -> rows=5, columns=4 [0,0]=0.000000 [0,1]=0.000000 [0,2]=0.000000 [0,3]=0.000000 [1,0]=0.000000 [1,1]=0.000000 [1,2]=0.000000 [1,3]=0.000000 [2,0]=0.000000 [2,1]=0.000000 [2,2]=0.000000 [2,3]=0.000000 [3,0]=0.000000 [3,1]=0.000000 [3,2]=0.000000 [3,3]=0.000000 [4,0]=0.000000 [4,1]=0.000000 [4,2]=0.000000 [4,3]=0.000000
|
virtual |
行列の解放
アタッチ
引数に指定されたアドレスにアタッチします。
確保する行列のサイズは rows*cols < 2^28 を満たすように指定してください。
指定されたメモリアドレスは解放されません。
[in] | rows | 行サイズ (1~) |
[in] | cols | 列サイズ (1~) |
[in] | matrix | 2次元配列のアドレス |
true | 正常 |
false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
|
virtual |
アタッチ
引数に指定されたアドレスにアタッチします。
確保する行列のサイズは rows*cols < 2^28 を満たすように指定してください。
指定されたメモリアドレスは解放されません。
[in] | matrix | 行列構造体 通常は fnFIE_mat_aalloc で確保した行列を指定してください。 |
true | 正常 |
false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
|
virtual |
アタッチ属性の設定
アタッチ属性を設定します。
[in] | value | アタッチ属性
|
|
virtual |
アタッチ属性の取得
現在のアタッチ属性を取得します。
true | アタッチしています。アタッチ対象の領域はユーザー側で管理する必要があります。 |
false | アタッチしていません。このクラスの内部に管理している領域はクラスが破棄される際に解放されます。 |
|
virtual |
ハンドルの設定
引数に指定されたアドレスを設定します。
確保する行列のサイズは rows*cols < 2^28 を満たすように指定してください。
指定されたメモリアドレスは、このクラスが破棄される際に解放されます。
[in] | handle | 行列構造体 通常は fnFIE_mat_aalloc で確保した行列を指定してください。 |
|
virtual |
行列構造体のアドレスの取得
ヒープ領域に確保された行列構造体のアドレスを取得します。
|
virtual |
行列構造体のアドレスの取得
ヒープ領域に確保された行列構造体のアドレスを取得します。
|
virtual |
|
virtual |
|
virtual |
行列データの先頭アドレス取得
行列データの先頭アドレスを取得します。
ベクトルの設定 (行指定)
指定されたベクトルの各要素を指定行の各要素にコピーします。
[in] | row | 行指標 (0~) |
[in] | vector | 設定するベクトル |
true | 正常 |
false | 異常 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 指標が不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
|
virtual |
ベクトルの取得 (行指定)
[in] | row | 行指標 (0~) |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | 指メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 指標が不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
ベクトルの設定 (列指定)
指定されたベクトルの各要素を指定列の各要素にコピーします。
[in] | col | 列指標 (0~) |
[in] | vector | 設定するベクトル |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 指標が不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
|
virtual |
ベクトルの取得 (行指定)
[in] | col | 列指標 (0~) |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | 指メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 指標が不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
サイズの設定
行列を確保します。
確保する行列のサイズは width*height < 2^28 を満たすように指定してください。
確保された行列は、0 で初期化されます。
[in] | width | 列数 (1~) |
[in] | height | 行数 (1~) |
true | 正常 |
false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
値 | 定数 | 内容 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数が間違っています。 |
サイズの取得
行列サイズを取得します。
引数に NULL を指定した場合、そのサイズは取得しません。
[out] | width | 列数 |
[out] | height | 行数 |
true | 正常 |
false | 異常 |
FVCL::Data::CFvMatrix::GetWidth | ( | ) | const |
行列データの設定
指定された位置に行列データを設定します。
[in] | x | 列( 0~GetWidth()-1 ) |
[in] | y | 行( 0~GetHeight()-1 ) |
[in] | value | 行列データ |
true | 正常 |
false | 異常 |
FVCL::CFveBadAccessException | 行列配列が生成されていないか、設定位置が間違っています。 |
行列データの取得
指定された位置の行列データの取得します。
[in] | x | 列( 0~GetWidth()-1 ) |
[in] | y | 行( 0~GetHeight()-1 ) |
FVCL::CFveBadAccessException | 行列配列が生成されていないか、設定位置が間違っています。 |
|
virtual |
行列データの先頭アドレス取得 (行指定)
行列データの指定行の先頭アドレスを取得します。
|
virtual |
行列データの先頭アドレス取得 (行指定)
行列データの指定行の先頭アドレスを取得します。
行列要素への参照 (行、列指定)
指定位置の行列要素への参照を取得します。
行列要素への参照 (行、列指定)
指定位置の行列要素への参照を取得します。
|
virtual |
代入オペレータ
同一クラスのオブジェクトの内容を複製して、自身に代入します。
[in] | src | コピー元 |
FVCL::CFveBadAllocException | メモリの確保に失敗しました。 |
|
virtual |
比較オペレータ(等価演算子)
同一クラスのオブジェクトの内容と比較します。
[in] | src | チェック元 |
true | 一致 |
false | 不一致 |
User::SampleCode::Data::Matrix::Equality CFvMatrix.Equality -> Success.
|
virtual |
比較オペレータ(非等価演算子)
同一クラスのオブジェクトの内容と比較します。
[in] | src | チェック元 |
true | 不一致 |
false | 一致 |
User::SampleCode::Data::Matrix::Inequality CFvMatrix.Inequality -> Success.
|
virtual |
加算オペレータ(行列)
自身と右辺値(行列)を加算した結果を返します。自身の内容は更新されません。
行列数が一致している必要があります。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Addition_mm CFvMatrix.Addition(matrix+matrix) [0][0]=4.000000 [0][1]=11.000000 [0][2]=4.000000 [1][0]=4.000000 [1][1]=-4.000000 [1][2]=6.000000
|
virtual |
加算オペレータ(スカラー)
自身と右辺値(スカラー)を加算した結果を返します。自身の内容は更新されません。
[in] | scalar | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Addition_ms CFvMatrix.Addition(matrix+scalar) [0][0]=9.000000 [0][1]=11.000000 [0][2]=11.000000 [1][0]=12.000000 [1][1]=6.000000 [1][2]=9.000000 [2][0]=10.000000 [2][1]=13.000000 [2][2]=7.000000
|
virtual |
加算代入オペレータ(行列)
自身に右辺値(行列)を加算した結果を返します。自身の内容を更新します。
行列数が一致している必要があります。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::AdditionAssignment_mm CFvMatrix.AdditionAssignment(matrix+matrix) [0][0]=4.000000 [0][1]=11.000000 [0][2]=4.000000 [1][0]=4.000000 [1][1]=-4.000000 [1][2]=6.000000
|
virtual |
加算代入オペレータ(スカラー)
自身に右辺値(スカラー)を加算した結果を返します。自身の内容を更新します。
[in] | scalar | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::AdditionAssignment_ms CFvMatrix.AdditionAssignment(matrix+scalar) [0][0]=9.000000 [0][1]=11.000000 [0][2]=11.000000 [1][0]=12.000000 [1][1]=6.000000 [1][2]=9.000000 [2][0]=10.000000 [2][1]=13.000000 [2][2]=7.000000
|
virtual |
減算オペレータ(行列)
自身と右辺値(行列)を減算した結果を返します。自身の内容は更新されません。
行列数が一致している必要があります。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Subtraction_mm CFvMatrix.Subtraction(matrix - matrix) [0][0]=-2.000000 [0][1]=-5.000000 [0][2]=2.000000 [1][0]=4.000000 [1][1]=0.000000 [1][2]=-4.000000
|
virtual |
減算オペレータ(スカラー)
自身と右辺値(スカラー)を減算した結果を返します。自身の内容は更新されません。
[in] | scalar | スカラー |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Subtraction_ms CFvMatrix.Subtraction( matrix - scalar) [0][0]=-7.000000 [0][1]=-5.000000 [0][2]=-5.000000 [1][0]=-4.000000 [1][1]=-10.000000 [1][2]=-7.000000 [2][0]=-6.000000 [2][1]=-3.000000 [2][2]=-9.000000
|
virtual |
減算代入オペレータ(行列)
自身に右辺値(行列)を減算した結果を返します。自身の内容を更新します。
行列数が一致している必要があります。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::SubtractionAssignment_mm CFvMatrix.SubtractionAssignment(matrix - matrix) [0][0]=-2.000000 [0][1]=-5.000000 [0][2]=2.000000 [1][0]=4.000000 [1][1]=0.000000 [1][2]=-4.000000
|
virtual |
減算代入オペレータ(スカラー)
自身に右辺値(スカラー)を減算した結果を返します。自身の内容を更新します。
[in] | scalar | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::SubtractionAssignment_ms CFvMatrix.SubtractionAssignment_ms( matrix - scalar) [0][0]=-7.000000 [0][1]=-5.000000 [0][2]=-5.000000 [1][0]=-4.000000 [1][1]=-10.000000 [1][2]=-7.000000 [2][0]=-6.000000 [2][1]=-3.000000 [2][2]=-9.000000
|
virtual |
乗算オペレータ(行列)
自身と右辺値(行列)を乗算した結果を返します。自身の内容は更新されません。
自身(左辺値)の列数と右辺値の行数が一致している必要があります。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Multiply_mm CFvMatrix.Multiply(matrix * matrix) [0][0]=3.000000 [0][1]=2.000000 [0][2]=16.000000 [0][3]=0.000000 [0][4]=0.000000 [1][0]=12.000000 [1][1]=36.000000 [1][2]=-6.000000 [1][3]=0.000000 [1][4]=0.000000 [2][0]=6.000000 [2][1]=6.000000 [2][2]=27.000000 [2][3]=0.000000 [2][4]=0.000000 [3][0]=9.000000 [3][1]=22.000000 [3][2]=8.000000 [3][3]=0.000000 [3][4]=0.000000
|
virtual |
乗算オペレータ(スカラー)
自身(行列)の各成分と右辺値(スカラー)を乗算した結果を返します。
自身の内容は更新されません。
[in] | scalar | スカラー |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Multiply_mm CFvMatrix.Multiply(matrix * scalar) [0][0]=8.000000 [0][1]=24.000000 [0][2]=24.000000 [1][0]=32.000000 [1][1]=-16.000000 [1][2]=8.000000 [2][0]=16.000000 [2][1]=40.000000 [2][2]=-8.000000
|
virtual |
乗算代入オペレータ(行列)
自身(行列)に右辺値(行列)を乗算した結果を返します。自身の内容を更新します。
自身(左辺値)の列数と右辺値の行数が一致している必要があります。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::MultiplicationAssignment_mm CFvMatrix.MultiplicationAssignment(matrix * matrix) [0][0]=3.000000 [0][1]=2.000000 [0][2]=16.000000 [0][3]=0.000000 [0][4]=0.000000 [1][0]=12.000000 [1][1]=36.000000 [1][2]=-6.000000 [1][3]=0.000000 [1][4]=0.000000 [2][0]=6.000000 [2][1]=6.000000 [2][2]=27.000000 [2][3]=0.000000 [2][4]=0.000000 [3][0]=9.000000 [3][1]=22.000000 [3][2]=8.000000 [3][3]=0.000000 [3][4]=0.000000
|
virtual |
乗算代入オペレータ(スカラー)
自身(行列)の各成分に右辺値(スカラー)を乗算した結果を返します。
自身の内容を更新します。
[in] | scalar | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::MultiplicationAssignment_ms CFvMatrix.MultiplicationAssignment(matrix * scalar) [0][0]=8.000000 [0][1]=24.000000 [0][2]=24.000000 [1][0]=32.000000 [1][1]=-16.000000 [1][2]=8.000000 [2][0]=16.000000 [2][1]=40.000000 [2][2]=-8.000000
FVCL::Data::CFvMatrix::Add | ( | const CFvMatrix & | src | ) |
加算 (行列+行列)
現在の行列と指定された行列を加算した結果を返します。
現在の行列の内容を更新します。
※ 2つの行列の次元は一致している必要が有ります。
※ 2つの行列が同一のインスタンスの場合も処理可能です。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Add CFvMatrix.Add [0][0]=4.000000 [0][1]=11.000000 [0][2]=4.000000 [1][0]=4.000000 [1][1]=-4.000000 [1][2]=6.000000
FVCL::Data::CFvMatrix::AddScalar | ( | DOUBLE | scalar | ) |
加算 (行列+スカラー)
現在の行列と指定された値を加算した結果を返します。
現在の行列の内容を更新します。
[in] | scalar | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
CFvMatrix.AddScalar [0][0]=9.000000 [0][1]=11.000000 [0][2]=11.000000 [1][0]=12.000000 [1][1]=6.000000 [1][2]=9.000000 [2][0]=10.000000 [2][1]=13.000000 [2][2]=7.000000
FVCL::Data::CFvMatrix::Sub | ( | const CFvMatrix & | src | ) |
減算 (行列-行列)
現在の行列から指定された行列を減算した結果を返します。
現在の行列の内容を更新します。
※ 2つの行列の次元は一致している必要が有ります。
※ 2つの行列が同一のインスタンスの場合も処理可能です。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Sub CFvMatrix.Sub [0][0]=-2.000000 [0][1]=-5.000000 [0][2]=2.000000 [1][0]=4.000000 [1][1]=0.000000 [1][2]=-4.000000
FVCL::Data::CFvMatrix::SubScalar | ( | DOUBLE | scalar | ) |
減算 (行列-スカラー)
現在の行列から指定された値を減算した結果を返します。
現在の行列の内容を更新します。
[in] | scalar | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::SubScalar CFvMatrix.SubScalar [0][0]=-7.000000 [0][1]=-5.000000 [0][2]=-5.000000 [1][0]=-4.000000 [1][1]=-10.000000 [1][2]=-7.000000 [2][0]=-6.000000 [2][1]=-3.000000 [2][2]=-9.000000
FVCL::Data::CFvMatrix::Mul | ( | const CFvMatrix & | src | ) |
乗算 (行列*行列)
現在の行列と指定された行列を乗算した結果を返します。
現在の行列の内容を更新します。
※ 2つの行列の次元は一致している必要が有ります。
※ 2つの行列が同一のインスタンスの場合も処理可能です。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Mul CFvMatrix.Mul [0][0]=3.000000 [0][1]=2.000000 [0][2]=16.000000 [0][3]=0.000000 [0][4]=0.000000 [1][0]=12.000000 [1][1]=36.000000 [1][2]=-6.000000 [1][3]=0.000000 [1][4]=0.000000 [2][0]=6.000000 [2][1]=6.000000 [2][2]=27.000000 [2][3]=0.000000 [2][4]=0.000000 [3][0]=9.000000 [3][1]=22.000000 [3][2]=8.000000 [3][3]=0.000000 [3][4]=0.000000
FVCL::Data::CFvMatrix::MulScalar | ( | DOUBLE | scalar | ) |
乗算 (行列*スカラー)
現在の行列と指定された値を乗算した結果を返します。
現在の行列の内容を更新します。
[in] | scalar | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::MulScalar CFvMatrix.MulScalar [0][0]=8.000000 [0][1]=24.000000 [0][2]=24.000000 [1][0]=32.000000 [1][1]=-16.000000 [1][2]=8.000000 [2][0]=16.000000 [2][1]=40.000000 [2][2]=-8.000000
FVCL::Data::CFvMatrix::eye | ( | ) |
単位行列の作成
現在の行列の値を単位行列に設定します。
対角成分が 1.0 になり、他の成分は 0.0 になります。
行列は、正方行列でなければなりません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 行列が不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::eye CFvMatrix.eye [0][0]=1.000000 [0][1]=0.000000 [0][2]=0.000000 [1][0]=0.000000 [1][1]=1.000000 [1][2]=0.000000 [2][0]=0.000000 [2][1]=0.000000 [2][2]=1.000000
FVCL::Data::CFvMatrix::ones | ( | ) |
要素が全て1の行列の作成
現在の行列の成分を全て 1.0 に設定します。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 行列が不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::ones CFvMatrix.ones [0][0]=1.000000 [0][1]=1.000000 [0][2]=1.000000 [1][0]=1.000000 [1][1]=1.000000 [1][2]=1.000000 [2][0]=1.000000 [2][1]=1.000000 [2][2]=1.000000
FVCL::Data::CFvMatrix::zeros | ( | ) |
要素が全て0の行列の作成
現在の行列の成分を全て 0.0 に設定します。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 行列が不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::zeros CFvMatrix.zeros [0][0]=0.000000 [0][1]=0.000000 [0][2]=0.000000 [1][0]=0.000000 [1][1]=0.000000 [1][2]=0.000000 [2][0]=0.000000 [2][1]=0.000000 [2][2]=0.000000
FVCL::Data::CFvMatrix::rand | ( | ) |
ランダム行列の作成
入力された行列の成分に全てランダムな値を設定します。
設定される値の範囲は [2^(-53), 1-2^(-53)] です。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが無効です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
FVCL::Data::CFvMatrix::triu | ( | INT | k | ) | const |
上三角成分の抽出
MxN 行列 の上三角部を取り出し、行列オブジェクトに格納して返します。 現在の行列の内容は更新されません。
k は対角位置を指定するパラメータで、k=0 は主対角を示します。 k>0のとき主対角よりも上側の対角を、k<0 のとき主対角成分より下側の対角を示します。 min(M,N)≦|k| と指定した場合、エラーとなります。 対角成分を除く下三角部は 0 が格納されます。
[in] | k | 対角位置 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::triu CFvMatrix.triu [0][0]=0.000000 [0][1]=3.000000 [0][2]=3.000000 [0][3]=9.000000 [1][0]=0.000000 [1][1]=0.000000 [1][2]=1.000000 [1][3]=3.000000 [2][0]=0.000000 [2][1]=0.000000 [2][2]=0.000000 [2][3]=5.000000 [3][0]=0.000000 [3][1]=0.000000 [3][2]=0.000000 [3][3]=0.000000
FVCL::Data::CFvMatrix::tril | ( | INT | k | ) | const |
下三角成分の抽出
MxN 行列 の下三角部を取り出し、行列オブジェクトに格納して返します。 現在の行列の内容は更新されません。
k は対角位置を指定するパラメータで、k=0 は主対角を示します。 k>0のとき主対角よりも上側の対角を、k<0 のとき主対角成分より下側の対角を示します。 min(M,N)≦|k| と指定した場合、エラーとなります。 対角成分を除く上三角部は 0 が格納されます。
[in] | k | 対角位置 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::tril CFvMatrix.tril [0][0]=1.000000 [0][1]=0.000000 [0][2]=0.000000 [0][3]=0.000000 [1][0]=4.000000 [1][1]=-2.000000 [1][2]=0.000000 [1][3]=0.000000 [2][0]=6.100000 [2][1]=-4.000000 [2][2]=8.000000 [2][3]=0.000000 [3][0]=-2.000000 [3][1]=3.000000 [3][2]=-7.000000 [3][3]=3.000000
行列要素の循環シフト
現在の行列の要素を sx, sy で指定された分だけ循環的にシフトした結果を 行列オブジェクトに格納して返します。 現在の行列の内容は更新されません。
sx が正の場合、右方向へシフトし、負の場合、左方向へシフトします。
sy が正の場合、下方向へシフトし、負の場合、上方向へシフトします。
[in] | sx | 列方向循環シフト量 |
[in] | sy | 行方向循環シフト量 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::circshift CFvMatrix.circshift [0][0]=13.000000 [0][1]=1.000000 [0][2]=5.000000 [0][3]=9.000000 [1][0]=14.000000 [1][1]=2.000000 [1][2]=6.000000 [1][3]=10.000000 [2][0]=15.000000 [2][1]=3.000000 [2][2]=7.000000 [2][3]=11.000000 [3][0]=16.000000 [3][1]=4.000000 [3][2]=8.000000 [3][3]=12.000000
FVCL::Data::CFvMatrix::cat_horz | ( | const CFvMatrix & | right | ) | const |
行列要素の水平方向結合
現在の行列と引数に指定された行列を水平方向に結合した行列を行列オブジェクトに格納して返します。 現在の行列の内容は更新されません。
現在の行列 と 指定された行列 right の行数は一致している必要があります。 結合後の行列は、2つの行列と行数は同じで、列数は2つの行列の列数を加算した列数になります。
[in] | right | 右側に結合する行列 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::cat_horz CFvMatrix.cat_horz [0][0]=1.000000 [0][1]=5.000000 [0][2]=3.000000 [0][3]=7.000000 [1][0]=2.000000 [1][1]=6.000000 [1][2]=4.000000 [1][3]=8.000000
FVCL::Data::CFvMatrix::cat_vert | ( | const CFvMatrix & | bottom | ) | const |
行列要素の垂直方向結合
現在の行列と引数に指定された行列を垂直方向に結合した行列を行列オブジェクトに格納して返します。 現在の行列の内容は更新されません。
現在の行列 と 指定された行列 right の列数は一致している必要があります。 結合後の行列は、2つの行列と列数は同じで、行数は2つの行列の行数を加算した行数になります。
[in] | bottom | 下に結合する行列 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::cat_vert CFvMatrix.cat_vert [0][0]=1.000000 [0][1]=5.000000 [1][0]=2.000000 [1][1]=6.000000 [2][0]=3.000000 [2][1]=7.000000 [3][0]=4.000000 [3][1]=8.000000
FVCL::Data::CFvMatrix::flipdim_horz | ( | ) | const |
行列要素の反転 (左右反転)
現在の行列を列方向に左右反転させた行列を行列オブジェクトに格納して返します。 現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::flipdim_horz CFvMatrix.flipdim_horz [0][0]=13.000000 [0][1]=9.000000 [0][2]=5.000000 [0][3]=1.000000 [1][0]=14.000000 [1][1]=10.000000 [1][2]=6.000000 [1][3]=2.000000 [2][0]=15.000000 [2][1]=11.000000 [2][2]=7.000000 [2][3]=3.000000 [3][0]=16.000000 [3][1]=12.000000 [3][2]=8.000000 [3][3]=4.000000
FVCL::Data::CFvMatrix::flipdim_vert | ( | ) | const |
行列要素の反転 (上下反転)
現在の行列を列方向に上下反転させた行列を行列オブジェクトに格納して返します。 現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
User::SampleCode::Data::Matrix::flipdim_vert CFvMatrix.flipdim_vert [0][0]=4.000000 [0][1]=8.000000 [0][2]=12.000000 [0][3]=16.000000 [1][0]=3.000000 [1][1]=7.000000 [1][2]=11.000000 [1][3]=15.000000 [2][0]=2.000000 [2][1]=6.000000 [2][2]=10.000000 [2][3]=14.000000 [3][0]=1.000000 [3][1]=5.000000 [3][2]=9.000000 [3][3]=13.000000
FVCL::Data::CFvMatrix::Inverse | ( | UINT | option = 1 | ) | const |
逆行列の生成
逆行列を求めます。 求められた逆行列は、戻り値で出力されます。
現在の行列の内容は更新されません。
行列は必ず、正方行列でなければなりません。
[in] | option | オプション
|
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Inverse CFvMatrix.Inverse(option=0) [0][0]=-0.034483 [0][1]=0.206897 [0][2]=0.103448 [1][0]=0.068966 [1][1]=-0.080460 [1][2]=0.126437 [2][0]=0.275862 [2][1]=0.011494 [2][2]=-0.160920
User::SampleCode::Data::Matrix::Inverse CFvMatrix.Inverse(option=1) [0][0]=-0.034483 [0][1]=0.206897 [0][2]=0.103448 [1][0]=0.068966 [1][1]=-0.080460 [1][2]=0.126437 [2][0]=0.275862 [2][1]=0.011494 [2][2]=-0.160920
fnFIE_mat_inverse
fnFIE_mat_inverse2
FVCL::Data::CFvMatrix::solve | ( | const CFvVector & | vector | ) | const |
連立一次方程式の計算
ax=b をLU分解を使用して解きます。
a は NxN 行列(正方行列)、b は次元 N でなければなりません。 a, b の次元が不正な場合は例外を発行します。
現在の行列の内容は更新されません。
[in] | vector | 連立一次方程式の右辺 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::solve CFvMatrix.solve [0]=1.965517 [1]=0.735632 [2]=-0.390805
FVCL::Data::CFvMatrix::transpose | ( | ) | const |
行列の転置
現在の行列の転置行列を返します。 現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::transpose CFvMatrix.transpose [0][0]=1.000000 [0][1]=2.000000 [1][0]=5.000000 [1][1]=6.000000 [2][0]=9.000000 [2][1]=10.000000 [3][0]=13.000000 [3][1]=14.000000
FVCL::Data::CFvMatrix::trace | ( | ) | const |
行列のトレースの計算
現在の行列(正方行列)のトレース(対角成分の和)を計算します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::trace CFvMatrix.trace result = 34.000000
FVCL::Data::CFvMatrix::max_elem | ( | ) | const |
成分の最大値抽出
現在の行列の成分のうち、最大の値を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::max_elem CFvMatrix.max_elem max_elem : 2.200000
FVCL::Data::CFvMatrix::min_elem | ( | ) | const |
成分の最小値抽出
現在の行列の成分のうち、最小の値を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::min_elem CFvMatrix.min_elem min_elem : -2.300000
FVCL::Data::CFvMatrix::asin | ( | ) | const |
各成分の asin の計算
現在の行列の各成分に対して asin を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::asin CFvMatrix.asin [0][0]=0.523599 [0][1]=0.523599 [0][2]=0.523599 [1][0]=0.785389 [1][1]=0.785389 [1][2]=0.785389 [2][0]=1.047147 [2][1]=1.047147 [2][2]=1.047147
FVCL::Data::CFvMatrix::acos | ( | ) | const |
各成分の acos の計算
現在の行列の各成分に対して acos を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::acos CFvMatrix.acos [0][0]=0.523650 [0][1]=0.523650 [0][2]=0.523650 [1][0]=0.785408 [1][1]=0.785408 [1][2]=0.785408 [2][0]=1.047198 [2][1]=1.047198 [2][2]=1.047198
FVCL::Data::CFvMatrix::atan | ( | ) | const |
各成分の atan の計算
現在の行列の各成分に対して atan を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::atan CFvMatrix.atan [0][0]=0.523636 [0][1]=0.523636 [0][2]=0.523636 [1][0]=0.785398 [1][1]=0.785398 [1][2]=0.785398 [2][0]=1.047210 [2][1]=1.047210 [2][2]=1.047210
FVCL::Data::CFvMatrix::atan2 | ( | const CFvMatrix & | ax | ) | const |
各成分の atan2 の計算
現在の行列と指定された行列の各成分に対して atan2 を計算した結果を返します。
現在の行列の内容は更新されません。
※ 現在の行列を y 成分、指定された行列を x 成分として扱います。 ※ 2つの行列の次元は等しくなければなりません。
[in] | ax | 入力行列 (x 成分) |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::atan2 CFvMatrix.atan2 [0][0]=0.523611 [0][1]=0.523611 [0][2]=0.523611 [1][0]=0.785398 [1][1]=0.785398 [1][2]=0.785398 [2][0]=1.047185 [2][1]=1.047185 [2][2]=1.047185
FVCL::Data::CFvMatrix::cos | ( | ) | const |
各成分の cos の計算
現在の行列の各成分に対して cos を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::cos CFvMatrix.cos [0][0]=0.866025 [0][1]=0.866025 [0][2]=0.866025 [1][0]=0.707107 [1][1]=0.707107 [1][2]=0.707107 [2][0]=0.500000 [2][1]=0.500000 [2][2]=0.500000
FVCL::Data::CFvMatrix::sin | ( | ) | const |
各成分の sin の計算
現在の行列の各成分に対して sin を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::sin CFvMatrix.sin [0][0]=0.500000 [0][1]=0.500000 [0][2]=0.500000 [1][0]=0.707107 [1][1]=0.707107 [1][2]=0.707107 [2][0]=0.866025 [2][1]=0.866025 [2][2]=0.866025
FVCL::Data::CFvMatrix::tan | ( | ) | const |
各成分の tan の計算
現在の行列の各成分に対して tan を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::tan CFvMatrix.tan [0][0]=0.577350 [0][1]=0.577350 [0][2]=0.577350 [1][0]=1.000000 [1][1]=1.000000 [1][2]=1.000000 [2][0]=1.732051 [2][1]=1.732051 [2][2]=1.732051
FVCL::Data::CFvMatrix::exp | ( | ) | const |
各成分の exp の計算
現在の行列の各成分に対して exp を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::exp CFvMatrix.exp [0][0]=0.904837 [0][1]=1.221403 [0][2]=0.740818 [1][0]=3.004166 [1][1]=0.301194 [1][2]=3.669297 [2][0]=0.122456 [2][1]=9.025013 [2][2]=0.100259
FVCL::Data::CFvMatrix::log | ( | ) | const |
各成分の log の計算
現在の行列の各成分に対して log を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::log CFvMatrix.log [0][0]=1.386294 [0][1]=2.772589 [0][2]=4.158883 [1][0]=0.693147 [1][1]=1.098612 [1][2]=1.386294 [2][0]=2.197225 [2][1]=3.583519 [2][2]=4.969813
FVCL::Data::CFvMatrix::sqrt | ( | ) | const |
各成分の sqrt の計算
現在の行列の各成分に対して sqrt を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::sqrt CFvMatrix.sqrt [0][0]=2.000000 [0][1]=4.000000 [0][2]=8.000000 [1][0]=1.414214 [1][1]=1.732051 [1][2]=2.000000 [2][0]=3.000000 [2][1]=6.000000 [2][2]=12.000000
FVCL::Data::CFvMatrix::abs | ( | ) | const |
各成分の abs の計算
現在の行列の各成分に対して abs を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::abs CFvMatrix.abs [0][0]=0.100000 [0][1]=0.200000 [0][2]=0.300000 [1][0]=1.100000 [1][1]=1.200000 [1][2]=1.300000 [2][0]=2.100000 [2][1]=2.200000 [2][2]=2.300000
FVCL::Data::CFvMatrix::ceil | ( | ) | const |
各成分の ceil の計算
現在の行列の各成分に対して ceil を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::ceil CFvMatrix.ceil [0][0]=-0.000000 [0][1]=1.000000 [0][2]=-0.000000 [1][0]=2.000000 [1][1]=-1.000000 [1][2]=2.000000 [2][0]=-2.000000 [2][1]=3.000000 [2][2]=-2.000000
FVCL::Data::CFvMatrix::floor | ( | ) | const |
各成分の floor の計算
現在の行列の各成分に対して floor を計算した結果を返します。
現在の行列の内容は更新されません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::floor CFvMatrix.floor [0][0]=-1.000000 [0][1]=0.000000 [0][2]=-1.000000 [1][0]=1.000000 [1][1]=-2.000000 [1][2]=1.000000 [2][0]=-3.000000 [2][1]=2.000000 [2][2]=-3.000000
FVCL::Data::CFvMatrix::mul_elem | ( | const CFvMatrix & | src | ) | const |
成分ごとの乗算 (行列*行列)
現在の行列と指定された行列の各成分について乗算した結果を返します。
現在の行列の内容は更新されません。
※ 2つの行列の次元は等しくなければなりません。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::mul_elem CFvMatrix.mul_elem [0][0]=0.010000 [0][1]=0.040000 [0][2]=0.090000 [1][0]=1.210000 [1][1]=1.440000 [1][2]=1.690000 [2][0]=4.410000 [2][1]=4.840000 [2][2]=5.290000
FVCL::Data::CFvMatrix::div_elem | ( | const CFvMatrix & | src | ) | const |
成分ごとの除算 (行列/行列)
現在の行列と指定された行列の各成分について除算した結果を返します。
現在の行列の内容は更新されません。
※ 2つの行列の次元は等しくなければなりません。
[in] | src | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::div_elem CFvMatrix.div_elem [0][0]=0.200000 [0][1]=1.000000 [0][2]=0.600000 [1][0]=2.200000 [1][1]=6.000000 [1][2]=2.600000 [2][0]=4.200000 [2][1]=11.000000 [2][2]=4.600000
各成分の modf の計算
現在の行列の各成分に対して modf を計算し、 整数部を dsti に 小数部を dstf に格納して返します。
現在の行列と dsti と dstf の次元が等しくなければ内部で再確保します。 dsti と dstf はどちらか一方を省略することが可能です。 省略する場合は NULL を指定してください。 両方に NULL を指定した場合は例外を発行します。
[out] | dsti | 出力行列 (整数成分) |
[out] | dstf | 出力行列 (小数成分) |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::modf CFvMatrix.modf dsti[0][0]=-0.000000 dsti[0][1]=0.000000 dsti[0][2]=-0.000000 dsti[1][0]=1.000000 dsti[1][1]=-1.000000 dsti[1][2]=1.000000 dsti[2][0]=-2.000000 dsti[2][1]=2.000000 dsti[2][2]=-2.000000 dstf[0][0]=-0.100000 dstf[0][1]=0.200000 dstf[0][2]=-0.300000 dstf[1][0]=0.100000 dstf[1][1]=-0.200000 dstf[1][2]=0.300000 dstf[2][0]=-0.100000 dstf[2][1]=0.200000 dstf[2][2]=-0.300000
FVCL::Data::CFvMatrix::has_nan | ( | ) | const |
NaN 値を含んでいるか否かの判定
true | NaN を含んでいる。 |
false | NaN を一つも含んでいない。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
FVCL::Data::CFvMatrix::is_nan | ( | ) | const |
全ての要素が NaN 値か否かの判定
true | 全ての要素が NaN である。 |
false | NaN でない要素を含んでいる。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
FVCL::Data::CFvMatrix::is_normal | ( | ) | const |
非数値判定
true | 非数値を含んでいる。 |
false | 非数値を一つも含んでいない。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
FVCL::Data::CFvMatrix::det | ( | ) | const |
行列式の計算
現在の行列(NxN 行列 a)の行列式 (det(a)) を計算します。
現在の行列は正方行列で無ければいけません。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::norm | ( | INT | type | ) | const |
行列のノルムの計算
現在の行列のノルムを計算します。
[in] | type | 求めるノルムの種類
|
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::rank | ( | DOUBLE | tol | ) | const |
行列のランクの計算
現在の行列のランクを計算します。
[in] | tol | 0 と見なす閾値 0 未満の値が指定されたときは内部計算した値を使用します。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::cond | ( | INT | type | ) | const |
行列の条件数計算
現在の行列の条件数を計算します。
type != 2 のとき、現在の行列は正方行列でなければいけません。
[in] | type | 求める条件数の種類
|
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::rcond | ( | ) | const |
行列の条件数の逆数計算
LAPACK の条件判定ルーチンを使用して現在の行列(正方行列)の1ノルム条件数の逆数を計算します。
行列の条件が良い場合 rcond は 1.0 に近くなり、条件が悪い場合には rcond は 0.0 に近くなります。
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
行列のコレスキー分解
現在の行列(対称正定値行列)のコレスキー分解を行います。
[out] | a | 分解後の行列 ※必要に応じて内部で再確保されます。 |
[in] | mode | モード
|
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
行列の LU 分解
現在の行列(MxN 行列)を行交換による部分軸選択を用いて LU 分解します。
[out] | a | 分解後の行列 ※必要に応じて内部で再確保されます。 |
[out] | pivot | 軸選択用添字配列。(要素数 min(M,N)) ※必要に応じて内部で再確保されます。 ※0≦i<min(M,N) に対して、行i は 行pivot[i] と交換されています。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
行列の QR 分解
現在の行列(MxN 行列)の QR 分解を行います。
行列のサイズ(M,N)が同じ場合は、q または r に自信のインスタンスを指定することができます。
[out] | q | MxM の直交行列 Q ※必要に応じて内部で再確保されます。 |
[out] | r | NxN の三角行列 R ※必要に応じて内部で再確保されます。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
行列の特異値分解
現在の行列(MxN 行列)の特異値分解を行います。
u または vt に自信のインスタンスを指定することができます。
※注) 出力の行列を省略する場合は u, vt の両方に NULL を指定してください。
[out] | u | MxN の直行行列。 ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
[out] | vt | MxN の直行行列。 ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
[out] | sigma | 昇順にソートされた特異値配列。(要素数 min(M,N)) ※必要に応じて内部で再確保されます。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::svd2 | ( | CFvMatrix * | u, |
CFvMatrix * | vt, | ||
CFvBuffer< DOUBLE > * | sigma, | ||
INT | mode, | ||
DOUBLE | rcond, | ||
INT * | rank | ||
) | const |
行列の特異値分解 (convenience function)
現在の行列(MxN 行列)の特異値分解を行います。
[out] | u | MxN の直行行列。 ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
[out] | vt | MxN の直行行列。 ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
[out] | sigma | 昇順にソートされた特異値配列。 ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
[in] | mode | 演算モード
|
[in] | rcond | ランク計算時の閾値設定。 ランク計算時に 特異値 sigma[i] ≦ rcond*sigma[0] の値をゼロと見なします。 rcond<0.0 の値が指定されたときは、max(sigma) * eps の値を使用します。 rank に NULL が指定された場合は本パラメータは使用されません。 |
[in] | rank | ランクの値。 ※不要な場合は NULL を指定してください。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::eig | ( | CFvBuffer< FCOMPLEX > * | lambda, |
CFvBuffer< FCOMPLEX > * | vr, | ||
CFvBuffer< FCOMPLEX > * | vl | ||
) | const |
行列の固有値・固有ベクトル計算
現在の行列(NxN 正方行列)の固有値を計算します。
また、選択された場合、左及び右固有ベクトルも計算します。
[out] | lambda | 固有値配列。(要素数 N) ※必要に応じて内部で再確保されます。 |
[out] | vr | 右固有ベクトル。(要素数 N*N) ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
[out] | vl | 左固有ベクトル。(要素数 N*N) ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
行列の逆行列計算(LAPACK使用)
現在の行列(NxN 正方行列)の逆行列を計算します。
ai に自信のインスタンスを指定することができます。
[out] | ai | 逆行列 (NxN) ※必要に応じて内部で再確保されます。 |
[out] | det | 行列式 ※不要な場合は NULL を指定してください。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
行列の擬似逆行列計算(LAPACK使用)
現在の行列(MxN行列)の擬似逆行列を計算します。
[out] | ai | 逆行列 (NxN) ※必要に応じて内部で再確保されます。 |
[in] | threshold | 擬似行列計算する際の特異値の閾値 |
[out] | rank | ランク ※不要な場合は NULL を指定してください。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::linsolve | ( | INT | method, |
DOUBLE | rcond, | ||
const CFvVector & | b, | ||
CFvVector * | x, | ||
DOUBLE * | residual, | ||
INT * | rank | ||
) | const |
連立一次方程式の計算
過剰、または過小定義の連立一次方程式 Ax = b を解きます。
※ A は、現在の行列(MxN 係数行列)を示します。
[in] | method | 解法
|
[in] | rcond | ゼロ判定閾値 ※method が 1 の時のみ使用します。 |
[in] | b | 右辺ベクトル (M 次元) |
[out] | x | 解ベクトル (N 次元) ※必要に応じて内部で再確保されます。 |
[out] | residual | 誤差二乗和 ※行列 A のサイズが 行≦列 の場合、本パラメータは使用されません。 ※不要な場合は NULL を指定してください。 |
[out] | rank | ランク ※不要な場合は NULL を指定してください。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
FVCL::Data::CFvMatrix::linsolve2 | ( | INT | method, |
DOUBLE | rcond, | ||
const CFvMatrix & | b, | ||
CFvMatrix * | x, | ||
CFvBuffer< DOUBLE > * | residuals, | ||
INT * | rank | ||
) | const |
連立一次方程式の計算
過剰、または過小定義の連立一次方程式 Ax = b を解きます。
※ A は、現在の行列(MxN 係数行列)を示します。
[in] | method | 解法
|
[in] | rcond | ゼロ判定閾値 ※method が 1 の時のみ使用します。 |
[in] | b | MxN RHS 右辺行列 |
[out] | x | NxN RHS 解行列 ※必要に応じて内部で再確保されます。 |
[out] | residuals | 誤差二乗和 (要素数 N) ※必要に応じて内部で再確保されます。 ※不要な場合は NULL を指定してください。 |
[out] | rank | ランク ※不要な場合は NULL を指定してください。 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode メソッドからエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータが不正です。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
乗算オペレータ(行列*ベクトル)
左辺値(行列)と右辺値(ベクトル)を乗算した結果を返します。
左辺値(行列)の列数と右辺値(ベクトル)の次元が一致している必要があります。
[in] | matrix | 左辺値 |
[in] | vector | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Multiply_mv CFvMatrix.Multiply(matrix * vector) [0]=49.000000 [1]=10.000000 [2]=44.000000
乗算オペレータ(ベクトル*行列)
左辺値(ベクトル)と右辺値(行列)を乗算した結果を返します。
左辺値(ベクトル)の次元と右辺値(行列)の行数が一致している必要があります。
[in] | vector | 左辺値 |
[in] | matrix | 右辺値 |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Multiply_vm CFvMatrix.Multiply(vector * matrix) [0]=43.000000 [1]=37.000000 [2]=7.000000 [3]=20.000000
除算オペレータ(行列/スカラー)
左辺値(行列)の各要素を右辺値(スカラー)で除算した結果を返します。
[in] | matrix | 左辺値(行列) |
[in] | scalar | 右辺値(スカラー) |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Division_ms CFvMatrix.Division(matrix/scalar) [0][0]=0.125000 [0][1]=0.375000 [0][2]=0.375000 [1][0]=0.500000 [1][1]=-0.250000 [1][2]=0.125000 [2][0]=0.250000 [2][1]=0.625000 [2][2]=-0.125000
除算オペレータ(スカラー/行列)
左辺値(スカラー)を右辺値(行列)の各要素で除算した結果を返します。
[in] | scalar | 左辺値(スカラー) |
[in] | matrix | 右辺値(行列) |
FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
値 | 定数 | 内容 |
51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスがありません。 |
1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
12 | FVCL_ErrorCode::INVALID_OBJECT | メモリが確保されていません。 |
29 | FVCL_ErrorCode::NOT_CALCULABLE | 計算できません。 |
User::SampleCode::Data::Matrix::Division_sm CFvMatrix.Division(scalar/matrix) [0][0]=8.000000 [0][1]=2.666667 [0][2]=2.666667 [1][0]=2.000000 [1][1]=-4.000000 [1][2]=8.000000 [2][0]=4.000000 [2][1]=1.600000 [2][2]=-8.000000