24 static constexpr T
mask() {
return T(0); }
29 static constexpr uint8_t
mask() {
return 0xff; }
34 static constexpr uint16_t
mask() {
return 0xffff; }
39 static constexpr uint32_t
mask() {
return 0xffffffffUL; }
44 static constexpr uint64_t
mask() {
return 0xffffffffffffffffULL; }
60 static constexpr std::array<uint8_t, 8> values = {
73 static constexpr std::array<uint16_t, 10> values = {
86 static constexpr std::array<uint32_t, 12> values = {
100 static constexpr std::array<uint64_t, 14> values = {
121 static inline const std::array<uint128_t, 14> values = {
128 (
uint128_t(0x7FFFFFFFFFFFFFFFULL) << 64) | 0xFFFFFFFFFFFFFFFFULL,
130 (
uint128_t(0xFFFFFFFFFFFFFFFFULL) << 64) | 0xFFFFFFFFFFFFFFFEULL,
131 (
uint128_t(0xFFFFFFFFFFFFFFFFULL) << 64) | 0xFFFFFFFFFFFFFFFFULL,
135 (
uint128_t(0x5555555555555555ULL) << 64) | 0x5555555555555555ULL,
151 return (hi << 64) + lo;
227 return generate_random_uint<uint8_t>(rng);
232 return generate_random_uint<uint16_t>(rng);
237 return generate_random_uint<uint32_t>(rng);
242 return generate_random_uint<uint64_t>(rng);
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
unsigned __int128 uint128_t
static constexpr uint16_t mask()
static constexpr uint32_t mask()
static constexpr uint64_t mask()
static constexpr uint8_t mask()
static constexpr bool has_mask
static constexpr T mask()
static void mutate(T &value, std::mt19937_64 &rng)
static void mutate(std::mt19937_64 &rng, T &value)
static void mutate(T &value)
static void mutate(T &value)
static void mutate(std::mt19937_64 &rng, T &value)
uint64_t generate_random_uint64(std::mt19937_64 &rng)
uint128_t generate_random_uint128(std::mt19937_64 &rng)
uint32_t generate_random_uint32(std::mt19937_64 &rng)
void mutate_uint(T &value, std::mt19937_64 &rng, const ConfigType &config)
std::enable_if< std::is_integral< T >::value &&std::is_unsigned< T >::value, T >::type generate_random_uint(std::mt19937_64 &rng)
uint16_t generate_random_uint16(std::mt19937_64 &rng)
uint128_t generate_random_uint< uint128_t >(std::mt19937_64 &rng)
uint8_t generate_random_uint8(std::mt19937_64 &rng)