about summary refs log tree commit diff
path: root/math/auto-libm-test-in
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-09-17 15:51:54 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-09-17 15:51:54 +0000
commit46f74e1deee549b41160d353ce0c8f7db555d36c (patch)
tree19f07ad8fb51bb5e8de5106dc98654e7817eb04e /math/auto-libm-test-in
parente67dc1b57f1fc8407cb45bdb38ae1eaa0a5c6f78 (diff)
downloadglibc-46f74e1deee549b41160d353ce0c8f7db555d36c.tar.gz
glibc-46f74e1deee549b41160d353ce0c8f7db555d36c.tar.xz
glibc-46f74e1deee549b41160d353ce0c8f7db555d36c.zip
Fix tgamma missing underflows (bug 18951).
Similar to various other bugs in this area, tgamma functions can fail
to raise the underflow exception when the result is tiny and inexact
but one or more low bits of the intermediate result that is scaled
down are zero.  This patch forces the exception in a similar way to
previous fixes.

Tested for x86_64, x86, mips64 and powerpc.

	[BZ #18951]
	* sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r): Force
	underflow exception for small results.
	* sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r):
	Likewise.
	* sysdeps/ieee754/ldbl-128/e_gammal_r.c (__ieee754_gammal_r):
	Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r):
	Likewise.
	* sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r):
	Likewise.
	* math/auto-libm-test-in: Add more tests of tgamma.
	* math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math/auto-libm-test-in')
-rw-r--r--math/auto-libm-test-in41
1 files changed, 41 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 8e236c3250..8dea2b487e 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -3855,6 +3855,47 @@ tgamma 1e3
 tgamma -100000.5
 tgamma max
 
+tgamma -0x22.30p0
+tgamma -0x22.31p0
+tgamma -0x22.32p0
+tgamma -0x22.33p0
+tgamma -0x22.34p0
+tgamma -0x22.35p0
+tgamma -0x22.36p0
+tgamma -0x22.37p0
+tgamma -0xa3.70p0
+tgamma -0xa3.71p0
+tgamma -0xa3.72p0
+tgamma -0xa3.73p0
+tgamma -0xa3.74p0
+tgamma -0xa3.75p0
+tgamma -0xa3.76p0
+tgamma -0xa3.77p0
+tgamma -0xab.0d0p0
+tgamma -0xab.0d1p0
+tgamma -0xab.0d2p0
+tgamma -0xab.0d3p0
+tgamma -0xab.0d4p0
+tgamma -0xab.0d5p0
+tgamma -0xab.0d6p0
+tgamma -0xab.0d7p0
+tgamma -0x6db.030p0
+tgamma -0x6db.031p0
+tgamma -0x6db.032p0
+tgamma -0x6db.033p0
+tgamma -0x6db.034p0
+tgamma -0x6db.035p0
+tgamma -0x6db.036p0
+tgamma -0x6db.037p0
+tgamma -0x6db.050p0
+tgamma -0x6db.051p0
+tgamma -0x6db.052p0
+tgamma -0x6db.053p0
+tgamma -0x6db.054p0
+tgamma -0x6db.055p0
+tgamma -0x6db.056p0
+tgamma -0x6db.057p0
+
 tgamma -0x3.06644cp+0
 tgamma -0x6.fe4636e0c5064p+0
 tgamma -0x7.a13d7a2945cd5718p+0