diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_lgammal_r.c | 4 |
3 files changed, 11 insertions, 2 deletions
@@ -1,3 +1,10 @@ +2014-01-06 Joseph Myers <joseph@codesourcery.com> + + [BZ #16400] + * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r): + Return -__logl (x) for small positive arguments without evaluating + a polynomial. + 2014-01-06 Mike Frysinger <vapier@gentoo.org> * sysdeps/unix/sysv/linux/sys/ptrace.h (ptrace_peeksiginfo_args): @@ -24,7 +24,7 @@ Version 2.19 16112, 16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195, 16214, 16245, 16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384, - 16385, 16386, 16390. + 16385, 16386, 16390, 16400. * Slovenian translations for glibc messages have been contributed by the Translation Project's Slovenian team of translators. diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c index 23ab9b9a43..1961355a73 100644 --- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c +++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c @@ -805,7 +805,9 @@ __ieee754_lgammal_r (long double x, int *signgamp) { case 0: /* log gamma (x + 1) = log(x) + log gamma(x) */ - if (x <= 0.125) + if (x < 0x1p-120L) + return -__logl (x); + else if (x <= 0.125) { p = x * neval (x, RN1, NRN1) / deval (x, RD1, NRD1); } |