Talk:Quadruple-precision floating-point format

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Title[edit]

I think this article should be moved, since the title is not conform to IEEE 754r, which refers the format as quad or quadruple precision, but never quad precision. Also quad is not really an adjective like single and double. See e.g. the draft on [1]. — Ylai 08:53, 9 January 2006 (UTC)[reply]

Good point. So changed. --Jake 21:43, 9 January 2006 (UTC)[reply]

1/3 rounds up or down?[edit]

This page on quadruple precision says:

   (1/3 rounds up like double precision, because of the odd number of bits in the significand.)

However the page for double precision says:

   (1/3 rounds down instead of up like single precision, because of the odd number of bits in the significand.)

These statements contradict each other.

It appears this has been cleaned up. -Jake (talk) 04:27, 20 September 2014 (UTC)[reply]

Max quad begins with (hex) 7fef or 7ffe?[edit]

I think it should probably be "7ffe" in the first block of four hex digits unless anyone can say why not.

Yes, 7ffe -Jake (talk) 04:27, 20 September 2014 (UTC)[reply]

Possible Error in the Example for 1/3[edit]

It appears that an error has crept into the example for 1/3, namely:

1) The examples states that the following bits, presented as hex numbers, denote 1/3:

3ffeh 5555h 5555h 5555h 5555h 5555h 5555h 5555h

2) When expanded into binaly notation this is:

0011b 1111b 1111b 1110b 0101b 0101b 0101b 0101b ....

3) The exponent is (15 bits):

011111111111110b = 16382d, adding the offset of -16383d the value of the exponent is found to be 16382-16383=-1d. And this is what appears wrong to me. It must be -2d. Why? Because, read on...

4) The mantissa is:

0101b 0101b 0101b .... = 1/4d + 1/16d + 1/64d + 1/256d + 1/1024d + 1/4096d ... = 0.333d... When we add the implied 1d the value of the matissa is found to be 1+0.333...=1.333d...

5) Finally we construct the floating-point number as follows:

mantissa * 2^exponent = 1.333... * 2^-1 = 1.333... * 1/2 = 0.666..., which is not 1/3 as the text states it must be. However, if the exponent was -2 then the result would be: mantissa * 2^exponent = 1.333... * 2^-2 = 1.333... * 1/4 = 0.333..., which is the correct result.

6) Bottom line: I think that the example for 1/3 must be:

3ffdh 5555h 5555h 5555h 5555h 5555h 5555h 5555h

Plamka 23:16, 17 September 2007 (UTC)[reply]

Plamka is right and unfortunately MAX is also broken. I've changed the values accordingly. --136.172.253.11 19:17, 5 March 2008 (UTC)[reply]


Hardware and software support[edit]

Do any hardware or CPUs support quadruple precision floating point already?

Do any programming languages?

193.74.100.50 (talk) 08:00, 9 May 2008 (UTC)[reply]

Java does not support quadruples, but you can use BigDecimals instead. C/C++ has 'long double', but that might be interpreted the same as 'double'.
Honnza (talk) 06:41, 22 May 2008 (UTC)[reply]
On x86 and x86-64 architectures, most compilers interpret "long double" as 80-bit x87 "extended precision", even when sizeof(long double) is 16 due to padding to align to ABI requirements. --Delirium (talk) 05:35, 8 March 2009 (UTC)[reply]
If a current 64 bit CPU did a "quadruple precision" the number would be 256 BIT, unless it follows IEEE 754 standards, which seriously need to be updated which were with the new IEEE 754r which now includes 128 BIT numbers —Preceding unsigned comment added by Trentc (talkcontribs) 20:51, 27 June 2009 (UTC)[reply]
Untree, it would be 128 bits of course. I have no idea why you say it will take 256 bits. QUadruple do not mean "4 x native-word size", it is just 4 times more precise than standard floating point (single precision, commonly known in programming as just "float"). Also 80-bit x87 "extended precision", in memory is often stored as 96bits or 128bits, depending of needs, operating system, and other issues (like alligment). — Preceding unsigned comment added by 91.213.255.7 (talk) 03:19, 11 June 2011 (UTC)[reply]

In the first paragraph, the article claims that quadruple precision could refer to integers, fixed point numbers, or floating point numbers, but the rest of the article solely discusses floating point numbers. Could somebody rectify this? —Preceding unsigned comment added by 128.101.38.232 (talk) 19:55, 27 October 2008 (UTC)[reply]

The IBM z Series supports quad precision. See: this paper, Figure 1. mfc (talk) 11:59, 10 March 2009 (UTC)[reply]

IBM hex (base 16) floating point has supported extended (128 bit) precision starting with the 360/85, and all models of S/370 and successors, except that DXR (extended precision divide) was done in software emulation until part way through the ESA/390 years. Newer processors implement binary (IEEE) and decimal (IEEE) floating point, including extended (128 bit) precision. Gah4 (talk) 00:01, 25 October 2011 (UTC)[reply]

The VAX had support for 128-bit floats (called h_float) since the 1970s, but it's not IEEE 754-compliant. —Preceding unsigned comment added by 69.54.60.34 (talk) 14:04, 15 September 2010 (UTC)[reply]

VAX still supports H-Float, but it is implemented through software emulation on most models, or optional microcode. The VAX 11/730, implemented in microcode through the AMD2900 series bit-slice logic, normally came with H-Float. Gah4 (talk) 00:01, 25 October 2011 (UTC)[reply]

Some (all?) PowerPC CPUs supports quadprecision nativly. Also few compilers like Intel Fortran compiler (but few others also) supports quad-precision (not sure if strictly IEEE754, but they do) on x86 and amd64 systems using only double precision numbers with additions of some refinments or software functions. There is also few (about 3), lightwaight and fast libraries for quad and octal precision using 2xdouble (or 4xfloat for old architecture) or 4xdouble, but they do not have only about 90% precision of real quad or octal floating point numbers. One of such libraries is QD and DDFUN90 library. — Preceding unsigned comment added by 91.213.255.7 (talk) 03:16, 11 June 2011 (UTC)[reply]

About PowerPC - we can add this information, but can you provide and link to the articles (e.g. magazine articles, IBM's articles, any conference paper, but not a forum or non-IBM wokrer blog) which will explicitly say about hardware support of quad (128-bit) floating point in hardware? `a5b (talk) 14:22, 3 August 2011 (UTC)[reply]
I think the anon is confusing compiler support for hardware support. Several PowerPC compilers support a quadruple precision type, but they do so by compiling to a software implementation -- PowerPC hardware only has instructions for single and double precision as far as I know. — Steven G. Johnson (talk) 22:36, 4 August 2011 (UTC)[reply]
On PowerPC (Mac OS X and GNU/Linux) the long double C type corresponds to the double-double arithmetic (implemented in software). Vincent Lefèvre (talk) 00:43, 16 February 2012 (UTC)[reply]


Link to Multiprecision Computing Toolbox for MATLAB[edit]

A link to Multiprecision Computing Toolbox for MATLAB was added, which is fine since according to http://www.advanpix.com/2013/01/20/fast-quadruple-precision-computations/ this toolbox has specific, optimized support for IEEE quadruple precision (not just generic arbitrary precision). However this is a bit hidden. I think that some reference to this page from the changelog should be given, but I wonder what form it should take (this cannot be a real reference, since the external links appear after the references). Vincent Lefèvre (talk) 17:39, 12 April 2013 (UTC)[reply]

Links to specific commercial systems such as this one are not appropriate per WP:ELNO, I removed it again. - MrOllie (talk) 10:04, 17 September 2013 (UTC)[reply]
Any commercial software or product can be described as "specific commercial system". I think there is some major misunderstanding since Wikipedia has a lot references to "specific commercial systems" like Microsoft Windows, MATLAB, Intel CPUs, etc. This page alone contains links to Microsoft Visual C++, Intel C++/Fortran compiler and even SPARC processor - all of which are very "specific commercial systems". The Multiprecision Computing Toolbox for MATLAB is no different from these tools. Toolbox adds quadruple-precision floating-point support to MATLAB system. It is used by hundreds of researchers around the globe, cited in dozens of scientific papers and books (citations appeared just in last several months: http://www.advanpix.com/2015/04/02/citations-digest-v-4/). Why do you think it is not good enough for Wikipedia?
WP:ELNO is designed to prevent the scam, spam and links to malicious/harmful resources. It has no any signs of crusade against "specific commercial systems". Obviously removal of all references to "specific commercial systems" would make the article (and Wikipedia in general) shallow and non-informative.
Could you please explain in detail your reasoning and provide exact item number from WP:ELNO which toolbox falls under? Kletka (talk) 02:55, 20 June 2015 (UTC)[reply]
Now I think that there should be a third subsection "Libraries and toolboxes" for Implementations, and these external links would mainly be references (unless there already is a Wikipedia article for them). – Vincent Lefèvre (talk) 11:05, 20 June 2015 (UTC)[reply]
I think this would work nicely. Actually, as a draft, I have added such sub-section with two references. Please revise/remove it or let's discuss further. I have added link to toolbox if no other complains exist. Kletka (talk) 02:35, 22 June 2015 (UTC)[reply]
They were not references, but external links. I've replaced them by references, with more accurate URL's about the features in question. – Vincent Lefèvre (talk) 22:12, 22 June 2015 (UTC)[reply]
Yes, definitely, this is much better. Will follow the style in future. 223.218.164.210 (talk) 02:24, 23 June 2015 (UTC)[reply]

External links modified[edit]

Hello fellow Wikipedians,

I have just modified 2 external links on Quadruple-precision floating-point format. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at {{Sourcecheck}}).

checkY An editor has reviewed this edit and fixed any errors that were found.

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—cyberbot IITalk to my owner:Online 19:07, 20 April 2016 (UTC)[reply]

Add minimum to examples?[edit]


 0001 0000 0000 0000 0000 0000 0000 0000   ≈  -1.189731495357231765085759326628008 × 10<sup>-4932</sup> 
                                              (min quadruple precision)

This probably needs to be added for those wishing to know what the minimum is in hexadecimal. However, I am not sure if it is truely `-1.189...7 + 0.0...1 x 10-4932`. I didn't calculate it.

Much love, PauSix (talk) 03:27, 20 October 2018 (UTC)[reply]

Last November I added more examples to all the various floating-point formats, so that (hopefully) they all contain the same set of examples. The minimum value mentioned above was added as "smallest positive normal number". Peter J. Acklam (talk) 07:44, 7 August 2019 (UTC)[reply]

Conversion to binary and back[edit]

The sentence "If a decimal string with at most 33 significant digits is converted to IEEE 754 quadruple-precision representation, and then converted back to a decimal string with the same number of digits, the final result should match the original string" is only true if the quadruple precision representation is a normal number. Subnormals have less precision and proportionately fewer decimal digits are allowed. The wikipedia article for double precision floating-point format has the same issue. 2601:18C:4200:60F0:845C:148F:C31C:6449 (talk) 13:48, 15 August 2022 (UTC)[reply]

Thanks (and this won't work either in case of overflow, though this is a bit more obvious). I've just done the correction in Quadruple-precision floating-point format, Double-precision floating-point format and Single-precision floating-point format. — Vincent Lefèvre (talk) 17:43, 17 August 2022 (UTC)[reply]

Broken Link[edit]

Reference 1, which is:

David H. Bailey; Jonathan M. Borwein (July 6, 2009). "High-Precision Computation and Mathematical Physics" (PDF).

no longer works for me. 64.16.131.2 (talk) 21:45, 22 February 2023 (UTC)[reply]

Thanks for the information. I've just updated the URL. — Vincent Lefèvre (talk) 21:58, 22 February 2023 (UTC)[reply]