| Igor Schein on Wed, 08 Sep 2004 17:05:45 +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 10:35:18PM +0200, Bill Allombert wrote:
> 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.
Here're 2 more outputs:
hppa64 (benches pass):
beta=4.29497e+09
p=1.84467e+19
u=18446744073709551615
l=9223372036854775807
and the one I already posted in another thread
sparc64 (benches fail):
beta=4.29497e+09
p=1.84467e+19
u=9223372036854775807
l=9223372036854775807
So u=0 is not neccessary for it to work.
Igor