ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
philox_rand.h File Reference
#include <cstdint>
#include "myintrin.h"
+ Include dependency graph for lattice_boltzmann/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 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)
 

Macro Definition Documentation

◆ PHILOX_M4x32_0

#define PHILOX_M4x32_0   (0xD2511F53)

◆ PHILOX_M4x32_1

#define PHILOX_M4x32_1   (0xCD9E8D57)

◆ PHILOX_W32_0

#define PHILOX_W32_0   (0x9E3779B9)

◆ PHILOX_W32_1

#define PHILOX_W32_1   (0xBB67AE85)

◆ QUALIFIERS

#define QUALIFIERS   inline

◆ TWOPOW32_INV_FLOAT

#define TWOPOW32_INV_FLOAT   (2.3283064e-10f)

◆ TWOPOW53_INV_DOUBLE

#define TWOPOW53_INV_DOUBLE   (1.1102230246251565e-16)

Typedef Documentation

◆ uint32

typedef std::uint32_t uint32

◆ uint64

typedef std::uint64_t uint64

Function Documentation

◆ _philox4x32bumpkey()

QUALIFIERS void _philox4x32bumpkey ( uint32 key)

Definition at line 102 of file lattice_boltzmann/generated_kernels/philox_rand.h.

References PHILOX_W32_0, and PHILOX_W32_1.

Referenced by philox_double2(), and philox_float4().

◆ _philox4x32round()

QUALIFIERS void _philox4x32round ( uint32 ctr,
uint32 key 
)

◆ _uniform_double_hq()

QUALIFIERS double _uniform_double_hq ( uint32  x,
uint32  y 
)

Definition at line 107 of file lattice_boltzmann/generated_kernels/philox_rand.h.

References TWOPOW53_INV_DOUBLE.

Referenced by philox_double2().

◆ mulhilo32()

QUALIFIERS uint32 mulhilo32 ( uint32  a,
uint32  b,
uint32 hip 
)

Definition at line 72 of file lattice_boltzmann/generated_kernels/philox_rand.h.

Referenced by _philox4x32round().

◆ philox_double2()

QUALIFIERS void philox_double2 ( uint32  ctr0,
uint32  ctr1,
uint32  ctr2,
uint32  ctr3,
uint32  key0,
uint32  key1,
double &  rnd1,
double &  rnd2 
)

◆ philox_float4()

QUALIFIERS void philox_float4 ( uint32  ctr0,
uint32  ctr1,
uint32  ctr2,
uint32  ctr3,
uint32  key0,
uint32  key1,
float &  rnd1,
float &  rnd2,
float &  rnd3,
float &  rnd4 
)