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你的定义是什么你调用复杂类型。