21#include "util/Assert.hpp"
35 using SeedType =
typename std::mt19937_64::result_type;
73 uniform(
size_t min,
size_t max)
override;
88 ASSERT(min <= max,
"Min cannot be greater than max. min: {}, max: {}", min, max);
89 if constexpr (std::is_floating_point_v<T>) {
90 std::uniform_real_distribution<T> distribution(min, max);
91 return distribution(generator_);
93 std::uniform_int_distribution<T> distribution(min, max);
94 return distribution(generator_);
103 setSeed(SeedType seed)
override;
106 std::mt19937_64 generator_;
Mersenne Twister random number generator.
Definition Random.hpp:60
T uniformImpl(T min, T max)
Generate a random number between min and max.
Definition Random.hpp:86
void setSeed(SeedType seed) override
Set the seed for the random number generator.
Definition Random.cpp:39
size_t uniform(size_t min, size_t max) override
Generate a random number between min and max.
Definition Random.cpp:33
Random number generator interface.
Definition Random.hpp:31
virtual size_t uniform(size_t min, size_t max)=0
Generate a random number between min and max.
virtual void setSeed(SeedType seed)=0
Set the seed for the random number generator.
This namespace contains various utilities.
Definition AccountUtils.hpp:30