Fix ctan, ctanh overflow (bug 11521)

Ryan S. Arnold ryan.arnold@gmail.com
Wed Apr 25 15:57:00 GMT 2012


On Tue, Apr 24, 2012 at 2:44 PM, Ryan S. Arnold <ryan.arnold@gmail.com> wrote:
> On Tue, Apr 24, 2012 at 2:14 AM, Andreas Jaeger <aj@suse.com> wrote:
>>> 2012-04-17  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
>>>
>>>       [BZ #11521]
>>>       * sysdeps/ieee754/ldbl-128ibm/s_ctanhl.c: Avoid internal overflow or
>>>       cancellation in calculating denominator.
>>>       * sysdeps/ieee754/ldbl-128ibm/s_ctanl.c: Likewise.
>>>       * sysdeps/powerpc/fpu/libm-test-ulps: Update for ctan, ctanh fix.
>>
>> This looks fine to me but I'd like to have Ryan comment as well,
>
> I'm going to apply it and check the results before giving my Ack.

Adhemerval,

In the future, please make sure you include the symbol under which the
code was modified in the ChangeLog, e.g.,

* sysdeps/ieee754/ldbl-128ibm/s_ctanhl.c (__ctanhl): Avoid internal
overflow or cancellation in calculating denominator.

I still see four ulps errors.  Here's one of them.

testing long double (without inline functions)
Failure: Test: Real part of: ctan (0x1p127 + 1 i) ==
0.2446359391192790896381501310437708987204 +
0.9101334047676183761532873794426475906201 i
Result:
 is:          2.44635939119279089638e-01   0x1.f503afef8c6453a5fe3fp-3
 should be:   2.44635939119279089638e-01   0x1.f503afef8c6453a5fe3fp-3
 difference:  6.16297582203915472978e-33   0x1.00000000000000000000p-107
 ulp       :  2.0000
 max.ulp   :  0.0000

This is building glibc with gcc version 4.6.4 20120327

Ryan



More information about the Libc-alpha mailing list