blob: bc3e57b528b1f3a504a0e50015b0e4b05cc28bbb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include "RNG.h"
using std::uniform_int_distribution;
using std::uniform_real_distribution;
RNG::RNG() : dev(), rng(dev()) { }
RNG & RNG::get() {
static RNG instance;
return instance;
}
int RNG::rand_int(const int upper) {
return this->rand_int(0, upper);
}
int RNG::rand_int(const int lower, const int upper) {
uniform_int_distribution<int> random_dist(lower, upper);
return random_dist(rng);
}
double RNG::rand_double() {
return this->rand_double(0.f, 1.f);
}
double RNG::rand_double(const double lower, const double upper) {
uniform_real_distribution<double> random_dist(lower, upper);
return random_dist(rng);
}
bool RNG::rand_bool() {
return rand_int(0, 1);
}
|