[Numpy-discussion] float128 / longdouble on PPC - is it broken?
Matthew Brett
matthew.brett at gmail.com
Tue Oct 25 14:05:40 EDT 2011
Hi,
On Tue, Oct 25, 2011 at 10:52 AM, Charles R Harris
<charlesr.harris at gmail.com> wrote:
>
>
> On Tue, Oct 25, 2011 at 11:45 AM, Matthew Brett <matthew.brett at gmail.com>
> wrote:
>>
>> Hi,
>>
>> On Tue, Oct 25, 2011 at 2:43 AM, Pauli Virtanen <pav at iki.fi> wrote:
>> > 25.10.2011 06:59, Matthew Brett kirjoitti:
>> >> res = np.longdouble(2)**64
>> >> res-1
>> >> 36893488147419103231.0
>> >
>> > Can you check if long double works properly (not a given) in C on that
>> > platform:
>> >
>> > long double x;
>> > x = powl(2, 64);
>> > x -= 1;
>> > printf("%g %Lg\n", (double)x, x);
>> >
>> > or, in case the platform doesn't have powl:
>> >
>> > long double x;
>> > x = pow(2, 64);
>> > x -= 1;
>> > printf("%g %Lg\n", (double)x, x);
>>
>> Both the same as numpy:
>>
>> [mb312 at jerry ~]$ gcc test.c
>> test.c: In function 'main':
>> test.c:5: warning: incompatible implicit declaration of built-in function
>> 'powl'
>
> I think implicit here means that that the arguments and the return values
> are treated as integers. Did you #include <math.h>?
Ah - you've detected my severe ignorance of c. But with math.h, the
result is the same,
#include <stdio.h>
#include <math.h>
int main(int argc, char* argv) {
long double x;
x = pow(2, 64);
x -= 1;
printf("%g %Lg\n", (double)x, x);
}
See you,
Matthew
More information about the NumPy-Discussion
mailing list