What's new! 



ライセンス改定のお知らせ(2015年12月)

Mol が使用している数値計算ライブラリーインテル® MKL無償で入手可能になりました。 これに合わせてライセンス(価格)等を改訂しました。

  • MKL の再配布可能モジュールの提供を終了しました。
  • Mol のスタティックリンク版 Dll の提供を終了しました。同時に限定ライセンスを廃止しました。
  • Mol/Dsl をまとめて一つのライセンスで提供いたします。
  • 旧ライセンスも含めて一つののライセンスで Mol と Dsl を利用できます。
  • ライセンスは個人ライセンスと商用ライセンスの2種類となりました。
MKL の入手方法等はこちら


 Mol (Math Object Library) for .Net

✓ .Net 上で C# 等による数値計算を強力にサポートするクラスライブラリー

各計算はCPUに最適化されたインテル® MKLを直接利用することでマルチコア、マルチスレッド、巨大データに対応した圧倒的高速性能を実現しています。

✓詳細とダウンロード
✓プログラム例(C#)と解説

 Mol による線形連立方程式解法例

 // 計算例:密な一般行列で A*X = B を解く
 int n = 2000; // 行列のサイズ = 2000 x 2000
 // 定数行列
 MatrixDenseGeneralDouble B = new MatrixDenseGeneralDouble(n, 10);   
 for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= 10; ++j) B[i, j] = 1.0;
 }
 // 係数行列
 MatrixDenseGeneralDouble A = new MatrixDenseGeneralDouble(n, n);
 for (int i = 1; i <= n; ++i) {
    A[i, i] = 2;
    if (i > 1) A[i - 1, i] = -1;
    if (i < n) A[i, i + 1] = -1;
 }
 DateTime time = DateTime.Now;
 LuSolver lu = LuSolver.Create(A);          // 行列 A を因子分解する。
 MatrixDenseGeneralDouble X = lu.Solve(B);  // A*X = B を解く
 Console.WriteLine("計算時間 = " + (DateTime.Now - time));
 MatrixDenseGeneralDouble D = A * X - B;
 Console.WriteLine("Norm =" + D.NormE());   // A * X - B を確認
※一般行列以外は計算時間・メモリ使用量を最小にするため複雑・特殊な内部構造を持っています(が使用方法は同じです)。

 Dsl (Digital Simulation Library) for .Net

✓ .Net 対応の汎用数値シミュレーション・クラスライブラリー
  • 変数相互の計算式定義・目的変数値等を指定 ==> 自動的に連立方程式・計算順序などを構築
  • 値を知りたい変数指定 ==> 不必要な変数・計算式を除外
  • 連立常微分方程式 ==> 動的シミュレーション
  • 常微分方程式の微係数をゼロ指定 ==> 連立方程式を構築して「定常状態」を直接計算
  • 計算結果の折れ線グラフ描画

✓詳細とダウンロード
✓プログラム例(C#)と解説



 動作・開発環境・インストール

[開発環境]
 Mol、Dsl の利用環境
  • Microsoft .Net Framework ® version 4.0 以上が動作するコンピューター環境(Microsoftの WEB サイト、詳細・ダウンロード)。
  • プログラム開発環境
    Visual Studio
  • ソルバー以外の Dll を使用する場合、上記開発環境で「参照設定」してください(付属の例題を参考にしてください)。
[ソルバー]
 ソルバーとは Mol、Dsl 共通 DLL(Mol.C++.dll)
 ソルバーは MKL を呼び出す非 .Net アプリケーションで以下の区別があります。※1

ソルバー説明 
32 bit ダイナミックリンク版('Mol.C++D32.dll') MKLをダイナミックリンクした 32 ビットバージョン
64 bit ダイナミックリンク版('Mol.C++D64.dll') MKLをダイナミックリンクした 64 ビットバージョン※2
(64 ビット OS でのみ稼働)
前記 Mol の連立方程式解法例実行結果:
   計算時間 = 00:00:00.1248003
※Intel CORE i7-2600S 2.8GHz 8GBメモリ
※本例はマルチスレッドに適した例
  • ※1) 32ビット、64ビット環境に応じてどちらかが Mol.C++.dll という名前でコピーされます(手動でコピーしてもかまいません)。
  • ※2) 64ビット版は、int型が32ビットで、long型とポインタが64ビット幅の LP64 データモデルです。 int型も64ビット幅になる ILP64 データモデルはサポートしていません。

[インストール]
 Mol、Dsl にインストーラーは付属しません。
 (✓Let's 'C# で数値計算' 参照)

  • 付属の DLL を、お客さまの開発環境に応じたアプリケーションと同じフォルダにコピーしてください。
  • 複数あるソルバーのうち意図する一つを Mol.C++.Dll という名前でコピーしてください。
    全ソルバーをそのままコピーした場合、実行環境に応じたソルバーが自動選択されます。
  • Visual Studio で編集時の詳細なツールヒントを表示したい場合、同梱の XML ファイル(Mol.Net.XML等)をプロジェクトに追加してください(実行時には必要ありません)。
  • インストールプログラムは付属しませんので、アンインストールは手動で削除してください。
  • お客さまがインストールプログラムを作成する場合は、インストールプログラムの仕様に従って適切にインストール/アンインストールされるようにご確認ください。


 ライセンスと価格

Mol、Dsl はクラスライブラリー(DLL)です。ダウンロードした評価版を正式版として利用するには以下のライセンスを購入・設定する必要があります。

※ライセンスは Mol/Dsl 共通です。  
ライセンス名称説明  価格(税込)
個人ライセンス 非営利目的・個人利用に限定。開発した Dsl・Mol を使用するソフトウェアを第三者に販売・譲渡・配布・貸与することはできません。   5,000円
商用ライセンス 開発したソフトウェアと Dsl と Mol 付属 DLLを第三者に販売・譲渡・配布することができます。   100,000円

  • ライセンスの種類に関わらず、開発に従事するプログラマーと使用できるコンピュータは1ライセンスにつき一人、または1台です。
  • ライセンスに関わらず Dsl・Mol のモジュールのみを第三者に販売・譲渡・配布することはできません。
  • ライセンスは無期限に有効です。
※ライセンスが設定されてない、または誤ったライセンスキーを設定した場合は評価版とみなされます。
※Dsl、Mol、そして MKL の DLL 等を第三者に「配布」するには、それぞれの「配布可能ライセンス」を保有していることが必要です。

※重要※
必ずソフトウェア使用許諾契約書をお読みください。


 ご購入方法

ご購入の手順は次のようになります。
  1. ダウンロード & 試用:
    • 解く問題のサイズ等に制限はありません(評価版であるメッセージが表示されます)。
    • この時点で、お客様の目的に合致するかご判断願います。
    • 疑問・質問等は「お問い合わせフォーム」でお受けします。

  2. ご購入:

    1) 銀行振り込みで、手順は以下の通りになります。

    • まず、こちらから以下の情報をお知らせください。
      • ご連絡(返信)用のメールアドレス
      • お名前、製品名、ご購入ライセンス種別等の基本情報
    • お知らせいただいたメールアドレスに振込先の銀行名・口座番号等を返信いたします。
    • 以後のライセンスキー等もお知らせいただいたメールアドレスに送信いたします。
    • 代金振り込みとライセンスキー受領:
      ・入金確認・正式ユーザーとして登録後にライセンスキーをご連絡(メール送信)いたします。
      ・振り込み時には、お客様を特定できる情報を付記してください。
      ・代金振り込み前に必ずソフトウェア使用許諾契約書をお読みください。
      ・お客様は代金振り込みをもって「ソフトウェア使用許諾契約書」に同意したものとみなします。
  • ※一部の(特定の国やブラックリストに記載された)メールサーバーはスパマーとして通信が拒否される場合があります。 受信拒否の場合、エラー内容をお知らせください(可能な場合、解除します)。
  • ※hotmailやgmail等のいわゆる「使い捨てアドレス」は SPAM 対策上なるべく避けてください。