diff options
author | Gael Guennebaud <g.gael@free.fr> | 2013-06-14 10:55:05 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2013-06-14 10:55:05 +0200 |
commit | 9f11f80db1b53d0f9b9173a777c0a644e763619a (patch) | |
tree | 6b9143de8e621b781b9e3868dcf1d584274e1225 /Eigen/src/Core/arch/SSE/MathFunctions.h | |
parent | 5f178e54e9341c2c1d558b7755c71d59277c02a4 (diff) |
Make psqrt works with numeric_limits<float>::min
Diffstat (limited to 'Eigen/src/Core/arch/SSE/MathFunctions.h')
-rw-r--r-- | Eigen/src/Core/arch/SSE/MathFunctions.h | 2 |
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 1d1a98a9d..3376a984e 100644 --- a/Eigen/src/Core/arch/SSE/MathFunctions.h +++ b/Eigen/src/Core/arch/SSE/MathFunctions.h @@ -450,7 +450,7 @@ Packet4f psqrt<Packet4f>(const Packet4f& _x) Packet4f half = pmul(_x, pset1<Packet4f>(.5f)); /* select only the inverse sqrt of non-zero inputs */ - Packet4f non_zero_mask = _mm_cmpgt_ps(_x, pset1<Packet4f>((std::numeric_limits<float>::min)())); + Packet4f non_zero_mask = _mm_cmpge_ps(_x, pset1<Packet4f>((std::numeric_limits<float>::min)())); Packet4f x = _mm_and_ps(non_zero_mask, _mm_rsqrt_ps(_x)); x = pmul(x, psub(pset1<Packet4f>(1.5f), pmul(half, pmul(x,x)))); |