Union to create double values with integer constants. More...
Public Member Functions | |
operator double () const noexcept | |
Accessor to load the double precision floating point value. | |
uint64_double_t & | operator= (double dInput) noexcept |
Update with a new floating point value. | |
double | get_double (void) const noexcept |
Accessor to load the 64 float. | |
void | set_double (double dInput) noexcept |
Set the floating point value with a double. | |
uint64_t | get_uint64 (void) const noexcept |
Accessor to load the 64 bit value in binary. | |
void | set_uint64 (uint64_t uInput) noexcept |
Set the floating point value with a binary representation in an integer. | |
uint32_t | get_low_uint32 (void) const noexcept |
Accessor to load the low 32 bits of the 64 bit word. | |
uint32_t | get_high_uint32 (void) const noexcept |
Accessor to load the upper 32 bits of the 64 bit word. | |
void | set_low_uint32 (uint32_t uInput) noexcept |
Accessor to load the low 32 bits of the 64 bit word. | |
void | set_high_uint32 (uint32_t uInput) noexcept |
Accessor to load the low 32 bits of the 64 bit word. | |
Public Attributes | |
uint64_t | w |
Value in binary. | |
double | d |
Value as a 64 bit float. | |
uint32_t | w32 [2] |
Array of 2 32 bit words that map on the 64 bit value. | |
Union to create double values with integer constants.
Some "C" compilers are not 100% accurate in creating floating point constants. To get around this limitation, once the binary representation of a floating point number is determined, it will be used to assign the value so the binary representation does not change from compiler to compiler.
This union is also used to obtain the binary representation of a 64 bit float in a cross compiler way.
|
inlinenoexcept |
Accessor to load the 64 float.
|
inlinenoexcept |
Accessor to load the upper 32 bits of the 64 bit word.
|
inlinenoexcept |
Accessor to load the low 32 bits of the 64 bit word.
|
inlinenoexcept |
Accessor to load the 64 bit value in binary.
|
inlinenoexcept |
Accessor to load the double precision floating point value.
|
inlinenoexcept |
Update with a new floating point value.
dInput | 64 bit floating point number to store in the union |
|
inlinenoexcept |
Set the floating point value with a double.
dInput | 64 bit float to store in the union |
|
inlinenoexcept |
Accessor to load the low 32 bits of the 64 bit word.
uInput | 32 bit integer to store in the upper 32 bits of the double |
|
inlinenoexcept |
Accessor to load the low 32 bits of the 64 bit word.
uInput | 32 bit integer to store in the low 32 bits of the double |
|
inlinenoexcept |
Set the floating point value with a binary representation in an integer.
uInput | 64 bit integer to store in the union |
double Burger::uint64_double_t::d |
Value as a 64 bit float.
uint64_t Burger::uint64_double_t::w |
Value in binary.
uint32_t Burger::uint64_double_t::w32[2] |
Array of 2 32 bit words that map on the 64 bit value.