From e1fa6c08c1d242b6772c9252b4a59a6c27eed357 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu>
Date: Wed, 17 Jun 2020 12:13:21 +0200
Subject: [PATCH] not computing eigenvectors to check posdef

---
 include/core/math/covariance.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/core/math/covariance.h b/include/core/math/covariance.h
index 4721c3def..45cbdf3e1 100644
--- a/include/core/math/covariance.h
+++ b/include/core/math/covariance.h
@@ -22,13 +22,15 @@ inline bool isSymmetric(const Eigen::Matrix<T, N, N, RC>& M,
 template <typename T, int N, int RC>
 inline bool isPositiveSemiDefinite(const Eigen::Matrix<T, N, N, RC>& M, const T& eps = Constants::EPS)
 {
-  Eigen::SelfAdjointEigenSolver<Eigen::Matrix<T, N, N, RC> > eigensolver(M);
+  Eigen::SelfAdjointEigenSolver<Eigen::Matrix<T, N, N, RC> > eigensolver(M, Eigen::EigenvaluesOnly);
 
   if (eigensolver.info() == Eigen::Success)
   {
     // All eigenvalues must be >= 0:
     return (eigensolver.eigenvalues().array() >= eps).all();
   }
+  else
+      std::cout << "eigen decomposition failed" << std::endl;
 
   return false;
 }
-- 
GitLab