aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/packetmath.cpp
diff options
context:
space:
mode:
authorGravatar Srinivas Vasudevan <srvasude@google.com>2019-09-03 15:34:47 -0400
committerGravatar Srinivas Vasudevan <srvasude@google.com>2019-09-03 15:34:47 -0400
commit99036a3615a57315564ab86f1d8754bc6d77c8f3 (patch)
treeef0a22c09ac900224ce2243561b019c66752f372 /test/packetmath.cpp
parent18ceb3413d09afc4f143014f89552f941321209b (diff)
parenta8d264fa9c56e42f77e2129d4e504f5c854821c2 (diff)
Merging from eigen/eigen.
Diffstat (limited to 'test/packetmath.cpp')
-rw-r--r--test/packetmath.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/test/packetmath.cpp b/test/packetmath.cpp
index d65869de7..0e1e50e21 100644
--- a/test/packetmath.cpp
+++ b/test/packetmath.cpp
@@ -610,11 +610,15 @@ template<typename Scalar,typename Packet> void packetmath_real()
CHECK_CWISE1_IF(PacketTraits::HasSqrt, Scalar(1)/std::sqrt, internal::prsqrt);
CHECK_CWISE1_IF(PacketTraits::HasLog, std::log, internal::plog);
#if EIGEN_HAS_C99_MATH && (__cplusplus > 199711L)
- CHECK_CWISE1_IF(PacketTraits::HasExpm1, std::expm1, internal::pexpm1);
- CHECK_CWISE1_IF(PacketTraits::HasLog1p, std::log1p, internal::plog1p);
CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasLGamma, std::lgamma, internal::plgamma);
CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasErf, std::erf, internal::perf);
CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasErfc, std::erfc, internal::perfc);
+ data1[0] = std::numeric_limits<Scalar>::infinity();
+ data1[1] = Scalar(-1);
+ CHECK_CWISE1_IF(PacketTraits::HasLog1p, std::log1p, internal::plog1p);
+ data1[0] = std::numeric_limits<Scalar>::infinity();
+ data1[1] = -std::numeric_limits<Scalar>::infinity();
+ CHECK_CWISE1_IF(PacketTraits::HasExpm1, std::expm1, internal::pexpm1);
#endif
if(PacketSize>=2)
@@ -654,6 +658,14 @@ template<typename Scalar,typename Packet> void packetmath_real()
h.store(data2, internal::plog(h.load(data1)));
VERIFY((numext::isinf)(data2[0]));
}
+ if(PacketTraits::HasLog1p) {
+ packet_helper<PacketTraits::HasLog1p,Packet> h;
+ data1[0] = Scalar(-2);
+ data1[1] = -std::numeric_limits<Scalar>::infinity();
+ h.store(data2, internal::plog1p(h.load(data1)));
+ VERIFY((numext::isnan)(data2[0]));
+ VERIFY((numext::isnan)(data2[1]));
+ }
if(PacketTraits::HasSqrt)
{
packet_helper<PacketTraits::HasSqrt,Packet> h;