これは、C++ の LAPACKE_zheevx() 関数を使用した固有値計算の収束に対する適切な許容誤差 ("abstol") の設定に関する質問です。
LAPACKE_zheev() が "abstol" のデフォルト値 (つまり、abstol=-1) で固有値/固有ベクトルを計算するときに収束に失敗した場合、LAPACK のマニュアルでは、abstol=2*DLAMCH('S') を設定するように指示されています。ただし、DLAMCH は Fortran 関数であり、有効な C++ 関数として認識されない C++ を使用しています。C++ で LAPACK を使用する場合 (つまり、LAPACKE を使用する場合)、「abstol=2*DLAMCH('S')」を適切に設定する方法を教えてください。
よろしくお願いします!
背景: LAPACKE は LAPACK (数値代数の Fortran ライブラリ) の C++ インターフェイスです。LAPACKE_zheevx() は、LAPACK の ZHEEVX() 関数に対する LAPACKE の C++ インターフェイスです。
キーワード: LAPACK、LAPACKE、C++、ABSTOL、DLAMCH、CONVERGENCE、EIGENVALUES、EIGENVECTORS