]> git.ipfire.org Git - thirdparty/glibc.git/commit
Fix ldbl-128/ldbl-128ibm lgamma spurious "invalid", incorrect signgam (bug 18952).
authorJoseph Myers <joseph@codesourcery.com>
Fri, 11 Sep 2015 15:34:25 +0000 (15:34 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 11 Sep 2015 15:34:25 +0000 (15:34 +0000)
commit9bb69b60fa6efdaebfa4d1a0291b555e71cd9caf
treea8cda96332995622ef26c004c599596f11b4946b
parent00a7073c3810da6ef24a2e58cf6b574ac7926d23
Fix ldbl-128/ldbl-128ibm lgamma spurious "invalid", incorrect signgam (bug 18952).

The ldbl-128 / ldbl-128ibm implementation of lgammal converts (the
floor of minus) non-integer negative arguments to int to determine the
value of signgam.  When those values are outside the range of int,
this produces spurious "invalid" exceptions and incorrect values of
signgam.  This patch fixes this by instead determining signgam through
comparing half the integer in question to floor of half the integer.

Tested for mips64, x86_64 and x86.

[BZ #18952]
* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r): Do
not convert non-integer negative arguments to int to determine the
value of signgam.
* math/auto-libm-test-in: Add more tests of lgamma.
* math/auto-libm-test-out: Regenerated.
ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/ieee754/ldbl-128/e_lgammal_r.c