Content deleted Content added
→Octuple-precision examples: Add examples similar to the pages for other IEEE 754 encodings |
m Reverted edit by 2A01:CB16:201A:C683:0:67:3AB1:9A01 (talk) to last version by Vincent Lefèvre |
||
(31 intermediate revisions by 21 users not shown) | |||
Line 1:
{{short description|256-bit computer number format}}
{{use dmy dates|date=December 2022|cs1-dates=y}}
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 (if ever) used and very few environments support it.▼
{{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]].
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 15 ⟶ 19:
The bits are laid out as follows:
[[File:Octuple precision visual demonstration.
=== 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 29 ⟶ 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]] || (
|-
| 00001<sub>16</sub>, ..., 7FFFE<sub>16</sub> ||colspan=2| normalized value || (
|-
| 7FFFF<sub>16</sub> || ±[[infinity|∞]] || [[NaN]] (quiet,
|}
Line 44 ⟶ 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.
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000<sub>16</sub> = +0
8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000<sub>16</sub> = −0
7fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000<sub>16</sub> = +infinity
ffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000<sub>16</sub> = −infinity
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001<sub>16</sub>
= 2<sup>−262142</sup> × 2<sup>−236</sup> = 2<sup>−262378</sup> ≈ 2.24800708647703657297018614776265182597360918266100276294348974547709294462 ×
(smallest positive subnormal number)
0000 0fff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff<sub>16</sub>
= 2<sup>−262142</sup> × (1 − 2<sup>−236</sup>)
≈ 2.4824279514643497882993282229138717236776877060796468692709532979137875392 ×
(largest subnormal number)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000<sub>16</sub>
= 2<sup>−262142</sup>
≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 ×
(smallest positive normal number)
7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff<sub>16</sub>
= 2<sup>262143</sup> × (2 − 2<sup>−236</sup>)
≈ 1.61132571748576047361957211845200501064402387454966951747637125049607182699 ×
(largest normal number)
Line 89 ⟶ 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
=== Hardware support ===
There is no known hardware with native support for octuple precision
== See also ==
* [[IEEE 754]]
* [[ISO/IEC 10967]], Language-independent arithmetic
* [[Primitive data type]]
* [[Scientific notation]]
== References ==
{{reflist
<ref name="Crandall-Papadopoulos_2002">{{cite web |title=Octuple-precision floating point on Apple G4 (archived copy on web.archive.org) |author-first1=Richard E. |author-last1=Crandall |author-link1=Richard E. Crandall |author-first2=Jason S. |author-last2=Papadopoulos |date=2002-05-08 |url=http://images.apple.com/ca/acg/pdf/oct3a.pdf |url-status=unfit |archive-url=https://web.archive.org/web/20060728140052/http://images.apple.com/ca/acg/pdf/oct3a.pdf |archive-date=2006-07-28}} (8 pages)</ref>
}}
== 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
{{data types}}
|