diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-04-07 23:28:04 -0700 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-04-07 23:28:04 -0700 |
commit | 3bd16457e14a79f0293e5cec29e22f7c62a3a359 (patch) | |
tree | 4e65598fd832ed44923794d69de52729cc2acb51 /Eigen/src/Cholesky/LDLT.h | |
parent | 63102ee43d3f0507b75a95a3b8ee6ced92316322 (diff) |
Properly handle complex numbers.
Diffstat (limited to 'Eigen/src/Cholesky/LDLT.h')
-rw-r--r-- | Eigen/src/Cholesky/LDLT.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Eigen/src/Cholesky/LDLT.h b/Eigen/src/Cholesky/LDLT.h index bd4902987..1d767d5c8 100644 --- a/Eigen/src/Cholesky/LDLT.h +++ b/Eigen/src/Cholesky/LDLT.h @@ -266,8 +266,8 @@ template<> struct ldlt_inplace<Lower> if (size <= 1) { transpositions.setIdentity(); - if (numext::real(mat.coeff(0,0)) > static_cast<Scalar>(0) ) sign = PositiveSemiDef; - else if (numext::real(mat.coeff(0,0)) < static_cast<Scalar>(0)) sign = NegativeSemiDef; + if (numext::real(mat.coeff(0,0)) > static_cast<RealScalar>(0) ) sign = PositiveSemiDef; + else if (numext::real(mat.coeff(0,0)) < static_cast<RealScalar>(0)) sign = NegativeSemiDef; else sign = ZeroSign; return true; } @@ -324,12 +324,12 @@ template<> struct ldlt_inplace<Lower> A21 /= realAkk; if (sign == PositiveSemiDef) { - if (realAkk < static_cast<Scalar>(0)) sign = Indefinite; + if (realAkk < static_cast<RealScalar>(0)) sign = Indefinite; } else if (sign == NegativeSemiDef) { - if (realAkk > static_cast<Scalar>(0)) sign = Indefinite; + if (realAkk > static_cast<RealScalar>(0)) sign = Indefinite; } else if (sign == ZeroSign) { - if (realAkk > static_cast<Scalar>(0)) sign = PositiveSemiDef; - else if (realAkk < static_cast<Scalar>(0)) sign = NegativeSemiDef; + if (realAkk > static_cast<RealScalar>(0)) sign = PositiveSemiDef; + else if (realAkk < static_cast<RealScalar>(0)) sign = NegativeSemiDef; } } |