Change SVD algorithm in covariance computation. Switch from JacobiSVD to BDCSVD in ComputeCovarianceValuesUsingDenseSVD. This should increase the performance for larger covariance matrices. See https://eigen.tuxfamily.org/dox/classEigen_1_1BDCSVD.html Change-Id: Icde4dec89f506b638b0f9f1aee3b7cfc9e4d72fc
diff --git a/internal/ceres/covariance_impl.cc b/internal/ceres/covariance_impl.cc index 299dda8..6c26412 100644 --- a/internal/ceres/covariance_impl.cc +++ b/internal/ceres/covariance_impl.cc
@@ -752,8 +752,8 @@ } event_logger.AddEvent("ConvertToDenseMatrix"); - Eigen::JacobiSVD<Matrix> svd(dense_jacobian, - Eigen::ComputeThinU | Eigen::ComputeThinV); + Eigen::BDCSVD<Matrix> svd(dense_jacobian, + Eigen::ComputeThinU | Eigen::ComputeThinV); event_logger.AddEvent("SingularValueDecomposition");