12 #if !UAVCAN_USE_EXTERNAL_FLOAT16_CONVERSION
29 const Fp32 f32infty = { 255U << 23 };
30 const Fp32 f16infty = { 31U << 23 };
31 const Fp32 magic = { 15U << 23 };
32 const uint32_t sign_mask = 0x80000000U;
43 if (in.
u >= f32infty.
u)
46 out = (in.
u > f32infty.
u) ? 0x7FFFU : 0x7C00U;
53 if (in.
u > f16infty.
u)
72 const Fp32 magic = { (254U - 15U) << 23 };
73 const Fp32 was_infnan = { (127U + 16U) << 23 };
76 out.
u = (value & 0x7FFFU) << 13;
78 if (out.
f >= was_infnan.
f)
82 out.
u |= (value & 0x8000U) << 16;
87 #endif // !UAVCAN_USE_EXTERNAL_FLOAT16_CONVERSION