diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-05-15 17:21:08 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-05-15 17:21:08 +0000 |
commit | ff069f024ae8cf15d53429e034d67ddcece0f67a (patch) | |
tree | d6ad47bf62f47e532cadb862d427eaa2f610c12c /math/auto-libm-test-in | |
parent | b2fb25240813266e4f62f2dd039573f1a042ea2f (diff) | |
download | glibc-ff069f024ae8cf15d53429e034d67ddcece0f67a.tar glibc-ff069f024ae8cf15d53429e034d67ddcece0f67a.tar.gz glibc-ff069f024ae8cf15d53429e034d67ddcece0f67a.tar.bz2 glibc-ff069f024ae8cf15d53429e034d67ddcece0f67a.zip |
Fix lgammaf spurious underflows (bug 18220).
The flt-32 implementation of lgammaf produces spurious underflow
exceptions for some large arguments, because of calculations involving
x^-2 multiplied by small constants. This patch fixes this by
adjusting the threshold for a simpler computation to 2**26 (the error
in the simpler computation is on the order of 0.5 * log (x), for a
result on the order of x * log (x)).
Tested for x86_64 and x86.
[BZ #18220]
* sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Use
2**26 not 2**58 as threshold for returning x * (log (x) - 1).
* math/auto-libm-test-in: Add another test of lgamma.
* math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math/auto-libm-test-in')
-rw-r--r-- | math/auto-libm-test-in | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index c4bfe7439c..2a88403aa7 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -1757,6 +1757,7 @@ lgamma 0.5 lgamma -0.5 lgamma 0.7 lgamma 1.2 +lgamma 0x3.8p56 lgamma 0x1p-5 lgamma -0x1p-5 lgamma 0x1p-10 |