Eigen :: BDCSVD <eigen :: matrixxcd>求解器通过MKL LAPACKE引发DGESVD错误

时间:2019-04-09 03:32:14

标签: c++ eigen intel-mkl lapacke

以下代码可以正常工作:

auto bcd_svd_solver = Eigen::BDCSVD<Eigen::MatrixXcd>(X, Eigen::ComputeFullU | Eigen::ComputeFullV);

MatrixXcd U = bcd_svd_solver.matrixU();
VectorXd s = bcd_svd_solver.singularValues();
MatrixXcd V = bcd_svd_solver.matrixV();

类型为X(复杂矩阵)的Eigen::MatrixXcd

但是,如果我使用-DEIGEN_USE_LAPACKE选项(以激活MKL LAPACKE),则会发生以下错误:

** On entry to DGESVD, parameter number  6 had an illegal value

根据https://software.intel.com/en-us/mkl-developer-reference-c-gesvd,参数6是要分解的矩阵(来自X中的数据)。

我在这里做错什么了吗?还是本征错误?

1 个答案:

答案 0 :(得分:0)

我建议以详细模式切换MKL。设置/导出MKL_VERBOSE = 1并显示输出