Armadillo のインストール(Ubuntu 上)

Armadillo は,行列やベクトルを扱う C++ の線形代数ライブラリである. 行列積,連立一次方程式の解法,固有値,特異値分解などの機能をもつ. 計算の実体は BLAS, LAPACK の実装(OpenBLAS など)が担う.

インストールの方法は2通りある. 方法1 は Ubuntu のパッケージを使う方法で,手順が少ない. 方法2 はソースからビルドする方法で,Ubuntu のパッケージより新しい版を使いたいときに用いる.

前準備:ビルドツールと依存ライブラリのインストール

端末で次のコマンドを実行する.

sudo apt -y update
sudo apt -y install cmake g++ wget xz-utils \
    libopenblas-dev liblapack-dev libarpack2-dev libsuperlu-dev

方法1:Ubuntu のパッケージを使う

開発用のパッケージは libarmadillo-dev である. ランタイムライブラリ(libarmadillo12 など)は依存関係により自動で入る. パッケージのバージョンは Ubuntu のリリースごとに異なる(24.04 は 12.6.7,26.04 は 15.2.1). 端末で次のコマンドを実行する.

sudo apt -yV install libarmadillo-dev

方法2:ソースからビルドしてインストールする

安定版のファイル名は https://arma.sourceforge.net/download.html で確認する. ここでは armadillo-15.4.2 を使う. 端末で次のコマンドを実行する.

cd /tmp
wget -O armadillo-15.4.2.tar.xz https://sourceforge.net/projects/arma/files/armadillo-15.4.2.tar.xz/download
tar -xvf armadillo-15.4.2.tar.xz
cd armadillo-15.4.2
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local
make
sudo make install
sudo ldconfig

cmake は前準備でインストールした BLAS, LAPACK などを検出し,それらを使う設定でビルドする. ldconfig は共有ライブラリの検索情報を更新するコマンドである.

動作確認

プログラムファイル prog.cpp を作成する.

#include <armadillo>

int main()
{
  arma::mat A(4, 4, arma::fill::randu);
  A.print("A =");
  arma::mat B = A * A.t();
  B.print("B =");
  return 0;
}

コンパイル,リンク,実行を行う.端末で次のコマンドを実行する. Armadillo は C++14 以降のコンパイラを必要とし,リンク時には -larmadillo を指定する.

g++ prog.cpp -o prog -O2 -std=c++14 -larmadillo
./prog

4行4列の行列の値が表示されれば,インストールと設定は成功している.