Jump to content

Talk:Quadruple-precision floating-point format

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 91.213.255.7 (talk) at 03:16, 11 June 2011 (Hardware and software support: powerpc, intel fortran, qd). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
WikiProject iconComputing: CompSci Start‑class Low‑importance
WikiProject iconThis article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
StartThis article has been rated as Start-class on Wikipedia's content assessment scale.
LowThis article has been rated as Low-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computer science (assessed as Low-importance).
Things you can help WikiProject Computer science with:

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?

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.

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

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

Possible Error in the Example for 1/3

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

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]


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]

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]


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). 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.