目次
10 関係: Armadillo (線形代数ライブラリ)、Basic Linear Algebra Subprograms、Intel Math Kernel Library、Julia (プログラミング言語)、LAPACK、NumPy、数値線形代数、数値解析の項目一覧、数値解析ソフトの比較、数値解析ソフトウェアの一覧。
Armadillo (線形代数ライブラリ)
Armadilloは、数値線形代数のためのプログラミング言語C++のライブラリである。LAPACKと統合されており、各種の行列の分解を最適化された速度で実行することができる。また、加算や乗算など基本的な演算を、C++のテンプレートプログラミングや演算子のオーバーロードを活用して、遅延評価により計算することで高速化を図っている。オーストラリアの研究機関CSIROのグループ Data 61 で Conrad Sanderson が初版を開発した。
見る OpenBLASとArmadillo (線形代数ライブラリ)
Basic Linear Algebra Subprograms
Basic Linear Algebra Subprograms(BLAS)は数値線形代数の基礎的演算に必要な関数を定義するAPIである。ベクトル・行列演算を含む38の関数からなるLevel 1 BLASが1979年に発表されたのち、Level 2 および Level 3 まで拡張された。多数の実装が作成・整備され続けており、この分野におけるデファクトスタンダードとなっている。BLASの基礎演算を利用してLAPACKなどの上位パッケージが構築されており、科学技術計算・高性能計算で多用される。 BLASの関数を多用するソフトウェアにおいてBLAS実装(ライブラリ)の質は速度に直結する。高度な最適化は実装が動くハードウェアに依存するため、多くのハードウェアベンダーが自社デバイスに特化したライブラリを提供している(インテル:Intel oneAPI Math Kernel Library)。オープンソースの最適化 BLAS 実装として OpenBLAS などがある。
見る OpenBLASとBasic Linear Algebra Subprograms
Intel Math Kernel Library
Intel oneAPI Math Kernel Library (oneMKL) は、インテルが開発している、科学・工学・金融アプリケーション向けに提供される最適化(高速化)された数学ルーチンを含むライブラリである。提供される中心的な数学関数にはBLAS、LAPACK、、スパースソルバー(疎行列)、FFT、ベクトル演算が含まれている。インテルのCPUおよびGPUをサポートしている。オペレーティングシステムはWindows、Linux、macOSで利用可能である。対応プログラミング言語はC言語、C++、Fortran。
見る OpenBLASとIntel Math Kernel Library
Julia (プログラミング言語)
Julia(ジュリア)は、汎用プログラミング言語水準から高度の計算科学や数値解析水準まで対処するよう設計された高水準言語かつ仕様記述言語、及び動的プログラミング言語である。並行計算、並列計算、分散コンピューティング、及びAdapter パターン不要でC言語やFORTRANへのForeign function interfaceに対応している。ガベージコレクションを行い先行評価を用いるほか、浮動小数点数計算、線型代数学、高速フーリエ変換、正規表現照合のライブラリを利用できる。 LLVMコンパイラフレームワークを用いてC言語、C++、Schemeで組まれており、標準ライブラリの殆どは独自に実装された。注目すべき特徴は速度であり、完全に最適化したC言語(PythonやR言語よりも桁違いに速い場合が多い)と比べて計算パフォーマンスの低下は半分程度であると知られている。
LAPACK
LAPACK (Linear Algebra PACKage)は数値線形代数のための数値解析ソフトウェアライブラリで、線型方程式や線型最小二乗問題、固有値問題、特異値問題等を数値的に解くために利用される。本ライブラリは複素数または実数を成分とする行列を扱うことが可能であり、LU分解やコレスキー分解、QR分解、シュア分解等の行列の分解を行うためのサブルーチンを含む。サブルーチンは単精度版と倍精度版が提供される。のLAPACKの初版はFORTRAN 77 で実装されていたが、現在はFortran 90が用いられている。LAPACK 3.4.0からはC言語インターフェースであるLAPACKEが統合され、C言語やC++からの利用が容易になった。
NumPy
NumPyは、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供する。
数値線形代数
数値解析における数値線形代数(すうちせんけいだいすう、Numerical linear algebra)とは、線形代数で現れる問題(行列積、行列指数関数、連立方程式や固有値・特異値問題)の計算・求解を行うアルゴリズムを創出するための学問である森正武.
数値解析の項目一覧
この記事では数値解析に関する項目の一覧を示す。
数値解析ソフトの比較
以下の表では数値解析ソフトウェアの比較を示す。
数値解析ソフトウェアの一覧
数値解析ソフトウェアは、数値解析を行うために開発・利用されるコンピュータソフトウェア・ライブラリの総称。

