40 : state(1), multiplier(6364136223846793005ULL),
41 increment(1442695040888963407ULL) {
46 : state(seed), multiplier(a), increment(c) {
51 state &= 0x7FFFFFFFFFFFFFFFULL;
54 state = multiplier * state + increment;
57 if (state < increment) {
135 return x >> r | x << (-r & 31);
140 unsigned count = (unsigned)(x >> 59);
144 return rotr32((uint32_t)(x >> 27), count);
uint64_t get_increment() const
void seed(uint64_t new_seed)
uint64_t get_seed() const
uint64_t get_multiplier() const
void pcg32_init(uint64_t seed)
uint32_t rotr32(uint32_t x, unsigned r)
Pseudorandom Number Generators.
static uint64_t const __PCG_MULTPLR
static uint64_t __PCG_STATE
static uint64_t const __PCG_INCR