about summary refs log tree commit diff
path: root/sysdeps/ieee754/flt-32/e_lgammaf_r.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix lgamma implementations for -Wuninitialized.Joseph Myers2015-05-211-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you remove the "override CFLAGS += -Wno-uninitialized" in math/Makefile, you get errors from lgamma implementations of the form: ../sysdeps/ieee754/dbl-64/e_lgamma_r.c: In function '__ieee754_lgamma_r': ../sysdeps/ieee754/dbl-64/e_lgamma_r.c:297:13: error: 'nadj' may be used uninitialized in this function [-Werror=maybe-uninitialized] if(hx<0) r = nadj - r; This is one of the standard kinds of false positive uninitialized warnings: nadj is set under a certain condition, and then later used under the same condition. This patch uses DIAG_* macros to suppress the warning on the use of nadj. The ldbl-128 / ldbl-128ibm implementation has a substantially different structure that avoids this issue. Tested for x86_64. (In fact this patch eliminates the need for that -Wno-uninitialized on x86_64, but I want to test on more architectures before removing it.) * sysdeps/ieee754/dbl-64/e_lgamma_r.c: Include <libc-internal.h>. (__ieee754_lgamma_r): Ignore uninitialized warnings around use of NADJ. * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Include <libc-internal.h>. (__ieee754_lgammaf_r): Ignore uninitialized warnings around use of NADJ. * sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Include <libc-internal.h>. (__ieee754_lgammal_r): Ignore uninitialized warnings around use of NADJ.
* Fix lgammaf spurious underflows (bug 18220).Joseph Myers2015-05-151-3/+3
| | | | | | | | | | | | | | | | | 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.
* Fix lgammaf spurious underflow (bug 15427).Joseph Myers2013-09-031-2/+2
|
* Use <> for math.h and math_private.h everywhere.Richard Henderson2012-03-091-2/+2
| | | | Entire tree edited via find | grep | sed.
* Optimize libmUlrich Drepper2011-10-121-44/+26
| | | | | libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized.
* [BZ #4407]Ulrich Drepper2007-10-061-1/+6
| | | | | | | | | * sysdeps/ieee754/dbl-64/e_lgamma_r.c: Fix *signgamp for -0.0. * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise. * sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Likewise. * math/libm-test.inc: Add test for this case. Half the patch by Christian Iseli <christian.iseli@licr.org>.
* Update.Ulrich Drepper1999-10-201-2/+0
| | | | | | | | | | | | | | | | | | | | 1999-10-19 Ulrich Drepper <drepper@cygnus.com> * sysdeps/i386/fpu/s_nextafterl.c: Add __nextafterl and nextafterl aliases. * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Don't handle -Inf special. * sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r): Check for -Inf and return NaN. * math/gen-libm-test.pl: Fix program name in help message. * math/libm-test.inc (check_complex): It's Imaginary, not Complex. * math/libm-test.inc (gamma_test): Result of gamma(-inf) is +inf. * sysdeps/i386/Implies: Correct order of libm directories.
* Update.Ulrich Drepper1999-07-141-0/+250