このためにGeneric Graphics Toolkitに落ち着いたプロジェクトがかなりあります。そこにある GMTL は素晴らしいです。非常に小さく、非常に機能的で、非常に信頼できるほど広く使用されています。OpenSG、VRJuggler、およびその他のプロジェクトはすべて、独自の手巻きバーター/マトリックス演算の代わりにこれを使用するように切り替えました。
テンプレートを介してすべてを行うため、非常に柔軟で非常に高速です。
編集:
コメントの議論と編集の後、特定の実装の利点と欠点、および状況に応じてどちらかを選択する理由について、さらに情報を提供したいと思いました。
GMTL -
利点: グラフィック エンジン用に特別に設計されたシンプルな API。他のどのパッケージにもない、レンダリング向けの多くのプリミティブ タイプ (プレーン、AABB、複数の補間を伴うクォーテリオンなど) が含まれています。非常に低いメモリ オーバーヘッド、非常に高速、使いやすい。
欠点: API は、特にレンダリングとグラフィックに重点を置いています。汎用 (NxM) 行列、行列の分解と解決などは含まれません。これらは従来のグラフィックス/ジオメトリ アプリケーションの領域外であるためです。
固有-
利点:きれいな APIで、かなり使いやすい。クォータニオンと幾何学的変換を備えたGeometry モジュールが含まれています。低メモリ オーバーヘッド。大規模な NxN 行列およびその他の汎用数学ルーチンの完全で高性能な解。
欠点: あなたが望んでいるよりも少し大きなスコープかもしれません (?)。GMTL と比較して、幾何学的/レンダリング固有のルーチンが少ない (例: オイラー角の定義など)。
IMSL -
利点: 非常に完全な数値ライブラリ。非常に高速です (おそらく最速のソルバー)。群を抜いて最大かつ最も完全な数学的 API。商業的にサポートされ、成熟しており、安定しています。
欠点: コスト - 安価ではありません。幾何学的/レンダリング固有のメソッドはほとんどないため、線形代数クラスの上に独自のメソッドを展開する必要があります。
NT2 -
利点: MATLAB に慣れている場合は、より使い慣れた構文が提供されます。大きな行列などの完全な分解と解法を提供します。
欠点: 数学的であり、レンダリングに焦点が当てられていません。おそらくEigenほどのパフォーマンスではありません。
ラパック-
利点: 非常に安定した実績のあるアルゴリズム。長い間存在しています。完全な行列の解法など。あいまいな数学のための多くのオプション。
欠点: 場合によっては、パフォーマンスがそれほど高くありません。Fortran から移植されたもので、使用方法が奇妙です。
個人的には、1 つの質問に行き着きます。これをどのように使用する予定ですか。レンダリングとグラフィックスだけに焦点を当てている場合は、 Generic Graphics Toolkitが好きです。これは、パフォーマンスが高く、独自の実装をしなくてもすぐに使用できる多くの便利なレンダリング操作をサポートするためです。汎用の行列解法 (つまり、大きな行列の SVD または LU 分解) が必要な場合は、Eigenを使用します。これは、それを処理し、いくつかの幾何学的操作を提供し、大きな行列解で非常にパフォーマンスが高いためです。独自のグラフィックス/幾何学的操作を (行列/ベクトルの上に) もっと書く必要があるかもしれませんが、それは恐ろしいことではありません。