![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Philox counter-based RNG from [39]. More...
Include dependency graph for electrokinetics/generated_kernels/philox_rand.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | SVE_QUALIFIERS |
| #define | QUALIFIERS inline |
| #define | PHILOX_W32_0 (0x9E3779B9) |
| #define | PHILOX_W32_1 (0xBB67AE85) |
| #define | PHILOX_M4x32_0 (0xD2511F53) |
| #define | PHILOX_M4x32_1 (0xCD9E8D57) |
| #define | TWOPOW53_INV_DOUBLE (1.1102230246251565e-16) |
| #define | TWOPOW32_INV_FLOAT (2.3283064e-10f) |
Typedefs | |
| typedef std::uint32_t | uint32 |
| typedef std::uint64_t | uint64 |
Functions | |
| QUALIFIERS uint32 | mulhilo32 (uint32 a, uint32 b, uint32 *hip) |
| QUALIFIERS void | _philox4x32round (uint32 *ctr, uint32 *key) |
| QUALIFIERS void | _philox4x32bumpkey (uint32 *key) |
| QUALIFIERS double | _uniform_double_hq (uint32 x, uint32 y) |
| QUALIFIERS void | philox_double2 (uint32 ctr0, uint32 ctr1, uint32 ctr2, uint32 ctr3, uint32 key0, uint32 key1, double &rnd1, double &rnd2) |
| QUALIFIERS void | philox_float4 (uint32 ctr0, uint32 ctr1, uint32 ctr2, uint32 ctr3, uint32 key0, uint32 key1, float &rnd1, float &rnd2, float &rnd3, float &rnd4) |
Philox counter-based RNG from [39].
Adapted from the pystencils source file https://i10git.cs.fau.de/pycodegen/pystencils/-/blob/b4d7ef7cb5b499f3fa55ebfcd598ac7d6e11a3db/src/pystencils/include/philox_rand.h
Definition in file electrokinetics/generated_kernels/philox_rand.h.
| #define PHILOX_M4x32_0 (0xD2511F53) |
Definition at line 107 of file electrokinetics/generated_kernels/philox_rand.h.
| #define PHILOX_M4x32_1 (0xCD9E8D57) |
Definition at line 108 of file electrokinetics/generated_kernels/philox_rand.h.
| #define PHILOX_W32_0 (0x9E3779B9) |
Definition at line 105 of file electrokinetics/generated_kernels/philox_rand.h.
| #define PHILOX_W32_1 (0xBB67AE85) |
Definition at line 106 of file electrokinetics/generated_kernels/philox_rand.h.
Definition at line 101 of file electrokinetics/generated_kernels/philox_rand.h.
| #define SVE_QUALIFIERS |
Definition at line 92 of file electrokinetics/generated_kernels/philox_rand.h.
Definition at line 110 of file electrokinetics/generated_kernels/philox_rand.h.
Definition at line 109 of file electrokinetics/generated_kernels/philox_rand.h.
Definition at line 120 of file electrokinetics/generated_kernels/philox_rand.h.
Definition at line 121 of file electrokinetics/generated_kernels/philox_rand.h.
| QUALIFIERS void _philox4x32bumpkey | ( | uint32 * | key | ) |
Definition at line 169 of file electrokinetics/generated_kernels/philox_rand.h.
References PHILOX_W32_0, PHILOX_W32_1, and stream.
Referenced by philox_double2(), and philox_float4().
| QUALIFIERS void _philox4x32round | ( | uint32 * | ctr, |
| uint32 * | key | ||
| ) |
Definition at line 157 of file electrokinetics/generated_kernels/philox_rand.h.
References mulhilo32(), PHILOX_M4x32_0, PHILOX_M4x32_1, and stream.
Referenced by philox_double2(), and philox_float4().
| QUALIFIERS double _uniform_double_hq | ( | uint32 | x, |
| uint32 | y | ||
| ) |
Definition at line 174 of file electrokinetics/generated_kernels/philox_rand.h.
References TWOPOW53_INV_DOUBLE.
Referenced by philox_double2().
| QUALIFIERS uint32 mulhilo32 | ( | uint32 | a, |
| uint32 | b, | ||
| uint32 * | hip | ||
| ) |
Definition at line 135 of file electrokinetics/generated_kernels/philox_rand.h.
References stream.
Referenced by _philox4x32round().
| QUALIFIERS void philox_double2 | ( | uint32 | ctr0, |
| uint32 | ctr1, | ||
| uint32 | ctr2, | ||
| uint32 | ctr3, | ||
| uint32 | key0, | ||
| uint32 | key1, | ||
| double & | rnd1, | ||
| double & | rnd2 | ||
| ) |
Definition at line 179 of file electrokinetics/generated_kernels/philox_rand.h.
References _philox4x32bumpkey(), _philox4x32round(), _uniform_double_hq(), and stream.
Referenced by walberla::pystencils::internal_diffusivefluxkernelthermalized_double_precision_cuda_diffusivefluxkernelthermalized_double_precision_cuda::__launch_bounds__(), walberla::pystencils::internal_diffusivefluxkernelwithelectrostaticthermalized_double_precision_cuda_diffusivefluxkernelwithelectrostaticthermalized_double_precision_cuda::__launch_bounds__(), walberla::pystencils::internal_streamcollidesweepthermalizeddoubleprecisioncuda_streamcollidesweepthermalizeddoubleprecisioncuda::__launch_bounds__(), walberla::pystencils::internal_0f4fef9c62f0d4e3c1700727b32f958f::diffusivefluxkernelthermalized_double_precision_diffusivefluxkernelthermalized_double_precision(), walberla::pystencils::internal_1ba80591fca01bd4852b82a8b7a2ca49::diffusivefluxkernelwithelectrostaticthermalized_double_precision_diffusivefluxkernelwithelectrostaticthermalized_double_precision(), walberla::pystencils::internal_fa53b6994358d65dbc792fd71884c2e7::streamcollidesweepthermalizeddoubleprecision_streamcollidesweepthermalizeddoubleprecision(), and walberla::pystencils::internal_b312c2da0affb0ff73dd81300a784e62::streamcollidesweepthermalizeddoubleprecisionavx_streamcollidesweepthermalizeddoubleprecisionavx().
| QUALIFIERS void philox_float4 | ( | uint32 | ctr0, |
| uint32 | ctr1, | ||
| uint32 | ctr2, | ||
| uint32 | ctr3, | ||
| uint32 | key0, | ||
| uint32 | key1, | ||
| float & | rnd1, | ||
| float & | rnd2, | ||
| float & | rnd3, | ||
| float & | rnd4 | ||
| ) |
Definition at line 218 of file electrokinetics/generated_kernels/philox_rand.h.
References _philox4x32bumpkey(), _philox4x32round(), stream, and TWOPOW32_INV_FLOAT.
Referenced by walberla::pystencils::internal_diffusivefluxkernelthermalized_single_precision_cuda_diffusivefluxkernelthermalized_single_precision_cuda::__launch_bounds__(), walberla::pystencils::internal_diffusivefluxkernelwithelectrostaticthermalized_single_precision_cuda_diffusivefluxkernelwithelectrostaticthermalized_single_precision_cuda::__launch_bounds__(), walberla::pystencils::internal_streamcollidesweepthermalizedsingleprecisioncuda_streamcollidesweepthermalizedsingleprecisioncuda::__launch_bounds__(), walberla::pystencils::internal_13067439141d91943f586adb1c937d5b::diffusivefluxkernelthermalized_single_precision_diffusivefluxkernelthermalized_single_precision(), walberla::pystencils::internal_e04f3d5b3f93f09e4de6aba968e70d10::diffusivefluxkernelwithelectrostaticthermalized_single_precision_diffusivefluxkernelwithelectrostaticthermalized_single_precision(), walberla::pystencils::internal_117eb60e8d249794b47e39bf52c9e4fe::streamcollidesweepthermalizedsingleprecision_streamcollidesweepthermalizedsingleprecision(), and walberla::pystencils::internal_482af0085ade5d86c474548ac4b32084::streamcollidesweepthermalizedsingleprecisionavx_streamcollidesweepthermalizedsingleprecisionavx().