aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Joel Holdsworth <joel@airwebreathe.org.uk>2020-03-19 17:45:20 +0000
committerGravatar Rasmus Munk Larsen <rmlarsen@google.com>2020-03-19 17:45:20 +0000
commitd5c665742beb8dc00ce0f6eab633f719a9218e03 (patch)
tree2cea4f868303064d37e9321c810cd07c0fcfceac /test
parent6ff5a14091151ce0d722878de93b57025976facb (diff)
Add absolute_difference coefficient-wise binary Array function
Diffstat (limited to 'test')
-rw-r--r--test/array_cwise.cpp1
-rw-r--r--test/packetmath.cpp2
2 files changed, 3 insertions, 0 deletions
diff --git a/test/array_cwise.cpp b/test/array_cwise.cpp
index 76fc83c33..e7af1a92f 100644
--- a/test/array_cwise.cpp
+++ b/test/array_cwise.cpp
@@ -343,6 +343,7 @@ template<typename ArrayType> void array_real(const ArrayType& m)
VERIFY_IS_APPROX(inverse(inverse(m1)),m1);
VERIFY((abs(m1) == m1 || abs(m1) == -m1).all());
VERIFY_IS_APPROX(m3, sqrt(abs2(m1)));
+ VERIFY_IS_APPROX(m1.absolute_difference(m2), (m1 > m2).select(m1 - m2, m2 - m1));
VERIFY_IS_APPROX( m1.sign(), -(-m1).sign() );
VERIFY_IS_APPROX( m1*m1.sign(),m1.abs());
VERIFY_IS_APPROX(m1.sign() * m1.abs(), m1);
diff --git a/test/packetmath.cpp b/test/packetmath.cpp
index 3548eb481..1ba15496b 100644
--- a/test/packetmath.cpp
+++ b/test/packetmath.cpp
@@ -14,6 +14,7 @@
#define REF_SUB(a,b) ((a)-(b))
#define REF_MUL(a,b) ((a)*(b))
#define REF_DIV(a,b) ((a)/(b))
+#define REF_ABS_DIFF(a,b) ((a)>(b)?(a)-(b):(b)-(a))
template<typename Scalar,typename Packet> void packetmath()
{
@@ -557,6 +558,7 @@ template<typename Scalar,typename Packet> void packetmath_notcomplex()
CHECK_CWISE2_IF(PacketTraits::HasMin, (std::min), internal::pmin);
CHECK_CWISE2_IF(PacketTraits::HasMax, (std::max), internal::pmax);
CHECK_CWISE1(numext::abs, internal::pabs);
+ CHECK_CWISE2_IF(PacketTraits::HasAbsDiff, REF_ABS_DIFF, internal::pabsdiff);
ref[0] = data1[0];
for (int i=0; i<PacketSize; ++i)