22 std::optional<double> tmp;
29 std::numeric_limits<double>::infinity(),
30 -std::numeric_limits<double>::infinity(),
31 std::numeric_limits<double>::min(),
32 -std::numeric_limits<double>::min(),
33 std::numeric_limits<double>::max(),
34 -std::numeric_limits<double>::max(),
35 std::numeric_limits<double>::lowest(),
36 -std::numeric_limits<double>::lowest(),
37 std::numeric_limits<double>::quiet_NaN(),
38 -std::numeric_limits<double>::quiet_NaN(),
39 std::numeric_limits<double>::signaling_NaN(),
40 -std::numeric_limits<double>::signaling_NaN(),
41 std::numeric_limits<double>::denorm_min(),
42 -std::numeric_limits<double>::denorm_min(),
51 if constexpr (std::numeric_limits<double>::is_iec559) {
53 uint64_t encoded_in_memory;
54 std::copy((
const unsigned char*)&d, (
const unsigned char*)(&d + 1), (
unsigned char*)&encoded_in_memory);
55 assert(encoded_in_memory == encoded);
59 assert(std::isnan(d) == std::isnan(d_deserialized));
60 assert(std::isnan(d) || d == d_deserialized);
T PickValueInArray(const T(&array)[size])
static size_t DynamicUsage(const int8_t &v)
Dynamic memory usage for built-in types is zero.
uint64_t EncodeDouble(double f) noexcept
double DecodeDouble(uint64_t v) noexcept
size_t CallOneOf(FuzzedDataProvider &fuzzed_data_provider, Callables... callables)