diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-04-14 10:25:50 -0700 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-04-14 10:25:50 -0700 |
commit | 7b3d7acebeadb443d8e3ac9756359d507324cc82 (patch) | |
tree | ecbf644fb1a61dc3e67aef57e2fa09b77c3d4916 /test/main.h | |
parent | 5c13765ee333bb78b5c7baeb515eed97c59b6c1d (diff) |
Added support for fp16 to test_isApprox, test_isMuchSmallerThan, and test_isApproxOrLessThan
Diffstat (limited to 'test/main.h')
-rw-r--r-- | test/main.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/test/main.h b/test/main.h index bba5e7570..dbb496b89 100644 --- a/test/main.h +++ b/test/main.h @@ -316,9 +316,9 @@ inline bool test_isMuchSmallerThan(const float& a, const float& b) { return internal::isMuchSmallerThan(a, b, test_precision<float>()); } inline bool test_isApproxOrLessThan(const float& a, const float& b) { return internal::isApproxOrLessThan(a, b, test_precision<float>()); } + inline bool test_isApprox(const double& a, const double& b) { return internal::isApprox(a, b, test_precision<double>()); } - inline bool test_isMuchSmallerThan(const double& a, const double& b) { return internal::isMuchSmallerThan(a, b, test_precision<double>()); } inline bool test_isApproxOrLessThan(const double& a, const double& b) @@ -359,6 +359,12 @@ inline bool test_isApproxOrLessThan(const long double& a, const long double& b) { return internal::isApproxOrLessThan(a, b, test_precision<long double>()); } #endif // EIGEN_TEST_NO_LONGDOUBLE +inline bool test_isApprox(const half& a, const half& b) +{ return internal::isApprox(a, b, test_precision<half>()); } +inline bool test_isMuchSmallerThan(const half& a, const half& b) +{ return internal::isMuchSmallerThan(a, b, test_precision<half>()); } +inline bool test_isApproxOrLessThan(const half& a, const half& b) +{ return internal::isApproxOrLessThan(a, b, test_precision<half>()); } // test_relative_error returns the relative difference between a and b as a real scalar as used in isApprox. template<typename T1,typename T2> @@ -426,9 +432,7 @@ template<typename T1,typename T2> typename NumTraits<T1>::Real test_relative_error(const T1 &a, const T2 &b, typename internal::enable_if<internal::is_arithmetic<typename NumTraits<T1>::Real>::value, T1>::type* = 0) { typedef typename NumTraits<T1>::Real RealScalar; - using std::min; - using std::sqrt; - return sqrt(RealScalar(numext::abs2(a-b))/RealScalar((min)(numext::abs2(a),numext::abs2(b)))); + return numext::sqrt(RealScalar(numext::abs2(a-b))/RealScalar((numext::mini)(numext::abs2(a),numext::abs2(b)))); } template<typename T> |