about summary refs log tree commit diff
path: root/math/auto-libm-test-in
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-12-18 11:38:27 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-12-18 11:38:27 +0000
commit2dec468fd82c6d968f622c2c519fcb8dc09bddac (patch)
treeebc7e3f72a6474d7aa3f6a042bb01a2917562bc3 /math/auto-libm-test-in
parent4d84e6addd62bdc256627af334ba85489112e008 (diff)
downloadglibc-2dec468fd82c6d968f622c2c519fcb8dc09bddac.tar.gz
glibc-2dec468fd82c6d968f622c2c519fcb8dc09bddac.tar.xz
glibc-2dec468fd82c6d968f622c2c519fcb8dc09bddac.zip
Fix ldbl-128 logl for subnormals (bug 16338).
This patch fixes bug 16338, ldbl-128 logl not handling subnormals
(with consequent inaccuracy for lgammal as well).  The fix is simply
to use __frexpl when determining the exponent, as done already in
log2l and log10l.  Given the lack of testing of small arguments to any
of the log* functions, appropriate tests are added for all of them.

Tested x86_64 and x86 and ulps updated accordingly, and spot tests
also run for mips64 to confirm the ldbl-128 fix.

Note that while this fixes lgammal inaccuracy for small positive
arguments, I suspect that there will still be problems with spurious
underflows in that case.

	* sysdeps/ieee754/ldbl-128/e_logl.c (__ieee754_logl): Use __frexpl
	to determine exponent and adjust argument to have exponent of -1.
	* math/auto-libm-test-in: Add more tests of log, log10, log1p and
	log2.
	* math/auto-libm-test-out: Regenerated.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
Diffstat (limited to 'math/auto-libm-test-in')
-rw-r--r--math/auto-libm-test-in11
1 files changed, 11 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index dd4fd22886..30e1ec6b38 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -414,6 +414,8 @@ log 1/e
 log 2
 log 10
 log 0.75
+log min
+log min_subnorm
 
 log10 1
 log10 0.1
@@ -422,12 +424,19 @@ log10 100.0
 log10 10000.0
 log10 e
 log10 0.75
+log10 min
+log10 min_subnorm
 
 log1p 0
 log1p -0
 log1p e-1
 log1p -0.25
 log1p -0.875
+# Bug 16339: underflow exception may be missing.
+log1p min missing-underflow
+log1p min_subnorm missing-underflow
+log1p -min missing-underflow
+log1p -min_subnorm missing-underflow
 
 log2 1
 log2 e
@@ -435,6 +444,8 @@ log2 2.0
 log2 16.0
 log2 256.0
 log2 0.75
+log2 min
+log2 min_subnorm
 
 pow 0 0
 pow 0 -0