NAG Numerical Libraryは、The Numerical Algorithms Group Ltd.が開発・販売する商用ソフトウェア製品です。1,900を超える数学的および統計的アルゴリズムを含む数値解析ルーチンのソフトウェアライブラリです。このライブラリがカバーする分野には、線形代数、最適化、求積法、常微分方程式および偏微分方程式の解法、回帰分析、時系列分析などがあります。
NAGライブラリのユーザーは、アプリケーション内からルーチンを呼び出して、その数学的または統計的機能を組み込み、数値問題を解決します。たとえば、関数の最小値または最大値の検出、データへの曲線または曲面のフィッティング、微分方程式の解法などです。NAGライブラリ[ 1 ]は、 C / C++ [ 2 ]、Fortran [ 3 ]、Python [ 4 ]、MATLAB [ 5 ]、Java [ 6 ]、. NET [ 7 ]など、さまざまなプログラミング言語と環境からアクセスできます。別のライブラリは、自動微分(AD)をサポートしています[ 8 ]。現在サポートされている主なシステムは、x86-64アーキテクチャで動作するWindows、Linux、macOSです。32ビットWindowsのサポートは段階的に廃止されています。NAGの数理最適化ソルバーの一部は、最適化モデリングスイートを介してアクセスできます[ 9 ] 。
NAGライブラリのオリジナルバージョンはALGOL 60とFortranで書かれました。98個のユーザー呼び出し可能なルーチンが含まれており、 1971年10月1日にInternational Computers Limited (ICL) 1906Aおよび1906Sマシン向けにリリースされました。その後5年間でライブラリの3つのバージョンが登場しました。この間にALGOLバージョンはALGOL 68に移植され、以下のプラットフォームがサポートされました。CDC 7600 / CYBER ( CDC ALGOL 68 )、IBM 360 /370/AMDAHL ( FLACC ALGOL 68 )、ICL 1900 ( ALGOL 68R )、ICL 1906A/S ( ALGOL 68R )、ICL 2900 ( ALGOL 68RS )、Telefunken TR440 ( ALGOL 68C )。
Cray-1用の NAG Fortran ライブラリの最初の部分ベクトル化実装は 1983 年にリリースされ、NAG 並列ライブラリ (分散メモリ並列コンピュータ アーキテクチャ用に特別に設計された) の最初のリリースは 1990 年代初頭でした。NAG C ライブラリの Mark 1 は 1990 年にリリースされました。1992 年に、ライブラリに初めてLAPACKルーチンが組み込まれました。NAG は 1987 年以来 LAPACK プロジェクトの協力者でした。対称型マルチ プロセッサ(SMP) およびマルチコアプロセッサの共有メモリ並列性を活用するSMP & Multicore 用 NAG ライブラリの最初のリリース[ 10 ]は、 Dec AlphaおよびSPARCアーキテクチャを使用して構築されたマルチプロセッサ マシン向けに 1997 年に登場しました。共通言語インフラストラクチャ(CLI) ユーザーが NAG アルゴリズムにアクセスできるようにするメソッドとオブジェクトを含むCLI DLL アセンブリである .NET 用 NAG ライブラリは、2010 年に初めてリリースされました。
NAGライブラリのMark 29には、章ごとに整理された数学的および統計的アルゴリズムが含まれています。[ 11 ]