Use selfAdjoingView<Upper> in InvertPSDMatrix. This restores some sensitive numerical tests. Change-Id: I7e6fc0236e810b1c112af75067957740c40c8f36
diff --git a/internal/ceres/invert_psd_matrix.h b/internal/ceres/invert_psd_matrix.h index 60f6a57..bbf52fe 100644 --- a/internal/ceres/invert_psd_matrix.h +++ b/internal/ceres/invert_psd_matrix.h
@@ -61,9 +61,10 @@ // https://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html#title3 if (assume_full_rank) { if (kSize > 0 && kSize < 5) { - return m.inverse(); + return m.inverse(); } - return m.llt().solve(MType::Identity(size, size)); + return m.template selfadjointView<Eigen::Upper>().llt().solve( + MType::Identity(size, size)); } Eigen::JacobiSVD<MType> svd(m, Eigen::ComputeThinU | Eigen::ComputeThinV);