From ddf775363147fc7ee778b42c21b642f085193f55 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Thu, 1 Aug 2013 16:26:57 +0200 Subject: Add nvcc support for small eigenvalues decompositions and workaround lack of support for std::swap and std::numeric_limits --- Eigen/src/Core/NumTraits.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'Eigen/src/Core/NumTraits.h') diff --git a/Eigen/src/Core/NumTraits.h b/Eigen/src/Core/NumTraits.h index eb5306bf2..2b6633c9c 100644 --- a/Eigen/src/Core/NumTraits.h +++ b/Eigen/src/Core/NumTraits.h @@ -68,16 +68,22 @@ template struct GenericNumTraits >::type NonInteger; typedef T Nested; - static inline Real epsilon() { return std::numeric_limits::epsilon(); } + EIGEN_DEVICE_FUNC + static inline Real epsilon() + { + #if defined(__CUDA_ARCH__) + return internal::device::numeric_limits::epsilon(); + #else + return std::numeric_limits::epsilon(); + #endif + } EIGEN_DEVICE_FUNC static inline Real dummy_precision() { // make sure to override this for floating-point types return Real(0); } - EIGEN_DEVICE_FUNC static inline T highest() { return (std::numeric_limits::max)(); } - EIGEN_DEVICE_FUNC static inline T lowest() { return IsInteger ? (std::numeric_limits::min)() : (-(std::numeric_limits::max)()); } #ifdef EIGEN2_SUPPORT -- cgit v1.2.3