mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-13 01:43:13 +08:00
CUDA support: define more accurate min/max values for device::numeric_limits of float and double using values from cfloat header
This commit is contained in:
parent
28ddb5158d
commit
6759a21e49
@ -11,6 +11,10 @@
|
|||||||
#ifndef EIGEN_META_H
|
#ifndef EIGEN_META_H
|
||||||
#define EIGEN_META_H
|
#define EIGEN_META_H
|
||||||
|
|
||||||
|
#if defined(__CUDA_ARCH__)
|
||||||
|
#include <cfloat>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
namespace internal {
|
namespace internal {
|
||||||
@ -138,16 +142,16 @@ template<> struct numeric_limits<float>
|
|||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static float (max)() { return CUDART_MAX_NORMAL_F; }
|
static float (max)() { return CUDART_MAX_NORMAL_F; }
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static float (min)() { return __FLT_EPSILON__; }
|
static float (min)() { return FLT_MIN; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<double>
|
template<> struct numeric_limits<double>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static double epsilon() { return __DBL_EPSILON__; }
|
static double epsilon() { return __DBL_EPSILON__; }
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static double (max)() { return CUDART_INF; }
|
static double (max)() { return DBL_MAX; }
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static double (min)() { return __DBL_EPSILON__; }
|
static double (min)() { return DBL_MIN; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<int>
|
template<> struct numeric_limits<int>
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user