This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Update sparc ULPs.
From: "Joseph S. Myers" <joseph@codesourcery.com>
Date: Sun, 18 Nov 2012 22:03:21 +0000
> On Sun, 18 Nov 2012, David Miller wrote:
>
>> I haven't looked deeply into them yet, but I wonder if they are
>> related to these snippets you added to the long-double implementation
>> of these routines when those tests were added, for example from
>> math/s_clog10l.c:
>>
>> ====================
>> /* To avoid spurious underflows, use this definition to treat IBM long
>> double as approximating an IEEE-style format. */
>> #if LDBL_MANT_DIG == 106
>> # undef LDBL_EPSILON
>> # define LDBL_EPSILON 0x1p-106L
>> #endif
>> ====================
>
> I don't think special code for the peculiarities of a non-IEEE type, that
> is clearly conditioned so it won't apply for any IEEE type, can have
> anything to do with failures for an IEEE type.
Indeed.
I've done some investigation meanwhile and we end up down in
atanl(), via atan2l().
atan2l: x[-2.083218e+306L] y[1.755781e+174L]
atanl: x[-7.672687e+306L]
And the atanl() is what generates the spurious underflow.
I'll see if I can correct this.