about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-03-27 18:41:14 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-03-27 18:41:14 +0000
commit03a7091fa2afc84e215fc99fceca52baa4b0f8f1 (patch)
treec7be03c2bfe3c2509ed74f3cb8581ab1d08e5dab /ChangeLog
parentdd3022d75e6fb8957843d6d84257a5d8457822d5 (diff)
downloadglibc-03a7091fa2afc84e215fc99fceca52baa4b0f8f1.tar.gz
glibc-03a7091fa2afc84e215fc99fceca52baa4b0f8f1.tar.xz
glibc-03a7091fa2afc84e215fc99fceca52baa4b0f8f1.zip
Fix x86/x86_64 expl/exp10l spurious underflows (bug 16348).
This patch fixes bug 16348, spurious underflows from x86/x86_64 expl
on arguments close to 0.  These implementations effectively use expm1
(on the fractional part of the argument) internally, so resulting in
spurious underflows when the result is very close to 1.  For arguments
small enough that the round-to-nearest correct result is 1, this patch
uses 1+x instead.

These implementations are also used for exp10l and so the patch fixes
similar issues there (the 0x1p-67 threshold being small enough to be
correct for exp10l as well as expl).  But because of spurious
underflows in other exp10 implementations (bug 16560), the tests
aren't added for exp10 at this point - they can be added when the
other exp10 parts of that bug are fixed.

Tested x86_64 and x86; no ulps updates needed.

	[BZ #16348]
	* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [!USE_AS_EXPM1L]: Use
	1+x for argument with exponent below -67.
	* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [!USE_AS_EXPM1L]:
	Likewise.
	* math/auto-libm-test-in: Add more tests of exp.
	* math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog10
1 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 796978df45..95733b5620 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-03-27  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #16348]
+	* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [!USE_AS_EXPM1L]: Use
+	1+x for argument with exponent below -67.
+	* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [!USE_AS_EXPM1L]:
+	Likewise.
+	* math/auto-libm-test-in: Add more tests of exp.
+	* math/auto-libm-test-out: Regenerated.
+
 2014-03-27  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	[BZ #16759]