From 948e12a238715b2931cc42486db9e502ff943e54 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 19 Aug 2015 22:42:01 +0000 Subject: Fix csqrt missing underflows (bug 18370). The csqrt implementations in glibc can miss underflow exceptions when the real or imaginary part of the result becomes tiny in the course of scaling down (in particular, multiplication by 0.5) and that scaling is exact although the relevant part of the mathematical result isn't. This patch forces the exception in a similar way to previous fixes. Tested for x86_64 and x86. [BZ #18370] * math/s_csqrt.c (__csqrt): Force underflow exception for results whose real or imaginary part has small absolute value. * math/s_csqrtf.c (__csqrtf): Likewise. * math/s_csqrtl.c (__csqrtl): Likewise. * math/auto-libm-test-in: Add more tests of csqrt. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. --- ChangeLog | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index d2c13e02cf..b3c9892466 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2015-08-19 Joseph Myers + + [BZ #18370] + * math/s_csqrt.c (__csqrt): Force underflow exception for results + whose real or imaginary part has small absolute value. + * math/s_csqrtf.c (__csqrtf): Likewise. + * math/s_csqrtl.c (__csqrtl): Likewise. + * math/auto-libm-test-in: Add more tests of csqrt. + * math/auto-libm-test-out: Regenerated. + * sysdeps/i386/fpu/libm-test-ulps: Update. + 2015-08-19 Gabriel F. T. Gomes * sysdeps/powerpc/sys/platform/ppc.h (__ppc_set_ppr_med_high, -- cgit 1.4.1