目次
- 目次
- はじめに
- Eigenをファイルインクルードだけで使う方法
- 1. C++のソフトを作る
- 2. Eigenのソースコードをダウンロードする
- 3. Eigenのソースコードを先ほどのC++ソフトの場所にコピーする。
- 4. C++ソフトの中で必要なEigenライブラリをインクルードする
- 5. コンパイルして実行
- 参考資料
- MyEnigma Supporters
はじめに
EigenはC++の有名な行列演算ライブラリですが、
計算が非常に早かったり、
様々な線形代数演算機能が使えるだけでなく、
非常に簡単に使えるという特徴があります。
Eigenはテンプレートライブラリという
C++のヘッダファイルのみで構成されるライブラリであるため、
自分のソースコード内でインクルードするだけで、
ソフトを使うことができます。
ライブラリのコンパイルやリンク、インストールという作業もいりません。
1つのバイナリ実行ファイルにすべてのアプリケーションをまとめたい場合や、
簡単にソフトをインストールすることができないような環境でも便利ですね。
今回は、通常の使い方であるEigenを
CMakeでコンパイルしてインストールする方法ではなく、
Eigenをインクルードして使用する方法を説明したいと思います。
Eigenをファイルインクルードだけで使う方法
手順は下記の通りです。
1. C++のソフトを作る
Eigenを使うためのソフトを作ります。
どんな方法でも良いですが、
下記の方法を使えば、一瞬でサンプルコードを作れます。
2. Eigenのソースコードをダウンロードする
下記のEigenのページからソフトをダウンロードしてきます。
フロントページのGet itという場所から
最新版のソフトをダウンロードできます。
ダウンロードしたら、zipやtarで圧縮されているので、展開しておきます。
3. Eigenのソースコードを先ほどのC++ソフトの場所にコピーする。
展開したディレクトリの中のEigenというフォルダを、
C++ソフトと同じディレクトリにコピーします。
4. C++ソフトの中で必要なEigenライブラリをインクルードする
Eigenフォルダの中には様々なEigenのヘッダライブラリをインクルードする
インクルードファイルが入っています。
それぞれのインクルードファイルには拡張子が無いですが、
必要なライブラリだけインクルードすれば、
srcの下にある、対応するヘッダライブラリがまとめてインクルードされます。
今回は基本的な行列計算だけを想定して、
Coreをインクルードするようにします。
下記のように、相対パスでCoreファイルをインクルードするだけです。
これで、MatrixXfなどが使えるようになります。
#include<iostream> using namespace std; #include"Eigen/Core" int main(){ cout<<"Hello world"<<endl; Eigen::MatrixXf A=Eigen::MatrixXf::Zero(2,2); A(0,0)=2; A(1,1)=5; cout<<A<<endl; return 0; }
5. コンパイルして実行
上記のソフトをコンパイルして実行すると、
となり、Eigenが使えるようになりました。
非常に簡単ですね.
ビバ Eigen !!
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。