Следующий код работает нормально:
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
).
Я что-то здесь не так делаю или это ошибка Eigen?