[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Floating-point formats and standards

This page is part of the web mail archives of SRFI 58 from before July 7th, 2015. The new archives for SRFI 58 contain all messages, not just those from before July 7th, 2015.

A couple of corrections to the 754R description:

Bradd W. Szonye wrote:
> New name    Sig   Exp   Old name   Currently implemented by
> binary16     11     5
> binary32     23     8   single     all systems (hardware)
> binary64     52    11   double     all systems (hardware)
> binary80     64    15   extended   all x86-based systems (hardware)
> binary128   112    15   quad       most RISC systems (software)

In the current draft, the extended format is called "binaryx" instead of
"binary80." Implementations are supposed to provide at least one high-
precision format for intermediate calculations, either binary128 (a
basic format) or binaryx (an implementation-defined format about 50%
more precise than its best basic format).

One proposal recommends specifying binaryx as the x86 extended format. I
have no way of knowing for certain, but I suspect that it will succeed,
since x86 and quad are the only /de facto/ standards for high-precision
IEEE 754 flonums.

That proposal also states which formats a system should support.

For high-performance technical systems:

    Binary64 is mandatory for computation and storage.
    Binary32 is recommended for low-precision, high-density storage.
    Binaryx is recommended for computation on x86-compatible systems.
    Binary128 is recommended for expression evaluation (i.e., temps).

For commercial and financial systems:

    Decimal128 is mandatory for computation and storage.
    Decimal32 and decimal64 are recommended for storage.

The binary requirements match reality pretty well, except for the
binary128 recommendation. (Currently, only x86 systems use high-
precision temps, and they use binaryx instead of binary128.)

Hope this helps.
Bradd W. Szonye