※ 2020-09-06: 「アライメントの問題(C++17以上かつEigenバージョン3.4以上)」を追加。 線形代数ライブラリ(行列演算や行列分解などを行うライブラリ)には、有名どころだとPythonではNumpyがあり、C++ではEigenがあります。Eigenは強力なライブラリですが、気をつけなければいけないところがいくつかあるのでまとめます。 Eigenの特徴 ヘッダーオンリーでテンプレートが多用されており、汎用性が高い Expression Template(式テンプレート)を用いた遅延評価で高速(不要な計算を自動で除外する) 自動でSIMDやループ展開が適用され高速 静的にサイズを指定した行列はヒープを一切使用しない 疎行列のサポートがある 密行列・疎行列それぞれ様々な行列分解アルゴリズムが実装されている 以上のように、非常に高速で強力なライブラリですが、高速性のトレードオフ