From 8878e1c1de73bddbcbd5d801d647ae6dcbc4e778 Mon Sep 17 00:00:00 2001 From: Deanna Hood Date: Tue, 17 Mar 2015 22:39:51 +1000 Subject: Remove ambiguity with recent numext methods isNaN and isInf --- test/main.h | 7 +------ test/packetmath.cpp | 10 +++++----- test/stable_norm.cpp | 40 ++++++++++++++++++++-------------------- 3 files changed, 26 insertions(+), 31 deletions(-) diff --git a/test/main.h b/test/main.h index ecf0c6924..5849cedd9 100644 --- a/test/main.h +++ b/test/main.h @@ -442,12 +442,7 @@ template bool isNotNaN(const T& x) return x==x; } -template bool isNaN(const T& x) -{ - return x!=x; -} - -template bool isInf(const T& x) +template bool isPlusInf(const T& x) { return x > NumTraits::highest(); } diff --git a/test/packetmath.cpp b/test/packetmath.cpp index 49f601907..e3a754627 100644 --- a/test/packetmath.cpp +++ b/test/packetmath.cpp @@ -317,7 +317,7 @@ template void packetmath_real() data1[0] = std::numeric_limits::quiet_NaN(); packet_helper::HasExp,Packet> h; h.store(data2, internal::pexp(h.load(data1))); - VERIFY(isNaN(data2[0])); + VERIFY(numext::isNaN(data2[0])); } for (int i=0; i void packetmath_real() data1[0] = std::numeric_limits::quiet_NaN(); packet_helper::HasLog,Packet> h; h.store(data2, internal::plog(h.load(data1))); - VERIFY(isNaN(data2[0])); + VERIFY(numext::isNaN(data2[0])); data1[0] = -1.0f; h.store(data2, internal::plog(h.load(data1))); - VERIFY(isNaN(data2[0])); + VERIFY(numext::isNaN(data2[0])); #if !EIGEN_FAST_MATH h.store(data2, internal::psqrt(h.load(data1))); - VERIFY(isNaN(data2[0])); - VERIFY(isNaN(data2[1])); + VERIFY(numext::isNaN(data2[0])); + VERIFY(numext::isNaN(data2[1])); #endif } } diff --git a/test/stable_norm.cpp b/test/stable_norm.cpp index 650f62a8a..0674006de 100644 --- a/test/stable_norm.cpp +++ b/test/stable_norm.cpp @@ -111,33 +111,33 @@ template void stable_norm(const MatrixType& m) { v = vrand; v(i,j) = std::numeric_limits::quiet_NaN(); - VERIFY(!isFinite(v.squaredNorm())); VERIFY(isNaN(v.squaredNorm())); - VERIFY(!isFinite(v.norm())); VERIFY(isNaN(v.norm())); - VERIFY(!isFinite(v.stableNorm())); VERIFY(isNaN(v.stableNorm())); - VERIFY(!isFinite(v.blueNorm())); VERIFY(isNaN(v.blueNorm())); - VERIFY(!isFinite(v.hypotNorm())); VERIFY(isNaN(v.hypotNorm())); + VERIFY(!isFinite(v.squaredNorm())); VERIFY(numext::isNaN(v.squaredNorm())); + VERIFY(!isFinite(v.norm())); VERIFY(numext::isNaN(v.norm())); + VERIFY(!isFinite(v.stableNorm())); VERIFY(numext::isNaN(v.stableNorm())); + VERIFY(!isFinite(v.blueNorm())); VERIFY(numext::isNaN(v.blueNorm())); + VERIFY(!isFinite(v.hypotNorm())); VERIFY(numext::isNaN(v.hypotNorm())); } // +inf { v = vrand; v(i,j) = std::numeric_limits::infinity(); - VERIFY(!isFinite(v.squaredNorm())); VERIFY(isInf(v.squaredNorm())); - VERIFY(!isFinite(v.norm())); VERIFY(isInf(v.norm())); - VERIFY(!isFinite(v.stableNorm())); VERIFY(isInf(v.stableNorm())); - VERIFY(!isFinite(v.blueNorm())); VERIFY(isInf(v.blueNorm())); - VERIFY(!isFinite(v.hypotNorm())); VERIFY(isInf(v.hypotNorm())); + VERIFY(!isFinite(v.squaredNorm())); VERIFY(isPlusInf(v.squaredNorm())); + VERIFY(!isFinite(v.norm())); VERIFY(isPlusInf(v.norm())); + VERIFY(!isFinite(v.stableNorm())); VERIFY(isPlusInf(v.stableNorm())); + VERIFY(!isFinite(v.blueNorm())); VERIFY(isPlusInf(v.blueNorm())); + VERIFY(!isFinite(v.hypotNorm())); VERIFY(isPlusInf(v.hypotNorm())); } // -inf { v = vrand; v(i,j) = -std::numeric_limits::infinity(); - VERIFY(!isFinite(v.squaredNorm())); VERIFY(isInf(v.squaredNorm())); - VERIFY(!isFinite(v.norm())); VERIFY(isInf(v.norm())); - VERIFY(!isFinite(v.stableNorm())); VERIFY(isInf(v.stableNorm())); - VERIFY(!isFinite(v.blueNorm())); VERIFY(isInf(v.blueNorm())); - VERIFY(!isFinite(v.hypotNorm())); VERIFY(isInf(v.hypotNorm())); + VERIFY(!isFinite(v.squaredNorm())); VERIFY(isPlusInf(v.squaredNorm())); + VERIFY(!isFinite(v.norm())); VERIFY(isPlusInf(v.norm())); + VERIFY(!isFinite(v.stableNorm())); VERIFY(isPlusInf(v.stableNorm())); + VERIFY(!isFinite(v.blueNorm())); VERIFY(isPlusInf(v.blueNorm())); + VERIFY(!isFinite(v.hypotNorm())); VERIFY(isPlusInf(v.hypotNorm())); } // mix @@ -147,11 +147,11 @@ template void stable_norm(const MatrixType& m) v = vrand; v(i,j) = -std::numeric_limits::infinity(); v(i2,j2) = std::numeric_limits::quiet_NaN(); - VERIFY(!isFinite(v.squaredNorm())); VERIFY(isNaN(v.squaredNorm())); - VERIFY(!isFinite(v.norm())); VERIFY(isNaN(v.norm())); - VERIFY(!isFinite(v.stableNorm())); VERIFY(isNaN(v.stableNorm())); - VERIFY(!isFinite(v.blueNorm())); VERIFY(isNaN(v.blueNorm())); - VERIFY(!isFinite(v.hypotNorm())); VERIFY(isNaN(v.hypotNorm())); + VERIFY(!isFinite(v.squaredNorm())); VERIFY(numext::isNaN(v.squaredNorm())); + VERIFY(!isFinite(v.norm())); VERIFY(numext::isNaN(v.norm())); + VERIFY(!isFinite(v.stableNorm())); VERIFY(numext::isNaN(v.stableNorm())); + VERIFY(!isFinite(v.blueNorm())); VERIFY(numext::isNaN(v.blueNorm())); + VERIFY(!isFinite(v.hypotNorm())); VERIFY(numext::isNaN(v.hypotNorm())); } } -- cgit v1.2.3