http://eigen.tuxfamily.org/index.php?title=Main_Page
C++で一押しの行列演算ライブラリです。
かのGoogleも機械学習分野で採用しているらしいです。
特徴
- ヘッダオンリ
- 高速
- シンプルなAPI
使ってみる
#include <iostream> #include <Eigen/Core> #include <Eigen/Geometry> int main() { using namespace Eigen; // 二次元ベクトルv1 Vector2f v1; // コンストラクタで初期値指定 Vector2f v2(2.0f, 1.0f); // 内容を表示 std::cout << v2 << std::endl; // 3x3行列 Matrix3d m; // 値の代入 m << 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0; std::cout << m << std::endl; // 加減算 v2 = v + v1; v2 = v - v1; // 内積・外積 float dot = v1.dot(v1); Vector3f cross = v1.cross(v1); }
特に3×3行列の初期化で使われているカンマオペレータでの初期化は、非常に直感的で良いです。
Pythonを扱うのと大差なく行列演算を行うことが出来ます。