diff --git a/internal/ceres/invert_psd_matrix.h b/internal/ceres/invert_psd_matrix.h index 50b357cf6..78ee45b3f 100644 --- a/internal/ceres/invert_psd_matrix.h +++ b/internal/ceres/invert_psd_matrix.h @@ -60,11 +60,12 @@ typename EigenTypes::Matrix InvertPSDMatrix( // // https://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html#title3 if (assume_full_rank) { - if (kSize > 0 && kSize < 5) { + if constexpr (kSize > 0 && kSize < 5) { return m.inverse(); + } else { + return m.template selfadjointView().llt().solve( + MType::Identity(size, size)); } - return m.template selfadjointView().llt().solve( - MType::Identity(size, size)); } // For a thin SVD the number of columns of the matrix need to be dynamic.