Message ID | alpine.DEB.2.10.1509111534450.11676@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 84b3df0..83eb4cf 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -2047,6 +2047,9 @@ lgamma -0xffffffffffffffffp-1 lgamma -0x3ffffffffffffffffffffffffffp-1 lgamma -0x1ffffffffffffffffffffffffffffp-1 +lgamma -0x100000000.8p0 +lgamma -0x100000001.8p0 + lgamma -0.25 lgamma -0.5 lgamma -0.75 diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c index abf0f15..500aacc 100644 --- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c +++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c @@ -787,8 +787,8 @@ __ieee754_lgammal_r (long double x, int *signgamp) p = __floorl (q); if (p == q) return (one / (p - p)); - i = p; - if ((i & 1) == 0) + long double halfp = p * 0.5L; + if (halfp == __floorl (halfp)) *signgamp = -1; else *signgamp = 1;