24static thread_local std::unique_ptr<SFMTRand>
sfmtRand;
30 sfmtRand = std::make_unique<SFMTRand>();
38 std::uniform_int_distribution<int32> uid(min, max);
45 std::uniform_int_distribution<uint32> uid(min, max);
51 ASSERT(std::numeric_limits<uint32>::max() / Milliseconds::period::den >= max);
52 return urand(min * Milliseconds::period::den, max * Milliseconds::period::den);
55float frand(
float min,
float max)
58 std::uniform_real_distribution<float> urd(min, max);
64 long long diff = max.count() - min.count();
66 ASSERT(diff <= 0xFFFFFFFF);
77 std::uniform_real_distribution<float> urd;
83 std::uniform_real_distribution<float> urd(0.0f, 100.0f);
89 std::discrete_distribution<uint32> dd(chances, chances + count);
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
static thread_local std::unique_ptr< SFMTRand > sfmtRand
float frand(float min, float max)
uint32 urandweighted(size_t count, double const *chances)
int32 irand(int32 min, int32 max)
static SFMTRand * GetRng()
static RandomEngine engine
Milliseconds randtime(Milliseconds min, Milliseconds max)
uint32 urand(uint32 min, uint32 max)
uint32 urandms(uint32 min, uint32 max)
static RandomEngine & Instance()