ubuntuでcpplapackを使う


自分の備忘録用に

CPPLAPACKについて

http://cpplapack.sourceforge.net/doc/main_page/Japanese.html
BLAS, LAPACK, およびPARDISOのC++クラスラッパー。
行列、ベクトル計算、特異値分解、連立方程式の求解等が非常にシンプルに記述できる。

導入

基本的には
http://cpplapack.sourceforge.net/tutorial/japanese/index.html
に倣って進めていけば導入できる。

lapackおよびgfortranをインストールする。

sudo apt install libatlas3-base libatlas-base-dev
sudo apt install gfortran

cpplapackでは、コードのビルドにmakeおよびmakedependを利用するため、下記も併せてインストールする。

sudo apt install build-essential xutils-dev

cpplapackの本体については、Subversionを用いて~/local/にチェックアウトする。

cd ~
mkdir local
cd local
svn checkout https://svn.code.sf.net/p/cpplapack/code/trunk cpplapack

これで準備は完了である。

動作確認

cpplapackの動作を確認する。
下記コードを作成する。

#include "cpplapack.h"

int main(){
  CPPL::dgematrix A(2, 3);
  A(0, 0) = 1; A(0, 1) = 2; A(0, 2) = 3;
  A(1, 0) = 4; A(1, 1) = 5; A(1, 2) = 6;
  std::cout << A;
  return 0;
}

cpplapack本体に含まれるMakefileを用いることで簡単にビルドできる。

cp ~/local/cpplapack/makefiles/Makefile ./
make
./A.OUT

下記のように表示されればOK。

 1 2 3
 4 5 6