Eigen とは C++ の行列演算ライブラリ[1] です. 暗黒通信団による Eigen メモ [2]. これさえ読めば基本機能は大体使えます.
MatrixXdや, MatrixXi, VectorXd を使えば, 要素がdoubleやint型の行列やベクトルが扱えます ([2] を参照してください)が, Eigenは純粋なテンプレートライブラリであるので, 型もユーザーがカスタマイズできます [3].
これを参考にして, 例えば long double 型の行列を作成したいならば, 下記のように書けば良いことがわかります.
#include <iostream> #include <eigen3/Eigen/Dense> using namespace Eigen; using namespace std; typedef Matrix<long double,Dynamic,Dynamic,RowMajor> MatrixXld; typedef Matrix<long double,1,Dynamic> VectorXld; int main(){ MatrixXld B; VectorXld V; int n = 3; B.resize(n,n); V.resize(n); for(int i =0; i<n; i++) B(i,i)=1; for(int i =0; i<n; i++) V(i) = i; cout << B << endl; cout << V << endl; return 0; }
出力
1 0 0 0 1 0 0 0 1 0 1 2