30 prng_.seed(
static_cast<unsigned>(time(0)) + std::hash<std::thread::id>{}(std::this_thread::get_id()));
39 static std::mt19937& prng(){
40 static tbb::enumerable_thread_specific<thread_safe_prng> thread_prng;
41 return thread_prng.local().prng();
44 template<
typename T_e>
45 static T_e uniform(
float a=0.0,
float b=1.0){
46 static std::uniform_real_distribution<T_e> dist(a, b);