bug #1520: workaround some -Wfloat-equal warnings by calling std::equal_to

This commit is contained in:
Gael Guennebaud
2018-04-11 15:24:13 +02:00
parent b0eda3cb9f
commit e43ca0320d
3 changed files with 25 additions and 5 deletions

View File

@@ -473,11 +473,11 @@ namespace std_fallback {
EIGEN_USING_STD_MATH(exp);
Scalar u = exp(x);
if (u == Scalar(1)) {
if (numext::equal_strict(u, Scalar(1))) {
return x;
}
Scalar um1 = u - RealScalar(1);
if (um1 == Scalar(-1)) {
if (numext::equal_strict(um1, Scalar(-1))) {
return RealScalar(-1);
}
@@ -519,7 +519,7 @@ namespace std_fallback {
typedef typename NumTraits<Scalar>::Real RealScalar;
EIGEN_USING_STD_MATH(log);
Scalar x1p = RealScalar(1) + x;
return ( x1p == Scalar(1) ) ? x : x * ( log(x1p) / (x1p - RealScalar(1)) );
return numext::equal_strict(x1p, Scalar(1)) ? x : x * ( log(x1p) / (x1p - RealScalar(1)) );
}
}