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

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

Nuget Galleryでは最新のバージョン8が配信されています。

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

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

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

インストール手順

Nuget GalleryからのNugetパッケージをインストールする方法は複数あります。
ここではWindowsで「Visual Studio 2019」を利用して開発していることを想定して手順を紹介します。
以下の例は、必ずインストールする必要があるメインパッケージ「Extreme.Numerics」を、.NET Core 3.1のC#コンソールアプリケーションにインストールする手順です。

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

ライセンス

製品版ライセンス

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

60日体験版ライセンス

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

ライセンス認証手順

製品版と体験版でライセンス認証の手順は同じです。以下では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]を選択してウィンドウを閉じると完了です。

 

パッケージ一覧

メインパッケージ

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

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

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

パッケージ名 内容 リンク
Extreme.Numerics メインパッケージ
Extreme.Numerics.SinglePrecision 単精度線形代数とFFT
Extreme.Numerics.Generic 一般線形代数

データ接続ライブラリ

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

パッケージ名 内容 リンク
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を使用して計算を並列化します。逐次バージョンはそうではなく、複数のスレッドから安全に呼び出すことができます。

パッケージ名 内容 リンク
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で分かれています。

パッケージ名 内容 リンク
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プロバイダ

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

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

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

 

page_top_icon