以下代码可以正常工作:
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
中的数据)。
我在这里做错什么了吗?还是本征错误?
答案 0 :(得分:0)
我建议以详细模式切换MKL。设置/导出MKL_VERBOSE = 1并显示输出