23 #ifndef SRC_DATA_UTILS_RANDOMGENERATOR_HPP_
24 #define SRC_DATA_UTILS_RANDOMGENERATOR_HPP_
26 #include <boost/atomic.hpp>
27 #include <boost/thread/mutex.hpp>
52 uint64_t
uniRandInt(
int min = 0,
int max = RAND_MAX);
68 double normRandReal(
double mean = 0,
double variance = 1);
89 std::random_device
rd;
111 #define RAN_GEN mic::utils::RandomGenerator::getInstance()
double uniRandReal(double min=0, double max=1)
Random generator - defined in the form of a singleton, with double-checked locking pattern (DCLP) bas...
std::uniform_real_distribution uniform_real_dist
Uniform distribution from 0 to 1 (real values).
static boost::atomic< RandomGenerator * > instance_
std::uniform_int_distribution uniform_int_dist
Uniform distribution from 0 to RAND_MAX (integers).
uint64_t uniRandInt(int min=0, int max=RAND_MAX)
static RandomGenerator * getInstance()
std::mt19937_64 rng_mt19937_64
static boost::mutex instantiation_mutex
double normRandReal(double mean=0, double variance=1)
std::normal_distribution normal_real_dist
Normal distribution from 0 to 1 (real values).