製品版・体験版のインストール

Numerics.NET(Extreme Optimization Numerical Libraries for .NETから名称が変わりました)は現在Nuget GalleryでNugetパッケージとして配信されています。
どなたでもVisual Studioなどの開発環境でインストールすることができます。
インストール後に製品版または体験版のライセンス登録を行うと使用できるようになります。

Nuget Galleryでは最新のバージョン9(名称 Numerics.NET)と1つ前のバージョン8(名称 Extreme)が配信されています。

バージョン9でのサポート状況

  • .NETのバージョン:.NET 6.0、.NET 5.0、.NET Framework 4.6.2、.NET Standard 2.0、.NET Core 3.1
  • OS:Windows、Mac、Linux

バージョン8でのサポート状況

  • .NETのバージョン:.NET 5.0、.NET Framework 4.6.2、.NET Standard 2.0、.NET Core 3.1
  • OS:Windows、Mac、Linux

Nugetの使用が初めての方はMicrosoftのドキュメントをご覧ください。

インストール手順

Nuget GalleryからのNugetパッケージをインストールする方法は複数あります。
ここではWindowsで「Visual Studio 2022」を利用して開発していることを想定して手順を紹介します。
以下の例は、「Numerics.NET」(必ずインストールする必要があるメインパッケージ、3つの数値計算パッケージ、1つのデータアクセスパッケージがセットになっているパッケージ)を、「sample」というプロジェクト名の.NET 6のC#コンソールアプリケーションにインストールする手順です。

※バージョン8をインストールしたい場合はメインパッケージは「Extreme.Numerics」です。

  1. Numerics.NETを使用したいプロジェクトをVisual Studioで開き、[ツール]メニューから[Nugetパッケージマネージャー]>[ソリューションのNugetパッケージの管理]を選択します。
    Nugetパッケージマネージャー
  2. 表示された「ソリューションのパッケージの管理」の[参照]で「Numerics.NET」と入力して検索するとパッケージの一覧が表示されます。
    Nugetパッケージを検索
  3. 表示されている「Numerics.NET」をクリックすると右側に内容が表示されます。インストールするプロジェクト「sample」のチェックボックスにチェックを入れて[インストール]ボタンをクリックします。
    インストール
  4. 「変更のプレビュー」ウィンドウが表示されたら[適用]を選択し、「ライセンスの同意」ウィンドウが表示されたら[同意する]を選択するとインストールが実施されます。
  5. 「出力」欄にインストールの実施状況が出力されます。インストールが完了すると「ソリューションのパッケージの管理」の[インストール済み]と、「ソリューションエクスプローラー」の「依存関係」の「パッケージ」にインストールしたパッケージが表示されます。
    パッケージのインストールの確認
  6. 以上でメインパッケージ「Extreme.Numerics」のインストールは完了です。他に必要なパッケージがある場合は同様の手順でインストールします。

ライセンス

製品版ライセンス

価格と購入のページよりご購入いただけます。

30日体験版ライセンス

30日間使用可能な体験版ライセンスを開発元の以下のページから申請して取得することができます。
入力項目は全て英語で入力してください。

ライセンス認証手順

製品版と体験版でライセンス認証の手順は同じです。

バージョン9からライセンス認証の方法が変わりました。

バージョン9以降の手順

ソースコード内に以下のコードを画像のように追記するだけです。
正しいキーが入力されていない場合は実行時にエラーが発生します。

Numerics.NET.License.Verify("Username", "Organization", "Serial number"); ライセンスキーを使用するコード

バージョン8以前の手順

以下ではWindowsのVisual Studioで行う手順を紹介します。

  1. [ツール]メニューから[Nugetパッケージマネージャー]>[パッケージマネージャーコンソール]を選択します。
    パッケージマネージャーコンソール
  2. 表示されたパッケージマネージャーコンソールに「Extreme.LicenseManager」を入力してEnterキーを押します。
    パッケージマネージャーコンソール
  3. 「License Manager」が起動するためのユーザーアカウント制御が表示されたら[はい]を選択します。
  4. 「License Manager」が起動したら[Activate]ボタンをクリックします。
    License Manager
  5. 「Activate your license」ウィンドウが表示されたら情報を入力します。購入した製品版ライセンスの場合は上側の「Username」「Organization」「Serial」の3項目を入力し、体験版の場合は最も下の「Trial key」のみ入力して[Activate]ボタンをクリックします。
    パッケージマネージャーコンソール
  6. 認証が正常に完了すると「License Manager」に情報が表示されます。以下は体験版ライセンスを入力した例です。
    パッケージマネージャーコンソール
  7. 「License Manager」で[Colse]を選択してウィンドウを閉じると完了です。

 

パッケージ一覧

バージョン9以降

メインパッケージ

メインパッケージ「Numerics.NET.Core」は全てのNumerics.NETを使用するアプリケーションで必要となるパッケージです。

メインのライブラリは倍精度の実数と複素数の計算のみ扱います。
単精度の数値を扱うクラスは別パッケージ「Numerics.NET.SinglePrecision」に含まれています。

4倍精度や任意精度の数値など、任意の数値型を扱うにはパッケージ「Numerics.NET.Generic」が必要です。

バージョン9からTensorライブラリが追加されました。

バージョン9 パッケージ名 内容 リンク
Numerics.NET.Core メインパッケージ
Numerics.NET.SinglePrecision 単精度線形代数とFFT
Numerics.NET.Generic 一般線形代数
Numerics.NET.Tensors Tensorライブラリ

データ接続ライブラリ

ファイルからオブジェクトを読み込む、またはファイルへオブジェクトを保存するためのクラスはパッケージ「Numerics.NET.Data」と「Numerics.NET.Data.Json」に含まれています。
後者のパッケージにはJSONでのシリアライズに使用され、Newtonsoft.Jsonに依存します。

バージョン9 パッケージ名 内容 リンク
Numerics.NET.Data テキストファイル(CSVを含む)、R、Stata、Matlab...
Numerics.NET.Data.Json JSONシリアル化

ネイティブライブラリ

パフォーマンスを向上させるために、インテル® マス・カーネル・ライブラリー(Intel® Math Kernel Library)をベースに最適化されたネイティブ線形代数およびFFTライブラリーを使用することができます。
これらは、相互運用の方法によって、ネイティブ相互運用とP/Invokeの2種類があります。

単精度と倍精度でパッケージが分かれています。パッケージはプラットフォーム依存しており、WindowsとLinuxで利用できます。2024/8現在、Linuxではx64のみサポートされています。他のプラットフォーム向けは将来的に追加される予定です。

バージョン9 パッケージ名 内容 リンク
Numerics.NET.Native.Mkl.win-x64 Windows用MKLベースのプロバイダ(x64、倍精度のみ)
Numerics.NET.Native.Mkl.win-x86 Windows用のMKLベースのプロバイダ(x86、倍精度のみ)
Numerics.NET.Native.Mkl.linux-x64 Linux用のMKLベースのプロバイダ(x64、倍精度のみ)
Numerics.NET.Native.Mkl.SinglePrecision.win-x64 Windows用のMKLベースのプロバイダ(x64、単精度のみ)
Numerics.NET.Native.Mkl.SinglePrecision.win-x86 Windows用のMKLベースのプロバイダ(x86、単精度のみ)
Numerics.NET.Native.Mkl.SinglePrecision.linux-x64 Linux用のMKLベースのプロバイダ(x64、単精度のみ)

バンドルパッケージ

よく使用される複数のパッケージがセットになっているパッケージです。

バージョン9 パッケージ名 内容 リンク
Numerics.NET 次の5つのパッケージのセット:Numerics.NET.Core、Numerics.NET.SinglePrecision、Numerics.NET.Generic、Numerics.NET.Tensors、Numerics.NET.Data
Numerics.NET.win-x64 Numerics.NETとWindows(x64)向けの倍精度のネイティブライブラリのセット
Numerics.NET.win-x86 Numerics.NETとWindows(x86)向けの倍精度のネイティブライブラリのセット
Numerics.NET.linux-x64 Numerics.NETとLinux(x64)向けの倍精度のネイティブライブラリのセット

言語インターフェースライブラリ

これらのパッケージはプログラミング言語に特化した追加機能を提供します。

バージョン9 パッケージ名 内容 リンク
Numerics.NET.FSharp F#のサポート
Numerics.NET.IronPython IronPythonのサポート

 

バージョン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のサポート

 

page_top_icon