LAPACK++、Armadillo、IT++、Eigen、またはその他のライブラリを選択する必要があります (Windows の場合)。
私がする必要があるのは、大きな (約 10,000*10,000) 行列が対角化可能かどうかを確認することだけです。もしそうなら、D=(P^(-1))*A*P. これは、できるだけ早く実行する必要があります。どのライブラリを使用すればよいかわかりません。
また、これらの各ライブラリの長所と短所を一般的に教えていただければ幸いです。
LAPACK++、Armadillo、IT++、Eigen、またはその他のライブラリを選択する必要があります (Windows の場合)。
私がする必要があるのは、大きな (約 10,000*10,000) 行列が対角化可能かどうかを確認することだけです。もしそうなら、D=(P^(-1))*A*P. これは、できるだけ早く実行する必要があります。どのライブラリを使用すればよいかわかりません。
また、これらの各ライブラリの長所と短所を一般的に教えていただければ幸いです。
あなたが直面している正確な問題がわからないので、これはかなり漠然とした答えかもしれませんが、実際にはそのすべての情報が必要ない場合が非常に多いです。つまり、行列の固有値だけを気にします。最もエネルギーを持って; 残りについては、固有値 (対角化可能な行列) または 0.000 (非対角化可能) として 0.001 があるかどうかは本当に重要ですか? 多くの現実世界の (そして理論上の) アプリケーションの場合、答えは「そうではありません」です。
したがって、私の提案は、探している情報の精度や粒度をあきらめることによって速度を上げることです。