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

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

Armadillo
最新版
10.5.3 / 2021年7月1日 (2年前) (2021-07-01)[1]
リポジトリ https://gitlab.com/conradsnicta/armadillo-code
プログラミング
言語
C++
対応OS クロスプラットフォーム
種別 線形代数ライブラリ
ライセンス MPL
公式サイト arma.sourceforge.net
テンプレートを表示

特徴 編集

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

出典 編集

  1. ^ Armadillo / News: Armadillo C++ linear algebra: version 10.5.3 maintenance release”. 2021年7月13日閲覧。
  2. ^ a b c Armadillo Official Website - About”. 2016年2月9日閲覧。
  3. ^ 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.

外部リンク 編集