On Tue, Oct 25, 2011 at 11:05 AM, Matthew Brett <matthew.brett@gmail.com> wrote:
Hi,
On Tue, Oct 25, 2011 at 10:52 AM, Charles R Harris <charlesr.harris@gmail.com> wrote:
On Tue, Oct 25, 2011 at 11:45 AM, Matthew Brett <matthew.brett@gmail.com> wrote:
Hi,
On Tue, Oct 25, 2011 at 2:43 AM, Pauli Virtanen <pav@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@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); }
By the way - if you want a login to this machine, let me know - it's always on and we're using it as a buildslave already. Matthew