我用 Eigen 和 实现了一段代码。我希望 Eigen 使用 BLAS 和 LAPACK 。
我看过here ,这是可能的,但我不知道如何或将这些值/指令放在代码中的位置。
我必须在某处指定值 EIGEN_USE_BLAS
但我不知道在哪里。
我已经看到 Eigen 的源代码包括 BLAS 和 LAPACK 的代码,但我完全忽略它是否默认使用它或什么。我正在使用 Eigen 3.3.3。
最佳答案
您不会将这些指令放入代码中,而是使用这些宏编译代码。例如:
LAPACK_FLAGS=('-D EIGEN_USE_LAPACKE=1 -lm -lblas -llapack -llapacke')
g++ --std=c++11 eigenSVD.cpp -o eigenSVD.cpp ${LAPACK_FLAGS[@]}
看看
Eigen/SVD
, 如果你的代码是用 EIGEN_USE_LAPACKE
编译的,您会看到 Eigen-lapacke 接口(interface)和 lapacke 头文件将被包含在内。#if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT)
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#else
#include "src/misc/lapacke.h"
#endif
#include "src/SVD/JacobiSVD_LAPACKE.h"
#endif
关于lapack - 使用 Eigen 的 BLAS 和 LAPACK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328092/