Решатель Eigen :: BDCSVD <Eigen :: MatrixXcd> вызывает ошибку DGESVD с MKL LAPACKE - PullRequest
0 голосов
/ 09 апреля 2019

Следующий код работает нормально:

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?

1 Ответ

0 голосов
/ 26 июня 2019

Я бы порекомендовал переключить MKL в подробный режим.установить / экспортировать MKL_VERBOSE = 1 и показать вывод

...