xoroshiro128p.h
stdint.h
random.h
xoroshiro128p.h
stdint.h
random.h
xoroshiro128p.h
uint64_t static uint64_t rotl (const uint64_t x, const int k) rotl const uint64_t x const int k

rotating left shift helper According to the original authors, this will on most platforms reduce to a single instruction

xoroshiro128p_next
uint64_t static uint64_t xoroshiro128p_next (uint64_t *state) xoroshiro128p_next uint64_t * state

generate the next random number and update the state. This is the workhorse, here!

rotl
gr::xoroshiro128p_prng::operator()
xoroshiro128p_jump
void static void xoroshiro128p_jump (uint64_t *state) xoroshiro128p_jump uint64_t * state

Advance the internal state by 2^64 steps; useful when coordinating multiple independent RNGs This is the jump function for the generator. It is equivalent to 2^64 calls to next(); it can be used to generate 2^64 non-overlapping subsequences for parallel computations.

xoroshiro128p_next
xoroshiro128p_seed
uint64_t static uint64_t splitmix64_next (uint64_t *state) splitmix64_next uint64_t * state

step of the SPLITMIX64 RNG; only used internally for seeding This RNG isn't as good as XOROSHIRO128+, so it's only used to initialize a 128 bit state from a seed.

xoroshiro128p_seed
void static void xoroshiro128p_seed (uint64_t *state, const uint64_t seed) xoroshiro128p_seed uint64_t * state const uint64_t seed

Seed the 128 bit state from a 64 bit seed.

splitmix64_next
xoroshiro128p_jump
gr::xoroshiro128p_prng::seed