class Aws::Cbor::Decoder
def read_half
exponent - 5 bits
sign - 1 bit
format:
Support decoding only
16 bit IEEE 754 half-precision floats
def read_half read_info b16 = take(2).unpack1('n') exp = (b16 >> 10) & 0x1f mant = b16 & 0x3ff val = case exp when 0 Math.ldexp(mant, -24) when 31 mant.zero? ? Float::INFINITY : Float::NAN else # exp bias is 15, but to use ldexp we divide by 1024 (2^10) to get # exp-15-10 Math.ldexp(1024 + mant, exp - 25) end if (b16[15]).zero? val else -val end end