diff --git a/include/core/math/covariance.h b/include/core/math/covariance.h
index 4721c3def15ec0f5cdf8371387daf989402dcc12..45cbdf3e1366fab06820ca54fad65cfa7e3af5fd 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;
 }