Is sysdeps/ieee754/dbl-64/e_remainder.c broken?

Geoff Keating geoffk@geoffk.org
Fri Nov 23 06:17:00 GMT 2001


> Date: Tue, 27 Nov 2001 13:23:46 -0800
> From: "H . J . Lu" <hjl@lucon.org>

> > Happily, I do.  On powerpc, all the tests pass except for those
> > related to 'conj' in test-ifloat.  I need to look at that, but it's
> > likely a compiler bug in the 2.95.2 compiler I'm using.
> > 
> 
> Please try this on your Linux/PPC with the current glibc. I believe
> sysdeps/ieee754/dbl-64/e_remainder.c is broken. But I don't know what
> is the best way to fix it

Yes, it seems like you have found a bug.  I think I know what they did
wrong and can fix it.  The problem is that, when calculating
remainder(x,y), the expression

z=u.x*r.x;

can overflow, where u.x==x and r.x==1.0/y.  They tried to fix this
by avoiding such cases, but didn't quite manage it (by a factor of
about 2^900 :-).

>  and verify the whole IBM math library is ok.

For that, I would recommend writing more test cases.

> I am considering to use the old IEEE math library for MIPS.

Wouldn't it be better to fix the new, better, library?

-- 
- Geoffrey Keating <geoffk@geoffk.org> <geoffk@redhat.com>



More information about the Libc-alpha mailing list