Armadillo (線形代数ライブラリ)
Armadilloは、数値線形代数のためのプログラミング言語C++のライブラリである。LAPACKと統合されており、各種の行列の分解を最適化された速度で実行することができる。また、加算や乗算など基本的な演算を、C++のテンプレートプログラミングや演算子のオーバーロードを活用して、遅延評価により計算することで高速化を図っている。オーストラリアの研究機関CSIROのグループ Data 61 で Conrad Sanderson が初版を開発した[2]。
最新版 |
10.5.3
/ 2021年7月1日[1] |
---|---|
リポジトリ | https://gitlab.com/conradsnicta/armadillo-code |
プログラミング 言語 | C++ |
対応OS | クロスプラットフォーム |
種別 | 線形代数ライブラリ |
ライセンス | MPL |
公式サイト |
arma |
特徴
編集- C++に統合された線形計算ライブラリ
- テンプレートプログラミングや演算子オーバーロードを使い、C++によく統合されている。APIはMATLABに似せて作られている。[2]
- 遅延評価による高速な計算
- Armadilloの公式Webサイトに掲載されたマイクロベンチマークの結果によれば、IT++ や Newmat といったライブラリとくらべて、非対角行列4つの積の計算のテストでは 2.5 倍 〜 20倍早く、Armadilloが認識可能な高速化できる複数の演算の組み合わせのパターンでは、5倍から1000倍もの速度が出ることがあるという。[3]
- 選択可能な依存する行列分解ライブラリ
- Armadilloが依存する行列分解のライブラリは、LAPACKの他にもIntel MKL、MD ACML、OpenBLASから選択可能である。[2]
出典
編集- ^ “Armadillo / News: Armadillo C++ linear algebra: version 10.5.3 maintenance release”. 2021年7月13日閲覧。
- ^ a b c “Armadillo Official Website - About”. 2016年2月9日閲覧。
- ^ “Armadillo Official Website - Speed”. 2016年2月9日閲覧。
参考文献
編集- 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/