From e7dd3c8c1db8c6d293abb995e033893b7328ad19 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 24 Jun 2014 20:56:56 +0000 Subject: Fix ldbl-128 erfl spurious underflows (bug 16287). This patch fixes bug 16287, spurious underflows from ldbl-128 erfl arising from it calling erfcl for arguments with absolute value at least 1.0, although for large positive arguments erfcl correctly underflows but erfl shouldn't. The fix is simply to avoid calling erfcl, and just return 1, for arguments above a cut-off large enough that erfl correctly rounds to-nearest as 1 but not so large that erfcl underflows. Tested mips64. Also tested x86_64 and x86 to confirm the new tests (taken from the tests of erfc) don't cause any problems there; no ulps updates needed. [BZ #16287] * sysdeps/ieee754/ldbl-128/s_erfl.c (__erfl): Return 1 without calling __erfcl for arguments at least 16. * math/auto-libm-test-in: Add more tests of erf. * math/auto-libm-test-out: Regenerated. --- ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 04d7f76ad6..8ddb74fff6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2014-06-24 Joseph Myers + [BZ #16287] + * sysdeps/ieee754/ldbl-128/s_erfl.c (__erfl): Return 1 without + calling __erfcl for arguments at least 16. + * math/auto-libm-test-in: Add more tests of erf. + * math/auto-libm-test-out: Regenerated. + * sysdeps/unix/sysv/linux/configure.ac: Remove cases for individual architectures. * sysdeps/unix/sysv/linux/configure: Regenerated. -- cgit 1.4.1