 |
NEURON
|
Go to the documentation of this file. 196 #if defined(__METAL_MACOS__) 197 #include "metalfeatures.h" 198 #elif defined(__OPENCL_VERSION__) && __OPENCL_VERSION__ > 0 200 #elif defined(__CUDACC__) 204 #elif defined(__xlC__) 208 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) 210 #elif defined(__OPEN64__) 212 #elif defined(__clang__) || defined(__bgclang__) 214 #elif defined(_CRAYC) 216 #elif defined(__FCC_VERSION) || defined(__FUJITSU) 218 #elif defined(__GNUC__) 220 #elif defined(_MSC_FULL_VER) 223 #error "Can't identify compiler. You'll need to add a new xxfeatures.hpp" 227 #ifndef R123_USE_CXX11 228 #define R123_USE_CXX11 (__cplusplus >= 201103L) 231 #ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS 232 #define R123_USE_CXX11_UNRESTRICTED_UNIONS R123_USE_CXX11 235 #ifndef R123_USE_CXX11_STATIC_ASSERT 236 #define R123_USE_CXX11_STATIC_ASSERT R123_USE_CXX11 239 #ifndef R123_USE_CXX11_CONSTEXPR 240 #define R123_USE_CXX11_CONSTEXPR R123_USE_CXX11 243 #ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS 244 #define R123_USE_CXX11_EXPLICIT_CONVERSIONS R123_USE_CXX11 247 #ifndef R123_USE_CXX11_RANDOM 248 #define R123_USE_CXX11_RANDOM R123_USE_CXX11 251 #ifndef R123_USE_CXX11_TYPE_TRAITS 252 #define R123_USE_CXX11_TYPE_TRAITS R123_USE_CXX11 255 #ifndef R123_USE_CXX11_LONG_LONG 256 #define R123_USE_CXX11_LONG_LONG R123_USE_CXX11 259 #ifndef R123_USE_MULHILO64_C99 260 #define R123_USE_MULHILO64_C99 0 263 #ifndef R123_USE_MULHILO64_MULHI_INTRIN 264 #define R123_USE_MULHILO64_MULHI_INTRIN 0 267 #ifndef R123_USE_MULHILO32_MULHI_INTRIN 268 #define R123_USE_MULHILO32_MULHI_INTRIN 0 271 #ifndef R123_STATIC_ASSERT 272 #if R123_USE_CXX11_STATIC_ASSERT 273 #define R123_STATIC_ASSERT(expr, msg) static_assert(expr, msg) 276 #define R123_STATIC_ASSERT(expr, msg) typedef char static_assertion[(!!(expr))*2-1] 280 #ifndef R123_CONSTEXPR 281 #if R123_USE_CXX11_CONSTEXPR 282 #define R123_CONSTEXPR constexpr 284 #define R123_CONSTEXPR 288 #ifndef R123_USE_PHILOX_64BIT 289 #define R123_USE_PHILOX_64BIT (R123_USE_MULHILO64_ASM || R123_USE_MULHILO64_MSVC_INTRIN || R123_USE_MULHILO64_CUDA_INTRIN || R123_USE_GNU_UINT128 || R123_USE_MULHILO64_C99 || R123_USE_MULHILO64_OPENCL_INTRIN || R123_USE_MULHILO64_MULHI_INTRIN) 292 #ifndef R123_ULONG_LONG 293 #if defined(__cplusplus) && !R123_USE_CXX11_LONG_LONG 298 #define R123_ULONG_LONG uint64_t 300 #define R123_ULONG_LONG unsigned long long 307 #define R123_64BIT(x) UINT64_C(x) 311 #define R123_THROW(x) throw (x) 324 #define R123_NO_MACRO_SUBST