summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-10-01 17:15:54 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-10-01 17:15:54 +0000
commit4b84e2471b5f0c9197073395eb77843c6f23e790 (patch)
tree46351643320a86d5bfcdd04a89175e5934ecb65c /NEWS
parente27fcd027cbdc2f13bf440177c0434eb9ec3dd28 (diff)
Fix ldbl-128 / ldbl-128ibm lgamma overflow handling (bug 16347, bug 19046).
The ldbl-128 / ldbl-128ibm implementation of lgamma has problems with its handling of large arguments. It has an overflow threshold that is correct only for ldbl-128, despite being used for both types - with diagnostic control macros as a temporary measure to disable warnings about that constant overflowing for ldbl-128ibm - and it has a calculation that's roughly x * log(x) - x, resulting in overflows for arguments that are roughly at most a factor 1/log(threshold) below the overflow threshold. This patch fixes both issues, using an overflow threshold appropriate for the type in question and adding another case for large arguments that avoids the possible intermediate overflow. Tested for x86_64, x86, mips64 and powerpc. [BZ #16347] [BZ #19046] * sysdeps/ieee754/ldbl-128/e_lgammal_r.c: Do not include <libc-internal.h>. (MAXLGM): Do not use diagnostic control macros. [LDBL_MANT_DIG == 106] (MAXLGM): Change value to overflow threshold for ldbl-128ibm. (__ieee754_lgammal_r): For large arguments, multiply by log - 1 instead of multiplying by log then subtracting. * math/auto-libm-test-in: Add more tests of lgamma. * math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS16
1 files changed, 8 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index 06df4b2b54..e8b59a4676 100644
--- a/NEWS
+++ b/NEWS
@@ -10,14 +10,14 @@ Version 2.23
* The following bugs are resolved with this release:
2542, 2543, 2558, 2898, 4404, 6803, 14341, 14912, 15367, 15384, 15786,
- 15918, 16141, 16296, 16415, 16517, 16519, 16520, 16521, 16620, 16734,
- 16973, 16985, 17118, 17243, 17244, 17250, 17441, 17787, 17886, 17887,
- 17905, 18084, 18086, 18240, 18265, 18370, 18421, 18480, 18525, 18595,
- 18610, 18618, 18647, 18661, 18674, 18675, 18681, 18757, 18778, 18781,
- 18787, 18789, 18790, 18795, 18796, 18803, 18820, 18823, 18824, 18825,
- 18857, 18863, 18870, 18872, 18873, 18875, 18887, 18921, 18951, 18952,
- 18956, 18961, 18966, 18967, 18969, 18970, 18977, 18980, 18981, 18985,
- 19003, 19016, 19032.
+ 15918, 16141, 16296, 16347, 16415, 16517, 16519, 16520, 16521, 16620,
+ 16734, 16973, 16985, 17118, 17243, 17244, 17250, 17441, 17787, 17886,
+ 17887, 17905, 18084, 18086, 18240, 18265, 18370, 18421, 18480, 18525,
+ 18595, 18610, 18618, 18647, 18661, 18674, 18675, 18681, 18757, 18778,
+ 18781, 18787, 18789, 18790, 18795, 18796, 18803, 18820, 18823, 18824,
+ 18825, 18857, 18863, 18870, 18872, 18873, 18875, 18887, 18921, 18951,
+ 18952, 18956, 18961, 18966, 18967, 18969, 18970, 18977, 18980, 18981,
+ 18985, 19003, 19016, 19032, 19046.
* The obsolete header <regexp.h> has been removed. Programs that require
this header must be updated to use <regex.h> instead.