3#include "util/Assert.hpp"
17 using SeedType =
typename std::mt19937_64::result_type;
55 uniform(
size_t min,
size_t max)
override;
70 ASSERT(min <= max,
"Min cannot be greater than max. min: {}, max: {}", min, max);
71 if constexpr (std::is_floating_point_v<T>) {
72 std::uniform_real_distribution<T> distribution(min, max);
73 return distribution(generator_);
75 std::uniform_int_distribution<T> distribution(min, max);
76 return distribution(generator_);
85 setSeed(SeedType seed)
override;
88 std::mt19937_64 generator_;
T uniformImpl(T min, T max)
Generate a random number between min and max.
Definition Random.hpp:68
void setSeed(SeedType seed) override
Set the seed for the random number generator.
Definition Random.cpp:21
size_t uniform(size_t min, size_t max) override
Generate a random number between min and max.
Definition Random.cpp:15
Random number generator interface.
Definition Random.hpp:13
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:11