FloatValue

struct FloatValue

Public Types

enum class Class : std::uint8_t

Values:

enumerator NORMAL
enumerator SUBNORMAL
enumerator ZERO
enumerator INF
enumerator NOT_A_NUMBER

Public Functions

std::string bits() const

exp_size+sig_size interchange bits, MSB first

std::optional<double> to_double() const

exact for formats <= binary64

std::optional<RationalValue> to_rational() const

finite values only

Public Members

std::uint32_t exp_size = 0
std::uint32_t sig_size = 0

sig_size includes the hidden bit

bool sign = false
std::uint64_t biased_exponent = 0

exp_size bits

std::vector<std::uint64_t> significand

sig_size-1 trailing bits, LSB-first

enum stp::api::FloatValue::Class cls = Class::ZERO