2
我已經使用Eigen和實現了一段代碼我希望Eigen使用BLAS和LAPACK。從Eigen使用BLAS和LAPACK
我見過here,這是可能的,但我不知道如何或在哪裏把這些值/指令在代碼中。
我必須預先指定值EIGEN_USE_BLAS
,但我不知道在哪裏。
我已經看到Eigen的源代碼包含BLAS和LAPACK的代碼,但是我完全忽略它是否默認使用它或者什麼。我正在使用Eigen 3.3.3。
我已經使用Eigen和實現了一段代碼我希望Eigen使用BLAS和LAPACK。從Eigen使用BLAS和LAPACK
我見過here,這是可能的,但我不知道如何或在哪裏把這些值/指令在代碼中。
我必須預先指定值EIGEN_USE_BLAS
,但我不知道在哪裏。
我已經看到Eigen的源代碼包含BLAS和LAPACK的代碼,但是我完全忽略它是否默認使用它或者什麼。我正在使用Eigen 3.3.3。
好了,我已經找到了解決辦法
包括在你.h
文件中的以下內容:
// includes to make Eigen use BLAS+LAPACK
#include <complex>
#define EIGEN_SUPERLU_SUPPORT
#define EIGEN_USE_BLAS
#define EIGEN_USE_LAPACKE
#define LAPACK_COMPLEX_CUSTOM
#define lapack_complex_float std::complex<float>
#define lapack_complex_double std::complex<double>
// includes to call Eigen
#include <Eigen/Sparse>
#include <Eigen/StdVector>
複雜的包括有必要的,無論使用複雜的矩陣,因爲LAPACK demmands你的定義是什麼你調用複雜類型。