From 0b87419b690d1711697ed95808527400910ff997 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 15 Sep 2015 17:46:08 +0000 Subject: Fix ctan, ctanh missing underflows (bug 18595). Similar to various other bugs in this area, ctan and ctanh can fail to raise the underflow exception for some cases of results that are tiny and inexact. This patch forces the exception in a similar way to previous fixes. Tested for x86_64 and x86. [BZ #18595] * math/s_ctan.c (__ctan): Force underflow exception for results whose real or imaginary part has small absolute value. * math/s_ctanf.c (__ctanf): Likewise. * math/s_ctanh.c (__ctanh): Likewise. * math/s_ctanhf.c (__ctanhf): Likewise. * math/s_ctanhl.c (__ctanhl): Likewise. * math/s_ctanl.c (__ctanl): Likewise. * math/auto-libm-test-in: Do not allow missing underflow for ctan and ctanh. Add more tests of ctan and ctanh. --- math/auto-libm-test-in | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'math/auto-libm-test-in') diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 4a8017c49a..8e236c3250 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -1245,11 +1245,14 @@ ctan 0x1.921fb6p+0 0x1p-149 ctan 0x1.921fb54442d18p+0 0x1p-1074 ctan 0x1.921fb54442d1846ap+0 0x1p-16445 -# Bug 18595: underflow exception may be missing -ctan min 0 missing-underflow -ctan -min 0 missing-underflow -ctan min_subnorm 0 missing-underflow -ctan -min_subnorm 0 missing-underflow +ctan min 0 +ctan -min 0 +ctan min_subnorm 0 +ctan -min_subnorm 0 +ctan 0 min +ctan 0 -min +ctan 0 min_subnorm +ctan 0 -min_subnorm ctanh 0 0 ctanh 0 -0 @@ -1285,11 +1288,14 @@ ctanh 0x1p-149 0x1.921fb6p+0 ctanh 0x1p-1074 0x1.921fb54442d18p+0 ctanh 0x1p-16445 0x1.921fb54442d1846ap+0 -# Bug 18595: underflow exception may be missing -ctanh 0 min missing-underflow -ctanh 0 -min missing-underflow -ctanh 0 min_subnorm missing-underflow -ctanh 0 -min_subnorm missing-underflow +ctanh 0 min +ctanh 0 -min +ctanh 0 min_subnorm +ctanh 0 -min_subnorm +ctanh min 0 +ctanh -min 0 +ctanh min_subnorm 0 +ctanh -min_subnorm 0 erf 0 erf -0 -- cgit 1.4.1