From 9a71f1fcf53615c00b5f9e5da4bba92bccb0efb4 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 14 May 2015 23:51:09 +0000 Subject: Fix atanf spurious underflows (bug 18196). The sysdeps/ieee754/flt-32 version of atanf produces spurious underflow exceptions for some large arguments, because of computations that compute x^-4. This patch fixes this by adjusting the threshold for large arguments (for which +/- pi/2 can just be returned, the correct result being roughly +/- pi/2 - 1/x) from 2^34 to 2^25. Tested for x86_64 and x86. [BZ #18196] * sysdeps/ieee754/flt-32/s_atanf.c (__atanf): Use 2^25 not 2^34 as threshold for large arguments. * math/auto-libm-test-in: Add another test of atan. * math/auto-libm-test-out: Regenerated. --- ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index f6bf877b16..1179142c92 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2015-05-14 Joseph Myers + [BZ #18196] + * sysdeps/ieee754/flt-32/s_atanf.c (__atanf): Use 2^25 not 2^34 as + threshold for large arguments. + * math/auto-libm-test-in: Add another test of atan. + * math/auto-libm-test-out: Regenerated. + [BZ #16339] * sysdeps/i386/fpu/s_log1p.S (dbl_min): New object. (__log1p): Force underflow exception for results with small -- cgit 1.4.1