diff options
author | 2014-10-22 10:42:18 +0300 | |
---|---|---|
committer | 2014-10-22 10:42:18 +0300 | |
commit | fcb3573d17826e0aabffea04c1ba816ec1448581 (patch) | |
tree | 88a1f83762619bb1d23f1369b7dc30112afd0838 /test/packetmath.cpp | |
parent | fae4fd7a26ee31fbf1eaa5d3581916ccee3c004f (diff) | |
parent | cf09c5f687c171d2e8b760358a4d48da1c010ce0 (diff) |
Merged eigen/eigen into default
Diffstat (limited to 'test/packetmath.cpp')
-rw-r--r-- | test/packetmath.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/test/packetmath.cpp b/test/packetmath.cpp index e716d6d9a..ee0502f69 100644 --- a/test/packetmath.cpp +++ b/test/packetmath.cpp @@ -297,6 +297,12 @@ template<typename Scalar> void packetmath_real() data2[i] = internal::random<Scalar>(-87,88); } CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasExp, std::exp, internal::pexp); + { + data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); + packet_helper<internal::packet_traits<Scalar>::HasExp,Packet> h; + h.store(data2, internal::pexp(h.load(data1))); + VERIFY(isNaN(data2[0])); + } for (int i=0; i<size; ++i) { @@ -305,8 +311,22 @@ template<typename Scalar> void packetmath_real() } if(internal::random<float>(0,1)<0.1) data1[internal::random<int>(0, PacketSize)] = 0; - CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasLog, std::log, internal::plog); CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasSqrt, std::sqrt, internal::psqrt); + CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasLog, std::log, internal::plog); + { + data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); + packet_helper<internal::packet_traits<Scalar>::HasLog,Packet> h; + h.store(data2, internal::plog(h.load(data1))); + VERIFY(isNaN(data2[0])); + data1[0] = -1.0f; + h.store(data2, internal::plog(h.load(data1))); + VERIFY(isNaN(data2[0])); +#if !EIGEN_FAST_MATH + h.store(data2, internal::psqrt(h.load(data1))); + VERIFY(isNaN(data2[0])); + VERIFY(isNaN(data2[1])); +#endif + } } template<typename Scalar> void packetmath_notcomplex() |