2017-04-10 110 views
2

我已经使用Eigen和实现了一段代码我希望Eigen使用BLAS和LAPACK。从Eigen使用BLAS和LAPACK

我见过here,这是可能的,但我不知道如何或在哪里把这些值/指令在代码中。

我必须预先指定值EIGEN_USE_BLAS,但我不知道在哪里。

我已经看到Eigen的源代码包含BLAS和LAPACK的代码,但是我完全忽略它是否默认使用它或者什么。我正在使用Eigen 3.3.3。

回答

0

好了,我已经找到了解决办法

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

相关问题