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

Charles R Harris charlesr.harris@gmail....
Tue Oct 25 09:31:13 CDT 2011


On Mon, Oct 24, 2011 at 10:59 PM, Matthew Brett <matthew.brett@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.scipy.org/pipermail/numpy-discussion/attachments/20111025/69eddd9c/attachment.html 


More information about the NumPy-Discussion mailing list