Mol(Math Object Library) fot .Net
The _Mol type exposes the following members.
メソッド
名前 | 説明 | |
---|---|---|
CheckSolver |
インテル Mkl は CPU に最適化されたネイティブ形式のライブラリーです。従って32ビットと64ビットの区別があります。
Mkl を組み込んだ Dll も Mol.C++32.Dll/Mol.C++D32.Dll と Mol.C++64.Dll/Mol.C++D64.Dll の4種類があります(そのうちの一つを Mol.C++.Dll として利用します)。
一方、その他の各 Dll は .Net 特融の中間言語(MSIL)形式で32ビットと64ビット共通になっています(AnyCPU形式でコンパイルされています)。
本メソッドはアプリケーション(Molを使用する EXE プログラム)が動作している環境を調べ、必要ならMol.C++32.Dll/Mol.C++D32.Dll と Mol.C++64.Dll/Mol.C++D64.Dll のどちらかを Mol.C++.Dll としてコピーします。
(実行時には32ビットと64ビット環境ともに Mol.C++.Dll をアクセスします。)
本メソッドはSetLicense(String, String, String)メソッドが呼び出すので特に気にする必要はありません。
※環境に従って予め最適な DLL を手動で Mol.C++.Dll にコピーしておいて、その他の不必要な DLL を省略することも可能です。 | |
Dialog |
Mol のバージョン情報や動作環境を表示します。
| |
Dispose |
インターフェース IDispose の実装(実際は Matrix や Vector で実装します)。
C++ Dll に割り当てられたメモリー資源を解放します。
メモリー資源は当然ながらガベージコレクションによって解放されますが、いつ解法されるかはわかりません。
以後、完全に使用しないと判明したオブジェクトは Dispose() を呼び出して積極的に資源を解法することをお勧めします。
| |
EnableLicense |
設定されているライセンスを一時的に無効(enable==false)、または無効になっていたライセンスを有効(enable==false)にします。
| |
EQ(Double, Double) |
二つの double 値 a、b がほとんど同じかどうかを判定します。
判定は (|a-b|/(|a|+|b|)) <= EPS (EPS)なら true を返します。
| |
EQ(Complex, Double) |
Complex 値 a、と double 値 b がほとんど同じかどうかを判定します。
判定は a の虚数部がゼロ(|a.Imaginary| <= EPS)で、かつ、実数部が (|a.Real-b|/(|a.Real|+|b|)) <= EPS (EPS)なら true を返します。
| |
EQ(Complex, Complex) |
二つの Complex 値 a、b がほとんど同じかどうかを判定します。
判定は、それぞれの実数部と虚数部が (|a-b|/(|a|+|b|)) <= EPS (EPS)なら true を返します。
| |
EQ(_Matrix, _Matrix) |
二つの行列 a、b の全要素の値がほとんど同じかどうかを判定します。
判定は a と b の全ての要素に対して(|a-b|/(|a|+|b|)) <= EPS (EPS)なら true を返します。
疎な行列の未登録要素はゼロもみなされるので、密な行列と疎な行列の比較も可能です(片方に要素が存在しても「値がゼロなら一致」と判定されます)。
また、要素が複素数と実数の比較も可能です。複素数の虚数部がゼロで実数部分の値が同じならば一致と判定されます。
| |
EQ(_Vector, _Vector) |
二つの Vector a、b の全要素の値がほとんど同じかどうかを判定します。
判定は a と b の全ての要素に対して(|a-b|/(|a|+|b|)) <= EPS (EPS)なら true を返します。
疎なベクトルの未登録要素はゼロもみなされるので、密なベクトルと疎なベクトルの比較も可能です(片方に要素が存在しても「値がゼロなら一致」と判定されます)。
また、要素が複素数と実数の比較も可能です。複素数の虚数部がゼロで実数部分の値が同じならば一致と判定されます。
| |
EQ(Double, Double, Double) |
二つの double 値 a、b がほとんど同じかどうかを判定します。
判定は (|a-b|/(|a|+|b|)) <= eps なら true を返します。
| |
EQ(Complex, Double, Double) |
Complex 値 a、と double 値 b がほとんど同じかどうかを判定します。
判定は a の虚数部がゼロ(|a.Imaginary| <= eps)で、かつ、実数部が (|a.Real-b|/(|a.Real|+|b|)) <= eps なら true を返します。
| |
EQ(Complex, Complex, Double) |
二つの Complex 値 a、b がほとんど同じかどうかを判定します。
判定は、それぞれの実数部と虚数部が (|a-b|/(|a|+|b|)) <= eps なら true を返します。
| |
EQ(_Matrix, _Matrix, Double) |
二つの行列 a、b の全要素の値がほとんど同じかどうかを判定します。
判定は a と b の全ての要素に対して(|a-b|/(|a|+|b|)) <= eps なら true を返します。
疎な行列の未登録要素はゼロもみなされるので、密な行列と疎な行列の比較も可能です(片方に要素が存在しても「値がゼロなら一致」と判定されます)。
また、要素が複素数と実数の比較も可能です。複素数の虚数部がゼロで実数部分の値が同じならば一致と判定されます。
| |
EQ(_Vector, _Vector, Double) |
二つの Vector a、b の全要素の値がほとんど同じかどうかを判定します。
判定は a と b の全ての要素に対して(|a-b|/(|a|+|b|)) <= eps なら true を返します。
疎なベクトルの未登録要素はゼロもみなされるので、密なベクトルと疎なベクトルの比較も可能です(片方に要素が存在しても「値がゼロなら一致」と判定されます)。
また、要素が複素数と実数の比較も可能です。複素数の虚数部がゼロで実数部分の値が同じならば一致と判定されます。
| |
GetMolSolverVersion |
Mol.C++.dll のバージョンと対応プラットフォームを記述した文字列を取得します。
| |
GetVersionString |
Mol と MKL の詳細バージョン情報文字列を返します。先頭から '#' までは Mol のバージョン番号。
'/' の前まではソルバーのバージョン、ビルド情報、さらに参照 MKL バージョン。'/' の後ろは実際にリンクされた MKL のバージョン情報です。
| |
SetLicense |
Mol にライセンス情報をセットします。
できるだけプログラム開始時、直ちに(Mol オブジェクトのインスタンスを作成する前)に呼び出すようにしてください。
ライセンス購入時に呼び出しの記述例が返信されますので、その通りに記述してください。
(記述例は第三者が閲覧できないように保管してください。)
本メソッドを実行前に呼び出さない場合や、引数が間違っている場合、Mol は評価版とみなされ
機能の幾つかが制限されます。
|