Octuple-precision floating-point format: Difference between revisions

Content deleted Content added
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{According to whom}}
m Reverted edit by 2A01:CB16:201A:C683:0:67:3AB1:9A01 (talk) to last version by Vincent Lefèvre
 
(13 intermediate revisions by 9 users not shown)
Line 1:
{{short description|256-bit computer number format}}
{{refimprove|date=June 2016}}
{{use dmy dates|date=December 2022|cs1-dates=y}}
{{use list-defined references|date=December 2022}}
{{Floating-point}}
{{Computer architecture bit widths}}
In [[computing]], '''octuple precision''' is a binary [[floating-point]]-based [[computer number format]] that occupies 32 [[byte]]s (256 [[bit]]s) in computer memory. This 256-[[bit]] octuple precision is for applications requiring results in higher than [[quadruple precision]]. This format is rarely used and very few environments support it.{{According to whom|date=June 2024}}
 
The range greatly exceeds what is needed to describe all known physical limitations within the observable universe or precisions better than [[Planck units]].
== IEEE 754 octuple-precision binary floating-point format: binary256 ==
 
== IEEE 754 octuple-precision binary floating-point format: binary256 ==
In its 2008 revision, the [[IEEE 754]] standard specifies a '''binary256''' format among the ''interchange formats'' (it is not a basic format), as having:
* [[Sign bit]]: 1 bit
Line 22:
 
=== Exponent encoding ===
 
The octuple-precision binary floating-point exponent is encoded using an [[offset binary]] representation, with the zero offset being 262143; also known as exponent bias in the IEEE 754 standard.
 
Line 33 ⟶ 32:
The stored exponents 00000<sub>16</sub> and 7FFFF<sub>16</sub> are interpreted specially.
 
{| class="wikitable" style="text-align: center;"
|-
! Exponent !! Significand zero !! Significand non-zero !! Equation
|-
| 00000<sub>16</sub> || [[0 (number)|0]], [[−0]] || [[subnormal numbers]] || (-1−1)<sup>signbit</sup> × 2<sup>−262142</sup> × 0.significandbits<sub>2</sub>
|-
| 00001<sub>16</sub>, ..., 7FFFE<sub>16</sub> ||colspan=2| normalized value || (-1−1)<sup>signbit</sup> × 2<sup>exponent bits<sub>2</sub></sup> × 1.significandbits<sub>2</sub>
|-
| 7FFFF<sub>16</sub> || ±[[infinity|∞]] || [[NaN]] (quiet, signallingsignaling)
|}
 
Line 48:
 
=== Octuple-precision examples ===
 
These examples are given in bit ''representation'', in [[hexadecimal]],
of the floating-point value. This includes the sign, (biased) exponent, and significand.
Line 94 ⟶ 93:
So the bits beyond the rounding point are <code>0101...</code> which is less than 1/2 of a [[unit in the last place]].
 
== Implementations ==
Octuple precision is rarely implemented since usage of it is extremely rare. [[Apple Inc.]] had an implementation of addition, subtraction and multiplication of octuple-precision numbers with a 224-bit [[two's complement]] significand and a 32-bit exponent.<ref name="Crandall-Papadopoulos_2002"/> One can use general [[arbitrary-precision arithmetic]] libraries to obtain octuple (or higher) precision, but specialized octuple-precision implementations may achieve higher performance.
 
=== Hardware support ===
There is no known hardware implementationwith ofnative support for octuple precision.
 
== See also ==
Line 111 ⟶ 110:
}}
 
== Further reading ==
* {{cite book |author-first=Nelson H. F. |author-last=Beebe |title=The Mathematical-Function Computation Handbook - Programming Using the MathCW Portable Software Library |date=2017-08-22 |___location=Salt Lake City, UT, USA |publisher=[[Springer International Publishing AG]] |edition=1 |lccn=2017947446 |isbn=978-3-319-64109-6 |doi=10.1007/978-3-319-64110-2 }}