Page 1 of 1
(3 posts)

First of all, thank you very much for this great library.I have a problem when I do cholesky decomposition with Intel MKL. (Without Intel MKL, everything is fine.)Even though the matrix is not singular, LLT.info() returns Eigen::NumericalIssue, but the calculation is still correct.How can I check whether the matrix is singular or not with Intel MKL.Please see the following code.Thank you very much for your help.

I don't have MKL right now to debug that, but you can easily explore what's going one by looking at the file Eigen/src/Cholesky/LLT_MKL.h, and printing out the value of 'info' as returned by spotrf. See here for its meaning: http://www.netlib.org/lapack/explore-3. ... trf.f.html.

Thank you for your reply.I've already checked the info variable in the Eigen::LLT class.But it was returned as a non-zero value (which means the matrix is singular) even for a non-singular matrix.I tried to parse the Eigen::LLT class, but that was not easy to debug. (Probably it is not a bug.)So, I implemented my LLT class and would like to leave here for others as below.It will work was Eigen::LLT if the flags for Intel MKL are not on, but replace the Eigen::compute function otherwise.