glibc/sysdeps
Joseph Myers 4f40e4b307 Fix ldbl-128 lgammal for small negative arguments (bug 16337).
This patch fixes bug 16337, ldbl-128 lgammal spurious overflows for
small negative arguments (the arguments in question are already in the
testsuite).  The implementation uses the reflection formula to compute
lgamma of negative x from lgamma of -x, effectively resulting in a
calculation -log(x^2) + log(-x); cancellation isn't problematic in
this case (bugs for problematic cancellation in lgamma are 2542, 2543,
2558), but the x^2 calculation can underflow (in which case there is
spurious logic to return an overflowing value - lgamma can only ever
correctly overflow for large positive arguments, though tgamma can
overflow for small arguments of either sign as well as large positive
arguments).  The fix is simply to calculate the result directly with
logl when the argument is a small enough negative number.

Tested mips64.

	* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
	Calculate results for small negative arguments directly rather
	than using reflection formula with special underflow handling.
2013-12-22 20:50:16 +00:00
..
generic Patch 2/4 of the effort to make TLS access async-signal-safe. 2013-12-18 16:46:18 -08:00
gnu Remove __FAVOR_BSD. 2013-12-17 18:05:57 +00:00
i386 Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). 2013-12-21 13:07:16 +00:00
ieee754 Fix ldbl-128 lgammal for small negative arguments (bug 16337). 2013-12-22 20:50:16 +00:00
init_array
mach Flatten sysdeps/unix/bsd/bsd4.4 into sysdeps/unix/bsd. 2013-12-22 14:49:48 +00:00
posix Remove redundant GAIH_OKIFUNSPEC and GAIH_EAI. 2013-12-02 20:23:13 +05:30
powerpc Don't make soft-fp symbols compat symbols for powerpc-nofpu. 2013-12-19 21:26:36 +00:00
pthread
s390 [BZ #16214] S/390: Fix TLS GOT pointer setup. 2013-11-29 09:57:04 +01:00
sh Make soft-float sh use soft-fp fma/fmaf. 2013-12-17 09:00:05 +09:00
sparc Fix dbl-64 e_sqrt.c for non-default rounding modes (bug 16271). 2013-11-28 16:50:38 +00:00
unix Flatten sysdeps/unix/bsd/bsd4.4 into sysdeps/unix/bsd. 2013-12-22 14:49:48 +00:00
wordsize-32 Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
wordsize-64
x86 Use __glibc_reserved instead __unused. 2013-11-26 12:32:28 +01:00
x86_64 Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). 2013-12-21 13:07:16 +00:00