私は空間計算のセットを基本的にCコードをコンパイルし実行する組み込み環境に移植しています。CLAPACKのクォータニオンまたは代替Cスタイルクォータニオンライブラリ
以前は、VNL(新しいプラットフォームでは動作しないテンプレートのC++ライブラリ)をCBLASとCLAPACKで使用した多くの線形代数関数を置き換えました。彼らのAPI(すべてのパラメータはポインタであり、テンプレートはありません)は、私がやっていることに最適です。
しかし、キャッチは、CLAPACKユーザーガイドのどこにでも四元数ベースの関数が表示されません。私はセクションを欠いていて、どこかで四元数のサポートがありますか?もしそうなら、私にその機能を教えてください。具体的には、オイラー角と3x3行列との間の逆数、乗法、および変換を探しています。
CLAPACKにこの種のサポートがない場合、クォータニオン計算と同様の設計特性を持つ別のライブラリがありますか?
4x4の行列として解釈されますか? –
はい、既存のコードを回転行列に変換することは可能ですが、好ましくはありません。まず、外部入力の1つがAPIにクォータニオンを供給するため、ある程度のサポートと変換が必要です。第二に、私は、回転行列に四元数を使用すると、回転計算にストレージサイズとパフォーマンスの利点があると考えています。詳細はhttp://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Performance_comparisons_with_other_rotation_methodsを参照してください。 – Evan
本当に答えはありますが、あなた自身がこれを思いついてBLAS/LAPACKのようなAPIを通して公開することはできません。それらのいくつかの関数(四元数代数、ベクトルの変換、他の表現への変換)は、実装するのが難しくないか退屈であってはなりません。私はそれがLAPACKにはないと思うのは、より小さなグループの人々(物理学者や医師かもしれないメカニックやグラフィックスの人たち)にとって興味があり、それは本当に古典的な線形代数には属さない数値の線形代数を除いて、私は思う。 –