Content deleted Content added
\wowzeryest\ (talk | contribs) No edit summary |
m Reverted edit by 2A01:CB16:201A:C683:0:67:3AB1:9A01 (talk) to last version by Vincent Lefèvre |
||
(98 intermediate revisions by 46 users not shown) | |||
Line 1:
{{short description|256-bit computer number format}}
{{
{{use list-defined references|date=December 2022}}
In [[computing]], '''octuple precision''' is a binary [[floating-point]]-based [[computer number format]] that occupies [[32]] [[byte]]s ([[256]] [[bit]]s or [[64]] [[nibble]]s) in computer memory. This [[256]] [[bit]] octuple precision is for applications requiring results in higher than [[quadruple precision]]. Disclaimer: This format is rarely (if ever) used and very few things support it.▼
{{Floating-point}}
{{Computer architecture bit widths}}
▲In [[computing]], '''octuple precision''' is a binary [[floating-point]]-based [[computer number format]] that occupies
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: binary128 ==▼
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
* [[Exponent]] width:
* [[Significand]] [[precision (arithmetic)|precision]]:
<!-- "significand", with a d at the end, is a technical term, please do not confuse with "significant" -->
The format is written with an implicit lead bit with value 1 unless the
<!-- (Commented out since the image is incorrect; it could be re-added once corrected.)-->
The bits are laid out as follows:
[[File:Octuple precision visual demonstration.svg|1000px|Layout of octuple-precision floating-point format]]
▲The format is written with an implicit lead bit with value 1 unless the exponent is stored with all zeros. Thus only 112 bits of the [[significand]] appear in the memory format, but the total precision is 113 bits (approximately 34 decimal digits, <math>\log_{10}(2^{113}) \approx 34.016</math>). The bits are laid out as follows:
=== 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
▲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.
▲* E<sub>min</sub> = −262143
* E<sub>max</sub> = 262143
* [[Exponent bias]] =
Thus, as defined by the offset binary representation, in order to get the true exponent the offset of
The stored exponents
{| class="wikitable" style="text-align: center;"
|-
! Exponent !! Significand zero !! Significand non-zero !! Equation
|-
|
|-
|
|-
|
|}
The minimum strictly positive (subnormal) value is {{nowrap|2<sup>
The minimum positive normal value is 2<sup>
The maximum representable value is 2<sup>
=== 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
8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
7fff
ffff
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 × 10<sup>−78984</sup>
(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 × 10<sup>−78913</sup>
(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 × 10<sup>−78913</sup>
(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 × 10<sup>78913</sup>
(largest normal number)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff<sub>16</sub>
= 1 − 2<sup>−237</sup>
≈ 0.999999999999999999999999999999999999999999999999999999999999999999999995472
(largest number less than one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000<sub>16</sub>
= 1 (one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001<sub>16</sub>
= 1 + 2<sup>−236</sup>
≈ 1.00000000000000000000000000000000000000000000000000000000000000000000000906
(smallest number larger than one)
By default, 1/3 rounds down like [[double precision]], because of the odd number of bits in the significand.
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
=== Hardware support ===
There is
== See also ==
* [[IEEE 754]]
▲* [[ISO/IEC 10967]], Language Independent Arithmetic
* [[Primitive data type]]
* [[
== 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}}
[[Category:Binary arithmetic]]▼
[[Category:Data types]]▼
▲[[Category:Binary arithmetic]]
|