| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef _CUDA_CLIMITS |
| | #define _CUDA_CLIMITS |
| |
|
| | #ifndef __CUDACC_RTC__ |
| | #include <climits> |
| | #include <limits.h> |
| | #include <cstdint> |
| | #else |
| | #define CHAR_BIT 8 |
| |
|
| | #define SCHAR_MIN (-128) |
| | #define SCHAR_MAX 127 |
| | #define UCHAR_MAX 255 |
| | #define __CHAR_UNSIGNED__ ('\xff' > 0) |
| | #if __CHAR_UNSIGNED__ |
| | #define CHAR_MIN 0 |
| | #define CHAR_MAX UCHAR_MAX |
| | #else |
| | #define CHAR_MIN SCHAR_MIN |
| | #define CHAR_MAX SCHAR_MAX |
| | #endif |
| | #define SHRT_MIN (-SHRT_MAX - 1) |
| | #define SHRT_MAX 0x7fff |
| | #define USHRT_MAX 0xffff |
| | #define INT_MIN (-INT_MAX - 1) |
| | #define INT_MAX 0x7fffffff |
| | #define UINT_MAX 0xffffffff |
| | #define LONG_MIN (-LONG_MAX - 1) |
| | #ifdef __LP64__ |
| | #define LONG_MAX LLONG_MAX |
| | #define ULONG_MAX ULLONG_MAX |
| | #else |
| | #define LONG_MAX INT_MAX |
| | #define ULONG_MAX UINT_MAX |
| | #endif |
| | #define LLONG_MIN (-LLONG_MAX - 1) |
| | #define LLONG_MAX 0x7fffffffffffffff |
| | #define ULLONG_MAX 0xffffffffffffffff |
| |
|
| | #define __FLT_RADIX__ 2 |
| | #define __FLT_MANT_DIG__ 24 |
| | #define __FLT_DIG__ 6 |
| | #define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F |
| | #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F |
| | #define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F |
| | #define __FLT_MIN_EXP__ (-125) |
| | #define __FLT_MIN_10_EXP__ (-37) |
| | #define __FLT_MAX_EXP__ 128 |
| | #define __FLT_MAX_10_EXP__ 38 |
| | #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F |
| | #define __DBL_MANT_DIG__ 53 |
| | #define __DBL_DIG__ 15 |
| | #define __DBL_MIN__ 2.22507385850720138309023271733240406e-308 |
| | #define __DBL_MAX__ 1.79769313486231570814527423731704357e+308 |
| | #define __DBL_EPSILON__ 2.22044604925031308084726333618164062e-16 |
| | #define __DBL_MIN_EXP__ (-1021) |
| | #define __DBL_MIN_10_EXP__ (-307) |
| | #define __DBL_MAX_EXP__ 1024 |
| | #define __DBL_MAX_10_EXP__ 308 |
| | #define __DBL_DENORM_MIN__ 4.94065645841246544176568792868221372e-324 |
| |
|
| | template<typename _To, typename _From> |
| | static __device__ __forceinline__ |
| | _To __cowchild_cast(_From __from) |
| | { |
| | static_assert(sizeof(_From) == sizeof(_To), ""); |
| | union __cast { _From __from; _To __to; }; |
| | __cast __c; |
| | __c.__from = __from; |
| | return __c.__to; |
| | } |
| |
|
| | #define __builtin_huge_valf() __cowchild_cast<float>(0x7f800000) |
| | #define __builtin_nanf(__dummy) __cowchild_cast<float>(0x7fc00000) |
| | #define __builtin_nansf(__dummy) __cowchild_cast<float>(0x7fa00000) |
| | #define __builtin_huge_val() __cowchild_cast<double>(0x7ff0000000000000) |
| | #define __builtin_nan(__dummy) __cowchild_cast<double>(0x7ff8000000000000) |
| | #define __builtin_nans(__dummy) __cowchild_cast<double>(0x7ff4000000000000) |
| | #endif |
| |
|
| | #include "detail/__config" |
| |
|
| | #include "detail/__pragma_push" |
| |
|
| | #include "detail/libcxx/include/climits" |
| |
|
| | |
| | |
| | #ifdef __CHAR_BIT__ |
| | static_assert(__CHAR_BIT__ == 8, ""); |
| | #else |
| | #define __CHAR_BIT__ 8 |
| | #endif |
| |
|
| | #include "detail/__pragma_pop" |
| |
|
| | #endif |
| |
|