Mol(Math Object Library) fot .Net
The _Mol type exposes the following members.
コンストラクター
名前 | 説明 | |
---|---|---|
_Mol |
デフォルトのコンストラクター
|
メソッド
名前 | 説明 | |
---|---|---|
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 は評価版とみなされ
機能の幾つかが制限されます。
|
フィールド
名前 | 説明 | |
---|---|---|
Tag |
ユーザが自由に設定・使用できるオブジェクトです。
Mol が内部で参照することはありません。
|
プロパティ
名前 | 説明 | |
---|---|---|
EPS |
double の等値性を判定する(デフォルトの)定数。初期値は 1.0e-13 です。
| |
IndexBase |
ベクトルやマトリクスの要素にアクセスする場合のインデックス基底です。
デフォルトは INDEX_BASE.ONE ですので、たとえばマトリクスを m とすると m[1,1] が配列の先頭(開始)位置(FORTRAN形式)となります(m[0,0] や m[0,1] はエラーになります)。
| |
MolHandle |
Mol.C++.dll(ネイティブDLL)と Mol.Net.Dll(.Net 用マネージドDLL)間の情報を管理するハンドル。
NativeDll クラスでユーザ作成のネイティブDLLを作成する場合等に利用できます。
| |
MolType |
Molオブジェクトの属性(_Mol..::..MOL_TYPE)。
| |
Serial | SetLicense(String, String, String)で指定されたシリアルコードです。"
| |
User | SetLicense(String, String, String)で指定された第一引数でライセンス購入者の名前です。"
| |
UserType |
Molオブジェクトの追加属性(_Mol..::..USER_TYPE)。
例えば一般行列でも要素が対称なら、その属性を積極的にセットすることでソルバーは最適な手法を選択することができます。
当然ながら、間違った設定は間違った値や計算不能な状態に陥りますので注意して設定してください。
| |
Version |
Mol のバージョン番号配列。
配列の先頭要素がメジャーバージョン、次がマイナーバージョン、さらにリビジョン番号やリリース番号と続きます。
メジャーバージョンやマイナーバージョンが同じなら基本的に互換性があります。その他の場合はリリースの内容に依存するものとします。
|