行列計算様ライブラリ Eigen
行列の固有値を求めるためのライブラリーが欲しくて少し調べて見たのですが、
導入の簡単さからEigenを使うことにしました。
この記事はその時の覚え書きです。
gccの使用を前提にしています。
本家へのリンクは、
http://eigen.tuxfamily.org/index.php?title=Main_Pageから。
インストール
wget http://bitbucket.org/eigen/eigen/get/3.0.1.tar.bz2
とするか本家から本体をダウンロードしましょう。
あとは解凍して適当な場所に置けば準備完了です。
Eigenはc++のヘッダーファイルのみから構成されておりコンパイル時にこれをインクルードするだけで使うことができます。
コンパイルの仕方
置いた場所によっては、コンパイル時にパスを通す必要があります。
例えば、解凍したファイルが ~/Downloads/ にあって、eigen-eigen-599fcf7c736という名前でかつgccを使ってコンパイルするなら
gcc hoge.cpp -o hoge -I ~/Downloads/eigen-eigen-599cf736
とします。
テスト
本家のドキュメントhttp://eigen.tuxfamily.org/dox/で最初に紹介されているプログラムを試して見ます。
#include <iostream> #include <Eigen/Dense> using Eigen::MatrixXd; int main() { MatrixXd m(2,2); m(0,0) = 3; m(1,0) = 2.5; m(0,1) = -1; m(1,1) = m(1,0) + m(0,1); std::cout << m << std::endl; }
これを例えば test.cpp という名前で保存して
g++ test.cpp -o test -I ~/Downloads/eigen-eigen-599fc4f7c736
でコンパイル。
./test
で実行されます。
3 -1 2.5 1.5
と表示されれば成功です。
さっそチュートリアルhttp://eigen.tuxfamily.org/dox/TutorialMatrixClass.htmlをやって見ましょう!