Armadillo (線形代数ライブラリ)

Armadilloは、数値線形代数のためのプログラミング言語C++のライブラリである。LAPACKと統合されており、各種の行列の分解を最適化された速度で実行することができる。また、加算や乗算など基本的な演算を、C++のテンプレートプログラミングや演算子のオーバーロードを活用して、遅延評価により計算することで高速化を図っている。オーストラリアの研究機関CSIROのグループ Data 61 で Conrad Sanderson が初版を開発した。

特徴
C++に統合された線形計算ライブラリ
テンプレートプログラミングや演算子オーバーロードを使い、C++によく統合されている。APIはMATLABに似せて作られている。
遅延評価による高速な計算
Armadilloの公式Webサイトに掲載されたマイクロベンチマークの結果によれば、IT++ や Newmat といったライブラリとくらべて、非対角行列4つの積の計算のテストでは 2.5 倍 〜 20倍早く、Armadilloが認識可能な高速化できる複数の演算の組み合わせのパターンでは、5倍から1000倍もの速度が出ることがあるという。
選択可能な依存する行列分解ライブラリ
Armadilloが依存する行列分解のライブラリは、LAPACKの他にもIntel MKL、MD ACML、OpenBLASから選択可能である。

出典

参考文献
 Sanderson, C., & Curtin, R. (2016). Armadillo: a template-based C++ library for linear algebra. Journal of Open Source Software, 1(2), 26.
 Sanderson, C. (2010). Armadillo: An open source C++ linear algebra library for fast prototyping and computationally intensive experiments (p. 84). Technical report, NICTA.
 Eddelbuettel, D., & Sanderson, C. (2014). RcppArmadillo: Accelerating R with high-performance C++ linear algebra. Computational Statistics & Data Analysis, 71, 1054-1063.

外部リンク
 公式Webサイト - https://arma.sourceforge.net/

数値線形代数
C++数値計算ライブラリー
フリー科学ソフトウェア