Class Ase::Pcg32Rng
#include <randomhash.hh>
Public Functions
Type | Name |
---|---|
Pcg32Rng (SeedSeq & seed_sequence) Initialize and seed from seed_sequence . |
|
Pcg32Rng (uint64_t offset, uint64_t sequence) Initialize and seed by seeking to position offset within stream__sequence . |
|
Pcg32Rng () Initialize and seed the generator from a system specific nondeterministic random source. |
|
void | auto_seed () Seed the generator from a system specific nondeterministic random source. |
uint32_t | random () Generate uniformly distributed 32 bit pseudo random number. |
void | seed (uint64_t offset, uint64_t sequence) Seed by seeking to position offset within stream__sequence . |
void | seed (SeedSeq & seed_sequence) Seed the generator state from a seed_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.
Public Functions Documentation
function Pcg32Rng [1/3]
template<class SeedSeq>
inline explicit Ase::Pcg32Rng::Pcg32Rng (
SeedSeq & seed_sequence
)
function Pcg32Rng [2/3]
explicit Ase::Pcg32Rng::Pcg32Rng (
uint64_t offset,
uint64_t sequence
)
function Pcg32Rng [3/3]
explicit Ase::Pcg32Rng::Pcg32Rng ()
function auto_seed
void Ase::Pcg32Rng::auto_seed ()
function random
inline uint32_t Ase::Pcg32Rng::random ()
function seed [1/2]
void Ase::Pcg32Rng::seed (
uint64_t offset,
uint64_t sequence
)
function seed [2/2]
template<class SeedSeq>
inline void Ase::Pcg32Rng::seed (
SeedSeq & seed_sequence
)
The documentation for this class was generated from the following file /__w/anklang/anklang/ase/randomhash.hh