commit | 27bb997144d00dd4494d440627f1e782bf4adf43 | [log] [tgz] |
---|---|---|
author | Johannes Beck <Jodebo_Beck@gmx.de> | Tue Mar 24 08:05:43 2020 +0100 |
committer | Sameer Agarwal <sameeragarwal@google.com> | Tue Mar 24 18:43:32 2020 +0000 |
tree | 1b899f65c390a581299562bbc857cb9ca0950ccd | |
parent | 84fdac38e033c8f9a63c6e6fca7b44219110f7df [diff] |
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");