8static constexpr uint16_t FLOAT16_SIGN_MASK = UINT16_C(0x8000);
9static constexpr uint16_t FLOAT16_EXPONENT_MASK = UINT16_C(0x7C00);
10static constexpr uint16_t FLOAT16_SIGNIFICAND_MASK = UINT16_C(0x03FF);
12static constexpr uint16_t FLOAT16_SIGN_BIT_POSITION = UINT16_C(15);
13static constexpr uint16_t FLOAT16_EXPONENT_BIT_POSITION = UINT16_C(10);
15static constexpr uint16_t FLOAT16_SIGNIFICAND_NUM_BITS = FLOAT16_EXPONENT_BIT_POSITION;
17static constexpr uint16_t FLOAT16_EXPONENT_INFINITY_NAN = UINT16_C(0x001F);
18static constexpr uint16_t FLOAT16_EXPONENT_BIAS = UINT16_C(15);
20static constexpr uint32_t FLOAT32_SIGN_MASK = UINT32_C(0x80000000);
21static constexpr uint32_t FLOAT32_EXPONENT_MASK = UINT32_C(0x7F800000);
22static constexpr uint32_t FLOAT32_SIGNIFICAND_MASK = UINT32_C(0x007FFFFF);
24static constexpr uint32_t FLOAT32_SIGN_BIT_POSITION = UINT32_C(31);
25static constexpr uint32_t FLOAT32_EXPONENT_BIT_POSITION = UINT32_C(23);
27static constexpr uint32_t FLOAT32_SIGNIFICAND_NUM_BITS = FLOAT32_EXPONENT_BIT_POSITION;
29static constexpr uint32_t FLOAT32_EXPONENT_INFINITY_NAN = UINT32_C(0x00FF);
30static constexpr uint32_t FLOAT32_EXPONENT_BIAS = UINT32_C(127);
42 << (FLOAT32_SIGNIFICAND_NUM_BITS - FLOAT16_SIGNIFICAND_NUM_BITS);
51 exponent32 = 1 + FLOAT32_EXPONENT_BIAS - FLOAT16_EXPONENT_BIAS;
62 else if (
exponent16 == FLOAT16_EXPONENT_INFINITY_NAN)
75 << (FLOAT32_SIGN_BIT_POSITION - FLOAT16_SIGN_BIT_POSITION);
94 (
significand32 >> (FLOAT32_SIGNIFICAND_NUM_BITS - FLOAT16_SIGNIFICAND_NUM_BITS)));
107 else if (
exponent32 == FLOAT32_EXPONENT_INFINITY_NAN)
116 static_cast<int32_t>(FLOAT32_EXPONENT_BIAS) +
static_cast<int32_t>(FLOAT16_EXPONENT_BIAS));
136 (FLOAT32_SIGNIFICAND_NUM_BITS - FLOAT16_SIGNIFICAND_NUM_BITS +
significandShift));
139 ((
fullSignificand32 >> (FLOAT32_SIGNIFICAND_NUM_BITS - FLOAT16_SIGNIFICAND_NUM_BITS +
149 ((
significand32 >> (FLOAT32_SIGNIFICAND_NUM_BITS - FLOAT16_SIGNIFICAND_NUM_BITS - 1)) &
uint64_t convertDoubleToUInt64(double float64)
uint32_t convertFloatToUInt32(float float32)
float convertUInt32ToFloat(uint32_t float32Value)
double convertUInt64ToDouble(uint64_t float64Value)
uint16_t convertFloatToUInt16(float float32)
float convertUInt16ToFloat(uint16_t float16Value)