Octuple-precision floating-point format: Difference between revisions

Content deleted Content added
mNo edit summary
cleaning up trivia; needs much checking and sourcing, as this article may be more extrapolation than sourced material
Line 1:
\{{Unreferenced|date=April 2009}}
{{Cleanup|date=April 2009}}
 
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.
 
 
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}}
 
== IEEE 754 octuple-precision binary floating-point format: binary128binary256 ==
 
The IEEE 754 standard specifies a '''binary256''' as having:{{dubious|reason=No references found. Some descriptions (e.g. [http://www.researchgate.net/publication/224087006_A_system_on_the_Web_for_octuple-precision_computation]) mention octuple precision with other sizes, such as a 15-bit exponent and 240-bit explicit mantissa|date=May 2015}}
The IEEE 754 standard specifies a '''binary128''' as having:
* [[Sign bit]]: 1 bit
* [[Exponent]] width: 18 bits
Line 15 ⟶ 13:
<!-- "significand", with a d at the end, is a technical term, please do not confuse with "significant" -->
 
This gives from 33 -to 36 significant decimal digits' precision. (ifIf a decimal string with at most 33 significant decimal digits is converted to IEEE 754 octuple precision and then converted back to the same number of significant decimal digits, then the final string should match the original; and if an IEEE 754 octuple precision is converted to a decimal string with at least 36 significant decimal and then converted back to octuple precision, then the final number must match the original .<ref name=whyieee>{{cite web|url=http://www.cs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF|title=Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic| author=William Kahan |date=1 October 1987}}</ref>).
 
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,: {{nowrap|log<mathsub>\log_{10}</sub>(2^{<sup>113}</sup>) \approx 34.016</math>}}). The bits are laid out as follows:
 
[[|thumbnail|center]]
[[File:Octuple persision visual demontration.png|1000px|Octuple persisionprecision visual demontrationdemonstration]]
 
=== Exponent encoding ===
Line 43 ⟶ 41:
|}
 
The minimum strictly positive (subnormal) value is {{nowrap|2<sup>−16494</sup> ≈ 10<sup>−4965</sup>}} and has a precision of only one bit.
The minimum positive normal value is 2<sup>−16382</sup> ≈ 3.3621 × 10<sup>−4932</sup> and has a precision of 112&nbsp;bits, i.e. ±2&thinsp;<sup>−16494</sup> as well.
The maximum representable value is 2<sup>16384</sup> - 2<sup>16272</sup> ≈ 1.1897 × 10<sup>4932</sup>.
 
=== Octuple-precision examples ===
Line 52 ⟶ 50:
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 = +0
8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 = -0−0
 
7fff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 = +infinity
ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 = -infinity−infinity
 
By default, 1/3 rounds down like [[double precision]], because of the odd number of bits in the significand.
Line 62 ⟶ 60:
 
==Implementations==
Octuple precision is rarely if ever implemented in to software since usage of it is extremely rare. One can use general [[arbitrary-precision arithmetic]] libraries to obtain octuple (or higher) precision, but specialized octrupleoctuple-precision implementations may achieve higher performance.
 
===Computer-language support===
In C++, It is possible to make a library to handle Octupleoctuple-precision floating-point arithmetic. Controversially, inIn theory it is possible to do Octupleoctuple-precision floating-point arithmicarithmetic in binary (but it would be incredibly hard, painful torture).
 
=== Hardware support ===
There is little to no hardware support for octuple -precision arithmetic.
 
== See also ==
* [[IEEE 754-2008|IEEE Standard for Floating-Point Arithmetic (IEEE 754)]]
* [[Extended precision]] (80-bit)
* [[ISO/IEC 10967]], Language-independent Independent Arithmeticarithmetic
* [[Primitive data type]]
* [[long double]]
* [[SingleHalf-precision floating-point format|]]
* [[Single-precision floating -point format]]
*The entire layout of this page is based off of [[QuadrupleDouble-precision floating-point format]]/
* [[Octuple-precision_floating-point_format]]
* [[Quadruple-precision floating-point format]]
* [[Half-precision_floating-point_format]]
* [[Octuple-precision floating-point format]]
* [[Double-precision_floating-point_format|Double-precision_floating-point_format]]
* [[Quadruple-precision_floating-point_format]]
 
== References ==
{{reflist|colwidth=30em}}
 
==Source For The Layout Of This Entire Page==
*The entire layout of this page is based off of [[Quadruple-precision floating-point format]]/
 
[[Category:Binary arithmetic]]
[[Category:Data types]]
 
<!--This page is a slightly modified copy of the https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format page. I do not believe this is plaugerizingplagiarizing because it comes from wikipediaWikipedia, but if it is then please delete this page since it would be nearly impossible to fix this page. :)-->