JacobiSVD_LAPACKE.h uses the LAPACKE method "gesvd" which is afaik not a Jacobi SVD method. LAPACKE does however offer a preconditioned Jacobi SVD method "gejsv" which might be more appropriate. The Jacobi SVD - with the right stopping criterion - offers higher relative accuracy as other SVD methods, see: http://www.netlib.org/lapack/lawnspdf/lawn15.pdf Users of Eigen might expect that high relative accuracy and be unpleasently surprised. My suggestion would be switch to "gejsv". "gejsv" is however slower than "gesvd". One remedy to that would be add a Lapacke version of BDCSVD. This way people can choose BDCSVD for performance and JacobiSVD for high relative accuracy. If those changes are acceptable, I would be willing to file a pull request accordingly.
-- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/1732.