![]() Registered Member ![]()
|
Hi,
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. Cheers, S.
|
![]() Moderator ![]()
|
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.
|
![]() Registered Member ![]()
|
Hi ggal,
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. Cheers
|
Registered users: Bing [Bot], claydoh, Google [Bot], rblackwell, Yahoo [Bot]