diff --git a/Eigen/src/Cholesky/LLT.h b/Eigen/src/Cholesky/LLT.h index b7bf58e63..ffee76012 100644 --- a/Eigen/src/Cholesky/LLT.h +++ b/Eigen/src/Cholesky/LLT.h @@ -132,7 +132,8 @@ void LLT::compute(const MatrixType& a) m_isInitialized = true; return; } - m_matrix.col(0).end(size-1) = a.row(0).end(size-1).adjoint() / ei_real(m_matrix.coeff(0,0)); + if(ei_real(m_matrix.coeff(0,0))>0) + m_matrix.col(0).end(size-1) = a.row(0).end(size-1).adjoint() / ei_real(m_matrix.coeff(0,0)); for (int j = 1; j < size; ++j) { x = ei_real(a.coeff(j,j)) - m_matrix.row(j).start(j).squaredNorm();