Registered Member
|
I have wrong results on Mac (GCC 4.2.1) and Win64 (Mingw 4.6) using the following test code:
The output is:
Note, Eigen::JacobiSVD<Eigen::MatrixXd> svd( matrix , Eigen::ComputeThinU | Eigen::ComputeThinV); Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::HouseholderQRPreconditioner> svd( matrix , Eigen::ComputeThinU | Eigen::ComputeThinV); are working. Only FullPivHouseholderQRPreconditioner is not working here. Matrix U is arbitrarily filled. GCC flags: -O2, -DNDEBUG, -std=c++98 Best regards Sebastian |
Moderator
|
You should try without -DNDEBUG to get the explanation:
assertion failed: !(m_computeThinU || m_computeThinV) && "JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. " "Use the ColPivHouseholderQR preconditioner instead." |
Registered Member
|
Ups. Thanks! It would be good to produce empty matrices in this case.
I always use NDEBUG because some of the sparse operations need too much time using the old GCC 4.2 Sorry for bugging.... |
Moderator
|
Indeed, asserts are extremely slow with gcc 4.2 to workaround a compiler bug of this specific version.
|
Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]