This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]