aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/arch/SSE/MathFunctions.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-10-20 11:38:51 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-10-20 11:38:51 +0200
commitaa5f79206fb632d141c3555338f89f59d1bb4633 (patch)
treea16506f4dcb277c129301dac1a8408cba1136a1d /Eigen/src/Core/arch/SSE/MathFunctions.h
parentb4a9b3f4960657bf2fc156ba5c25a3a32417b861 (diff)
Fix bug #859: pexp(NaN) returned Inf instead of NaN
Diffstat (limited to 'Eigen/src/Core/arch/SSE/MathFunctions.h')
-rw-r--r--Eigen/src/Core/arch/SSE/MathFunctions.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/Eigen/src/Core/arch/SSE/MathFunctions.h b/Eigen/src/Core/arch/SSE/MathFunctions.h
index 8f78b3a6c..b549e4870 100644
--- a/Eigen/src/Core/arch/SSE/MathFunctions.h
+++ b/Eigen/src/Core/arch/SSE/MathFunctions.h
@@ -167,7 +167,7 @@ Packet4f pexp<Packet4f>(const Packet4f& _x)
emm0 = _mm_cvttps_epi32(fx);
emm0 = _mm_add_epi32(emm0, p4i_0x7f);
emm0 = _mm_slli_epi32(emm0, 23);
- return pmul(y, Packet4f(_mm_castsi128_ps(emm0)));
+ return pmax(pmul(y, Packet4f(_mm_castsi128_ps(emm0))), _x);
}
template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
Packet2d pexp<Packet2d>(const Packet2d& _x)