actually, this is not even meant to be a termination criterion. so the proper fix is this.

This commit is contained in:
Benoit Jacob 2010-02-23 16:10:26 -05:00
parent 3d066f4bc7
commit 60325b8330

View File

@ -240,14 +240,10 @@ LDLT<MatrixType>& LDLT<MatrixType>::compute(const MatrixType& a)
m_matrix.row(j).tail(endSize) = m_matrix.row(j).tail(endSize).conjugate()
- _temporary.tail(endSize).transpose();
// Finish early if the matrix is not full rank.
if(ei_abs(Djj) < cutoff)
if(ei_abs(Djj) > cutoff)
{
for(int i = j; i < size; i++) m_transpositions.coeffRef(i) = i;
break;
m_matrix.col(j).tail(endSize) = m_matrix.row(j).tail(endSize) / Djj;
}
m_matrix.col(j).tail(endSize) = m_matrix.row(j).tail(endSize) / Djj;
}
}