aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Cholesky/LDLT.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-03-12 16:24:25 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-03-12 16:24:25 +0100
commit74b1d79d779fbd9fb5bc5df60ad318c012451da7 (patch)
tree71023286c86b9542dec0189cab0a7a2ca6935a91 /Eigen/src/Cholesky/LDLT.h
parent0b362e0c9ab1670e73fc8ae951d765f686342882 (diff)
parent2379ccffcb8f1af10f8ed91353d5cb8b3a9a7847 (diff)
merge default and evaluator branches
Diffstat (limited to 'Eigen/src/Cholesky/LDLT.h')
-rw-r--r--Eigen/src/Cholesky/LDLT.h8
1 files changed, 1 insertions, 7 deletions
diff --git a/Eigen/src/Cholesky/LDLT.h b/Eigen/src/Cholesky/LDLT.h
index c5ae2c87e..d66110821 100644
--- a/Eigen/src/Cholesky/LDLT.h
+++ b/Eigen/src/Cholesky/LDLT.h
@@ -309,13 +309,6 @@ template<> struct ldlt_inplace<Lower>
cutoff = abs(NumTraits<Scalar>::epsilon() * biggest_in_corner);
}
- // Finish early if the matrix is not full rank.
- if(biggest_in_corner < cutoff)
- {
- for(Index i = k; i < size; i++) transpositions.coeffRef(i) = i;
- break;
- }
-
transpositions.coeffRef(k) = index_of_biggest_in_corner;
if(k != index_of_biggest_in_corner)
{
@@ -351,6 +344,7 @@ template<> struct ldlt_inplace<Lower>
if(rs>0)
A21.noalias() -= A20 * temp.head(k);
}
+
if((rs>0) && (abs(mat.coeffRef(k,k)) > cutoff))
A21 /= mat.coeffRef(k,k);