mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-24 14:45:14 +08:00
Merged in parthaEth/eigen (pull request PR-175)
Static casting scalar types so as to let chlesky module of eigen work with ceres
This commit is contained in:
commit
2f2801f096
@ -266,8 +266,8 @@ template<> struct ldlt_inplace<Lower>
|
|||||||
if (size <= 1)
|
if (size <= 1)
|
||||||
{
|
{
|
||||||
transpositions.setIdentity();
|
transpositions.setIdentity();
|
||||||
if (numext::real(mat.coeff(0,0)) > 0) sign = PositiveSemiDef;
|
if (numext::real(mat.coeff(0,0)) > static_cast<Scalar>(0) ) sign = PositiveSemiDef;
|
||||||
else if (numext::real(mat.coeff(0,0)) < 0) sign = NegativeSemiDef;
|
else if (numext::real(mat.coeff(0,0)) < static_cast<Scalar>(0)) sign = NegativeSemiDef;
|
||||||
else sign = ZeroSign;
|
else sign = ZeroSign;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -324,12 +324,12 @@ template<> struct ldlt_inplace<Lower>
|
|||||||
A21 /= realAkk;
|
A21 /= realAkk;
|
||||||
|
|
||||||
if (sign == PositiveSemiDef) {
|
if (sign == PositiveSemiDef) {
|
||||||
if (realAkk < 0) sign = Indefinite;
|
if (realAkk < static_cast<Scalar>(0)) sign = Indefinite;
|
||||||
} else if (sign == NegativeSemiDef) {
|
} else if (sign == NegativeSemiDef) {
|
||||||
if (realAkk > 0) sign = Indefinite;
|
if (realAkk > static_cast<Scalar>(0)) sign = Indefinite;
|
||||||
} else if (sign == ZeroSign) {
|
} else if (sign == ZeroSign) {
|
||||||
if (realAkk > 0) sign = PositiveSemiDef;
|
if (realAkk > static_cast<Scalar>(0)) sign = PositiveSemiDef;
|
||||||
else if (realAkk < 0) sign = NegativeSemiDef;
|
else if (realAkk < static_cast<Scalar>(0)) sign = NegativeSemiDef;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user