aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/main.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2017-01-05 13:36:08 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2017-01-05 13:36:08 +0100
commitf3f026c9aacfc3ad28c54b4f5287b7b58e62d8ac (patch)
tree04f7b3894affb37ccdf8a7c572d1e6e9876b5b15 /test/main.h
parent2299717fd5a25ce645c4add41ab4e04a59ca590b (diff)
Convert integers to real numbers when computing relative L2 error
Diffstat (limited to 'test/main.h')
-rw-r--r--test/main.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/test/main.h b/test/main.h
index ea27b9715..1d5bdc1c4 100644
--- a/test/main.h
+++ b/test/main.h
@@ -372,10 +372,10 @@ inline bool test_isApproxOrLessThan(const half& a, const half& b)
// test_relative_error returns the relative difference between a and b as a real scalar as used in isApprox.
template<typename T1,typename T2>
-typename T1::RealScalar test_relative_error(const EigenBase<T1> &a, const EigenBase<T2> &b)
+typename NumTraits<typename T1::RealScalar>::NonInteger test_relative_error(const EigenBase<T1> &a, const EigenBase<T2> &b)
{
using std::sqrt;
- typedef typename T1::RealScalar RealScalar;
+ typedef typename NumTraits<typename T1::RealScalar>::NonInteger RealScalar;
typename internal::nested_eval<T1,2>::type ea(a.derived());
typename internal::nested_eval<T2,2>::type eb(b.derived());
return sqrt(RealScalar((ea-eb).cwiseAbs2().sum()) / RealScalar((std::min)(eb.cwiseAbs2().sum(),ea.cwiseAbs2().sum())));
@@ -433,9 +433,9 @@ typename T1::RealScalar test_relative_error(const SparseMatrixBase<T1> &a, const
}
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)
+typename NumTraits<typename NumTraits<T1>::Real>::NonInteger 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;
+ typedef typename NumTraits<typename NumTraits<T1>::Real>::NonInteger RealScalar;
return numext::sqrt(RealScalar(numext::abs2(a-b))/RealScalar((numext::mini)(numext::abs2(a),numext::abs2(b))));
}