Bill Allombert on Mon, 06 Sep 2004 22:42:06 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Alpha nightly build (test) problems


On Mon, Sep 06, 2004 at 01:28:55AM -0700, Phil Carmody wrote:
> Firstly, apologies for the noise at
> http://megrez.math.u-bordeaux.fr/buildlog.html -- I found >20 gp-sta's
> thrashing around in a swapping frenzy this morning, knee-jerk killall-ed them,
> and their builds each proceeded with an outgoing mail before I could stop them.

No problem, if that was a real issue for me, I could remove the
extra buildlogs and reupdate the site.

> I shall try to spoon-feed a single top-of-tree (1.996 probably) build this
> afternoon when I get home from work this evening.

I have tested current CVS on an alpha box and it seems to work fine.

> It appears that the Itanic build wasn't too happy with 'elliptic' last night
> either -- that was the test my gp's seemed to be stuck in, so perhaps this
> isn't just an alpha issue, but a 64-bit one.

I think it is a ia64 specific issue. This boils down to the above program

#include <math.h>
typedef unsigned long ulong;
main()
{
    ulong a=18446744073709551431UL;
    double beta=sqrt((double)a);
    double p=beta*(1UL << 32);
    ulong u = (ulong) p;
    long l= (long) p;
    printf("beta=%g\np=%g\nu=%lu\nl=%ld\n",beta,p,u,l);
    return 0;
}
It returns:

ia64:
beta=4.29497e+09
p=1.84467e+19
u=9223372036854775808
l=-9223372036854775808

alpha:
beta=4.29497e+09
p=1.84467e+19
u=0
l=0

amd64:
beta=4.29497e+09
p=1.84467e+19
u=0
l=-9223372036854775808

Somehow, PARI is much happier with u=0.

I am not quite sure what mandate ieee754 in that situation, and how
PARI can work around such discrepancy.

Cheers,
Bill.