Boost logo

Boost :

From: Matt Hurd (matthurd_at_[hidden])
Date: 2019-10-15 12:04:30

> Thanks for these useful references.

> Are bloat16 and IEEE float16
> I:\boost\libs\math\include\boost\math\cstdfloat\cstdfloat_types.hpp
> the two layouts that we need to consider?

Arm also supports another in that it has two similar formats __fp16 and
_Float16 :-(

"ARM processors support (via a floating point control register
<> bit) an "alternative
half-precision" format, which does away with the special case for an
exponent value of 31 (111112).[10]
is almost identical to the IEEE format, but there is no encoding for
infinity or NaNs; instead, an exponent of 31 encodes normalized numbers in
the range 65536 to 131008." from wiki:

Arm reference:
gcc ref:

Strange complexity within Arm: "The ARM target provides hardware support
for conversions between __fp16 and float values as an extension to VFP and
NEON (Advanced SIMD), and from ARMv8-A provides hardware support for
conversions between __fp16 and double values. GCC generates code using
these hardware instructions if you compile with options to select an FPU
that provides them; for example, -mfpu=neon-fp16 -mfloat-abi=softfp, in
addition to the -mfp16-format option to select a half-precision format."

Unpleasant, sorry.

More bfloat16 FWIW (hardware support list is longer):

So that makes at least 3 I guess.

Facebook has been experimenting with an alternate format Gustafson's post
which is quite neat and rational and perhaps better than ieee at 64 bit
Facebook reference:
posit "land":

but posit only lives in FPGA land AFAICT and not yet something to worry


> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at