numeric.float32.internal.operator ≡
const auto _mantissa_width = 23 §source
const auto _exponent_width = 8 §source
const auto _exponent_bias = 127 §source
using float32PackedFormat = floatPackedFormat<23, 8> §source
struct float32ExpandedFormat §source
struct float32StickyFormat §source
struct productFormat §source
template <Denorm denorm_mode> inline float32ExpandedFormat unpackFloat32(float32PackedFormat a) §source
Apply exponent bias and add mantissa implied one.
inline float32StickyFormat normalizeOutput2Zero(float32StickyFormat input) §source
Set denorm values to 0.
inline float32StickyFormat multNormalizeOutput1(float32StickyFormat in) §source
Shift left to normalize small mantissa values. There is guaranteed to be a 1 in either the MSB or the second-most significant bit because mantissas are normalized before taking the product.
template <Denorm denorm_mode> inline specialCaseFlags getSpecialCases(float32PackedFormat a) §source
Check if nan, zero, inf, or finite.
inline uint27 shiftRightSticky( uint27 inMantissaGuardRoundSticky, uint8 shiftRightAmount ) §source
inline float32StickyFormat align(float32ExpandedFormat input, uint8 shiftRightAmount) §source
inline uint5 priorityOneEncoderCountDown26(uint26 in) §source
inline float32StickyFormat addNormalizeOutput1(float32StickyFormat in) §source
Shift left to normalize small mantissa values. There is no guarantee the input isn’t all zeros.
inline float32 float32_mul_denormoff(float32 in1, float32 in2) §source
Multiply two float32 values with denorm off and return the float32 result.
inline float32 float32_add_denormoff(float32 in1, float32 in2) §source
Add two float32 values with denorm off and return the float32 result.
inline float32 neg(float32 x) §source
Negate input.
inline float32 float32_sub_denormoff(float32 in1, float32 in2) §source
Subtract in2 from in1.