On Mon, Oct 24, 2011 at 10:59 PM, Matthew Brett <matthew.br...@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
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to