[Numpy-discussion] float128 / longdouble on PPC - is it broken?

Charles R Harris charlesr.harris at gmail.com
Tue Oct 25 10:31:13 EDT 2011


On Mon, Oct 24, 2011 at 10:59 PM, Matthew Brett <matthew.brett at gmail.com>wrote:

> Hi,
>
> I just ran into this on a PPC machine:
>
> In [1]: import numpy as np
>
> In [2]: np.__version__
> Out[2]: '2.0.0.dev-4daf949'
>
> In [3]: res = np.longdouble(2)**64
>
> In [4]: res
> Out[4]: 18446744073709551616.0
>
> In [5]: 2**64
> Out[5]: 18446744073709551616L
>
> In [6]: res-1
> Out[6]: 36893488147419103231.0
>
> Same for numpy 1.4.1.
>
> I don't have a SPARC to test on but I believe it's the same double-double
> type?
>
>
The PPC uses two doubles to represent long doubles, the SPARC uses software
emulation of ieee quad precision for long doubles, very different. The
subtraction of 1 working like multiplication by two is strange, perhaps the
one is getting subtracted from the exponent somehow? It would be interesting
to see if the same problem happens in pure c.

As a work around, can I ask what you are trying to do with the long doubles?

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20111025/69eddd9c/attachment.html>


More information about the NumPy-Discussion mailing list