[Numpy-discussion] float128 / longdouble on PPC - is it broken?
Tue Oct 25 12:44:33 CDT 2011
On Tue, Oct 25, 2011 at 7:31 AM, Charles R Harris
> On Mon, Oct 24, 2011 at 10:59 PM, Matthew Brett <firstname.lastname@example.org>
>> I just ran into this on a PPC machine:
>> In : import numpy as np
>> In : np.__version__
>> Out: '2.0.0.dev-4daf949'
>> In : res = np.longdouble(2)**64
>> In : res
>> Out: 18446744073709551616.0
>> In : 2**64
>> Out: 18446744073709551616L
>> In : res-1
>> Out: 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
> The PPC uses two doubles to represent long doubles, the SPARC uses software
> emulation of ieee quad precision for long doubles, very different.
Yes, thanks - I read more after my post. I guess from this:
that AIX does use double-double.
> 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?
I was trying to use them as an intermediate format for high-precision
floating point calculations, before converting to integers.
More information about the NumPy-Discussion