diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h index af02d0247..7a6b999af 100644 --- a/Eigen/src/Core/MathFunctions.h +++ b/Eigen/src/Core/MathFunctions.h @@ -13,8 +13,6 @@ // source: http://www.geom.uiuc.edu/~huberty/math5337/groupe/digits.html // TODO this should better be moved to NumTraits #define EIGEN_PI 3.141592653589793238462643383279502884197169399375105820974944592307816406L -#define EIGEN_LN2 0.69314718055994530941723212145817656807550013436024425412068001L - namespace Eigen { @@ -499,10 +497,11 @@ namespace std_fallback { EIGEN_USING_STD_MATH(exp); Scalar u = exp(x); - if (u == RealScalar(1)) { + if (u == Scalar(1)) { return x; } - if (u - RealScalar(1) == RealScalar(-1)) { + Scalar um1 = u - RealScalar(1); + if (um1 == Scalar(-1)) { return RealScalar(-1); } diff --git a/Eigen/src/Core/arch/CUDA/MathFunctions.h b/Eigen/src/Core/arch/CUDA/MathFunctions.h index 3548f2fa2..987a5291c 100644 --- a/Eigen/src/Core/arch/CUDA/MathFunctions.h +++ b/Eigen/src/Core/arch/CUDA/MathFunctions.h @@ -57,15 +57,14 @@ double2 pexp(const double2& a) } template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE -float4 pexp(const float4& a) +float4 pexpm1(const float4& a) { return make_float4(expm1f(a.x), expm1f(a.y), expm1f(a.z), expm1f(a.w)); } template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE -double2 pexp(const double2& a) +double2 pexpm1(const double2& a) { - using ::expm1; return make_double2(expm1(a.x), expm1(a.y)); }