Notes on long double support============================The βlong doubleβ type is different on each architecture. Depending onthe available hardware and ABI conventions, performance compromises,etc, there may be many implementations of it. Here is a summary for ourconvenience.128-bit IEEE------------Platforms: Sparc, ARM64, RISC-VThis is the standard long double type from IEEE754. It has 1 sign bit,15 exponent bit, and 112 fractional part bits. It is the naturalextension of the 64bit double.Sparc specifies this type in their ABI but no implementation actuallyhas the instructions, they instead trigger a trap which would softwareemulate them. However, gcc short circuits this by default and calls Clibrary support functions directly... _bit-ieee-1:64-bit IEEE-----------Platforms: ARMThis is the same representation as plain βdoubleβ. ARM uses this forsimplicity.80-bit------Platform: x86, x86_64, m68kThis intermediate format is used by x86 CPUs internally. It may end upbeing faster than plain double there. It consists of a 64bit fractionalpart, 15 exponent bits, and 1 sign bit. This is convenient because thefractional part is a relatively easy to handle 64bit number.m68k uses a similar format, but padded to 96 bits (the extra 16 bits areunused).double double-------------Platforms: PowerPC?This is also a 128bit type, but the representation is just two 64bitdoubles. The value is the sum of the two halves. This format allowsfaster emulation than a βtrueβ 128bit long double, and the precision isalmost as good.