/search.css" rel="stylesheet" type="text/css"/>
/search.js">
- random123-1.11.2pre Documentation
Go to the documentation of this file.
197 #if defined(__OPENCL_VERSION__) && __OPENCL_VERSION__ > 0
198 #include "openclfeatures.h"
199 #elif defined(__CUDACC__)
200 #include "nvccfeatures.h"
202 #include "iccfeatures.h"
203 #elif defined(__xlC__)
204 #include "xlcfeatures.h"
205 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
206 #include "sunprofeatures.h"
207 #elif defined(__OPEN64__)
208 #include "open64features.h"
209 #elif defined(__clang__)
210 #include "clangfeatures.h"
211 #elif defined(__GNUC__)
212 #include "gccfeatures.h"
214 #include "pgccfeatures.h"
215 #elif defined(_MSC_FULL_VER)
216 #include "msvcfeatures.h"
218 #error "Can't identify compiler. You'll need to add a new xxfeatures.hpp"
222 #ifndef R123_USE_CXX11
223 #define R123_USE_CXX11 (__cplusplus >= 201103L)
226 #ifndef R123_USE_CXX11_UNRESTRICTED_UNIONS
227 #define R123_USE_CXX11_UNRESTRICTED_UNIONS R123_USE_CXX11
230 #ifndef R123_USE_CXX11_STATIC_ASSERT
231 #define R123_USE_CXX11_STATIC_ASSERT R123_USE_CXX11
234 #ifndef R123_USE_CXX11_CONSTEXPR
235 #define R123_USE_CXX11_CONSTEXPR R123_USE_CXX11
238 #ifndef R123_USE_CXX11_EXPLICIT_CONVERSIONS
239 #define R123_USE_CXX11_EXPLICIT_CONVERSIONS R123_USE_CXX11
242 #ifndef R123_USE_CXX11_RANDOM
243 #define R123_USE_CXX11_RANDOM R123_USE_CXX11
246 #ifndef R123_USE_CXX11_TYPE_TRAITS
247 #define R123_USE_CXX11_TYPE_TRAITS R123_USE_CXX11
250 #ifndef R123_USE_CXX11_LONG_LONG
251 #define R123_USE_CXX11_LONG_LONG R123_USE_CXX11
254 #ifndef R123_USE_CXX11_STD_ARRAY
255 #define R123_USE_CXX11_STD_ARRAY R123_USE_CXX11
258 #ifndef R123_USE_MULHILO64_C99
259 #define R123_USE_MULHILO64_C99 0
262 #ifndef R123_USE_MULHILO64_MULHI_INTRIN
263 #define R123_USE_MULHILO64_MULHI_INTRIN 0
266 #ifndef R123_USE_MULHILO32_MULHI_INTRIN
267 #define R123_USE_MULHILO32_MULHI_INTRIN 0
270 #ifndef R123_STATIC_ASSERT
271 #if R123_USE_CXX11_STATIC_ASSERT
272 #define R123_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
275 #define R123_STATIC_ASSERT(expr, msg) typedef char static_assertion[(!!(expr))*2-1]
279 #ifndef R123_CONSTEXPR
280 #if R123_USE_CXX11_CONSTEXPR
281 #define R123_CONSTEXPR constexpr
283 #define R123_CONSTEXPR
287 #ifndef R123_USE_PHILOX_64BIT
288 #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)
291 #ifndef R123_ULONG_LONG
292 #if defined(__cplusplus) && !R123_USE_CXX11_LONG_LONG
297 #define R123_ULONG_LONG uint64_t
299 #define R123_ULONG_LONG unsigned long long
306 #define R123_64BIT(x) UINT64_C(x)
310 #define R123_THROW(x) throw (x)
323 #define R123_NO_MACRO_SUBST