random#
-
namespace heph
-
namespace random#
Functions
-
std::mt19937_64 createRNG(bool is_deterministic = random_number_generator::IS_DETERMINISTIC)#
Returns a random number generator (RNG) which is preconfigured to be deterministic or not. ‘is_deterministic’ is exposed for unit testing, but shall in general not be set by the caller.
-
std::pair<std::mt19937_64, std::mt19937_64> createPairOfIdenticalRNGs(bool is_deterministic = random_number_generator::IS_DETERMINISTIC)#
Returns a pair (but not a copy) of identical random number generators (RNG) which are preconfigured to be deterministic, or not. This is useful for testing functions which require two random number generators to be equal. ‘is_deterministic’ is exposed for unit testing, but shall in general not be set by the caller.
-
std::mt19937_64 createRNG(bool is_deterministic = random_number_generator::IS_DETERMINISTIC)#
-
namespace random#
-
namespace heph
-
namespace random
Functions
-
template<ChronoTimestampType T>
T random(std::mt19937_64 &mt)# Create a random timestamp between year 1970 and the year 2100.
-
template<typename T>
T random(std::mt19937_64 &mt) TODO(@graeter) This is a workaround until we have cpp23 and can introduce the generic_random_object_creator
-
template<StringType T>
T random(std::mt19937_64 &mt, std::optional<size_t> fixed_size = std::nullopt, bool allow_empty = true, bool lower_characters_only = false)# Generate a random string of characters, including special case characters and numbers.
-
template<RandomCreatableVector T>
T random(std::mt19937_64 &mt, std::optional<size_t> fixed_size = std::nullopt, bool allow_empty = true)# Fill a vector with randomly generated values of type T.
-
template<RandomCreatableArray T>
T random(std::mt19937_64 &mt)# Fill a vector with randomly generated values of type T.
-
template<RandomCreatableUnorderedMap T>
T random(std::mt19937_64 &mt, std::optional<size_t> fixed_size = std::nullopt, bool allow_empty = true)# Fill a vector with randomly generated values of type T.
-
template<NumericType T>
struct Limits#
Variables
- template<NumericType T> Limits< T > NO_LIMITS = { .min = std::numeric_limits<T>::min(), .max = std::numeric_limits<T>::max() }
-
template<ChronoTimestampType T>
-
namespace random