40 #include "lib/integral.hpp" 53 virtual uint64_t getSeed() =0;
68 std::uniform_int_distribution<int> uniformI_;
69 std::uniform_int_distribution<uint64_t> uniformU_;
70 std::uniform_real_distribution<double> uniformD_;
78 int i32() {
return uniformI_(generator_); }
79 uint64_t u64() {
return uniformU_(generator_); }
80 double uni() {
return uniformD_(generator_); }
101 inline int rani() {
return defaultGen.i32(); }
102 inline uint64_t ranu() {
return defaultGen.u64(); }
103 inline double runi() {
return defaultGen.uni(); }
118 , generator_{nucleus.getSeed()}
126 generator_.discard (nucleus.getSeed() % 55555);
void randomise(SeedNucleus &)
inject controlled randomisation
virtual ~SeedNucleus()
this is an interface
Access point to a selection of random number sources.
Any copy and copy construction prohibited.
RandomSequencer(SeedNucleus &)
Random instances are created as part of an execution scheme.
Random entropyGen
a global RandomSequencer seeded with real entropy
Implementation namespace for support and library code.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Establishes a seed point for any instance or performance.
Random defaultGen
a global default RandomSequencer for mundane purposes
void randomiseRandomness()
inject true randomness into the defaultGen