Kepler's Torus
RNG.h
1 #ifndef CAPSTONE_RNG_H
2 #define CAPSTONE_RNG_H
3 
4 #include "distribution/uniform/uniform.h"
5 
6 #include "bounds.h"
7 
8 #include <unordered_map>
9 #include <memory>
10 
13 class RNG {
14 private:
16  std::unordered_map <Bounds, Uniform> generators;
17 
18 public:
20  unsigned int const seed;
21 
23  RNG ();
25  explicit RNG (unsigned int seed);
26 
28  [[nodiscard]] double random (Bounds bounds);
29 };
30 
31 #endif //CAPSTONE_RNG_H
32 
33 /* Copyright © 2022 Aaron Alef */
std::unordered_map< Bounds, Uniform > generators
Map of random number generators previously used.
Definition: RNG.h:16
double random(Bounds bounds)
Create a new random double within the boundaries provided.
Definition: RNG.cpp:7
Store lower inclusive and upper exclusive boundaries as container for interaction with random number ...
Definition: bounds.h:8
unsigned int const seed
The one seed used to generate all random numbers.
Definition: RNG.h:20
Definition: RNG.h:13
RNG()
Create a new random number generator with random seed.
Definition: RNG.cpp:3