バージョン8以前
メインパッケージ
メインパッケージ「Extreme.Numerics」は全てのNumerics.NETを使用するアプリケーションで必要となるパッケージです。
メインのライブラリは倍精度の実数と複素数の計算のみ扱います。
単精度の数値を扱うクラスは別パッケージ「Extreme.Numerics.SinglePrecision」に含まれています。
4倍精度や任意精度の数値など、任意の数値型を扱うにはパッケージ「Extreme.Numerics.Generic」が必要です。
バージョン8 パッケージ名 |
内容 |
リンク |
Extreme.Numerics |
メインパッケージ |
|
Extreme.Numerics.SinglePrecision |
単精度線形代数とFFT |
|
Extreme.Numerics.Generic |
一般線形代数 |
|
データ接続ライブラリ
ファイルからオブジェクトを読み込む、またはファイルへオブジェクトを保存するためのクラスはパッケージ「Extreme.Data」と「Extreme.Data.Json」に含まれています。
後者のパッケージにはJSONでのシリアライズに使用され、Newtonsoft.Jsonに依存します。
バージョン8 パッケージ名 |
内容 |
リンク |
Extreme.Data |
テキストファイル(CSVを含む)、R、Stata、Matlab... |
|
Extreme.Data.Json |
JSONシリアル化 |
|
ネイティブライブラリ
パフォーマンスを向上させるために、インテル® マス・カーネル・ライブラリー(Intel® Math Kernel Library)をベースに最適化されたネイティブ線形代数およびFFTライブラリーを使用することができます。
これらは、相互運用の方法によって、ネイティブ相互運用とP/Invokeの2種類があります。
単精度と倍精度でパッケージが分かれています。どちらのパッケージにもx86とx64のライブラリが含まれています。
混合モードアセンブリ(Windowsのみ)
Windowsの.NET 5.0、.NET Core 3.1、.NET Framework 4.0+では混合モードアセンブリが優先されます。
これらのアセンブリはC++/CLIを使用して作成されており、ネイティブな相互運用を使用してネイティブコードに呼び出します。
これにより最小限のオーバーヘッドでネイティブコードを呼び出すことができます。
残念ながら、このオプションは古い.NET CoreやLinuxなどの混合モードアセンブリをサポートしない環境では使用できません。
対象のフレームワーク(.NET 5.0、.NET Core 3.1、.NET Framework 4.0+)毎にパッケージが異なります。
また、インテル® マス・カーネル・ライブラリーの並列スレッディング・ライブラリーと逐次スレッディング・ライブラリーを使用するバージョンもあります。並列バージョンはOpenMPを使用して計算を並列化します。逐次バージョンはそうではなく、複数のスレッドから安全に呼び出すことができます。
バージョン8 パッケージ名 |
内容 |
リンク |
Extreme.Numerics.Mkl.net5.0 |
混合モードMKLプロバイダ .NET 5.0以降用 |
|
Extreme.Numerics.Mkl.netcoreapp3.1 |
混合モードMKLプロバイダ .NET Core 3.1用 |
|
Extreme.Numerics.Mkl.net40 |
混合モードMKLプロバイダ .NET Framework 4.0以降用 |
|
Extreme.Numerics.Mkl.net40.SinglePrecision (古いバージョン) |
単精度混合モードMKLプロバイダ .NET Framework 4.0以降用 |
|
Extreme.Numerics.Mkl.net35 (古いバージョン) |
単精度混合モードMKLプロバイダ .NET Framework 3.5用 |
|
Extreme.Numerics.Mkl.net35.SinglePrecision (古いバージョン) |
単精度混合モードMKLプロバイダ .NET Framework 3.5用 |
|
P/Invokeベースの相互運用パッケージ
混合モードアセンブリで使用されるネイティブ相互運用は最高のパフォーマンスを発揮しますが、Windows上でのみ使用でき、Linux上では使用できないという欠点があります。
P/Invokeベースのネイティブ・ライブラリは、この制限に対応します。
パッケージは単精度と倍精度、WindowsとLinuxで分かれています。
バージョン8 パッケージ名 |
内容 |
リンク |
Extreme.Numerics.Mkl.Windows |
P/InvokeベースのWindows用MKLプロバイダ |
|
Extreme.Numerics.Mkl.Linux |
P/InvokeベースのLinux用MKLプロバイダ |
|
Extreme.Numerics.Mkl.SinglePrecision.Windows |
単精度P/InvokeベースのWindows用MKLプロバイダ |
|
Extreme.Numerics.Mkl.SinglePrecision.Linux |
単精度P/InvokeベースのLinux用MKLプロバイダ |
|
言語インターフェースライブラリ
これらのパッケージはプログラミング言語に特化した追加機能を提供します。
バージョン8 パッケージ名 |
内容 |
リンク |
Extreme.Numerics.FSharp |
F#のサポート |
|
Extreme.Numerics.IronPython |
IronPythonのサポート |
|