Make random generator thread_local.
This commit is contained in:
parent
bd704eb6ed
commit
5243882ed5
6
util.h
6
util.h
@ -4,6 +4,7 @@
|
||||
#include <limits>
|
||||
#include <random>
|
||||
#include <ctime>
|
||||
#include <functional>
|
||||
|
||||
const double infinity = std::numeric_limits<double>::infinity();
|
||||
const double pi = 3.1415926535897932385;
|
||||
@ -15,8 +16,9 @@ inline double degrees_to_radians(double degrees) {
|
||||
inline double random_double() {
|
||||
static std::uniform_real_distribution<double> distribution(0.0, 1.0);
|
||||
//static std::mt19937 generator(std::time(nullptr));
|
||||
static std::mt19937 generator(std::random_device{}());
|
||||
return distribution(generator);
|
||||
static thread_local std::mt19937 generator(std::random_device{}());
|
||||
static std::function<double()> rand_gen = std::bind(distribution, generator);
|
||||
return rand_gen();
|
||||
}
|
||||
|
||||
inline double random_double(double min, double max) {
|
||||
|
Loading…
Reference in New Issue
Block a user