Anklang C++ API 0.0.0
Loading...
Searching...
No Matches
Pcg32Rng

#include "randomhash.hh"

Public Member Functions

voidauto_seed ()
Pcg32Rng ()
template<class SeedSeq >
Pcg32Rng (SeedSeq &seed_sequence)
Pcg32Rng (uint64_t offset, uint64_t sequence)
uint32_trandom ()
template<class SeedSeq >
voidseed (SeedSeq &seed_sequence)
voidseed (uint64_t offset, uint64_t sequence)

Detailed Description

Pcg32Rng is a permutating linear congruential PRNG. At the core, this pseudo random number generator uses the well known linear congruential generator: 6364136223846793005 * accumulator + 1442695040888963407 mod 2^64. See also TAOCP by D. E. Knuth, section 3.3.4, table 1, line 26. For good statistical performance, the output function of the permuted congruential generator family is used as described on http://www.pcg-random.org/. Period length for this generator is 2^64, the specified seed offset chooses the position of the genrator and the seed sequence parameter can be used to choose from 2^63 distinct random sequences.

Constructor & Destructor Documentation

Pcg32Rng() [1/3]

template<class SeedSeq >
Pcg32Rng ( SeedSeq & seed_sequence)
explicit

Initialize and seed from seed_sequence.

Pcg32Rng() [2/3]

Pcg32Rng ( uint64_t offset,
uint64_t sequence
)
explicit

Initialize and seed by seeking to position offset within stream sequence.

Pcg32Rng() [3/3]

Pcg32Rng ( )
explicit

Initialize and seed the generator from a system specific nondeterministic random source.

Member Function Documentation

auto_seed()

void auto_seed ( )

Seed the generator from a system specific nondeterministic random source.

seed() [1/2]

void seed ( uint64_t offset,
uint64_t sequence
)

Seed by seeking to position offset within stream sequence.

seed() [2/2]

template<class SeedSeq >
void seed ( SeedSeq & seed_sequence)

Seed the generator state from a seed_sequence.

random()

uint32_t random ( )

Generate uniformly distributed 32 bit pseudo random number.