Lumiera  0.pre.03
»edit your freedom«
random.hpp File Reference

Go to the source code of this file.

Description

Generating (pseudo) random numbers with controlled seed.

As an extension on top of the C++ random number framework, several instances of random number sequence generators can be easily created with a controlled seed. For simplified usage, two default instances are exposed as global variable

See also
Random_test

Definition in file random.hpp.

#include "lib/integral.hpp"
#include "lib/hash-value.h"
#include "lib/nocopy.hpp"
#include <random>

Classes

class  CappedGen< GEN >
 Adapter to protect against data corruption caused by concurrent access. More...
 
class  RandomSequencer< GEN >
 Access point to a selection of random number sources. More...
 
class  RandomSequencer< GEN >::Seed
 
class  SeedNucleus
 Establishes a seed point for any instance or performance. More...
 

Typedefs

using Random = RandomSequencer< std::mt19937_64 >
 PRNG engine to use by default: 64bit Mersenne twister.
 

Functions

uint constexpr _iBOUND ()
 
template<class GEN >
auto buildCappedSubSequence (RandomSequencer< GEN > &src)
 
void randomiseRandomness ()
 inject true randomness into the defaultGen
 
lib::HashVal ranHash ()
 
int rani (uint bound=_iBOUND())
 
double ranNormal (double mean=0.0, double stdev=1.0)
 
double ranRange (double start, double bound)
 
SeedNucleus & seedFromDefaultGen ()
 draw seed another Generator from the default RandomSequencer
 

Namespaces

 lib
 Implementation namespace for support and library code.