mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Fix ldbl-128ibm log1pl (-1) sign of infinity (bug 19076).
The ldbl-128ibm implementation of log1pl produces an infinity with the wrong sign for log1pl (-1) in FE_DOWNWARD mode. This patch fixes this by changing a division (-1.0L / (x - x)) (incorrect in FE_DOWNWARD mode) to (-1.0L / 0.0L) (correct in all rounding modes). Tested for powerpc. [BZ #19076] * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Divide by constant 0.0L when computing infinite result.
This commit is contained in:
parent
3670da6bfb
commit
d79b568926
@ -1,3 +1,9 @@
|
|||||||
|
2015-10-06 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
[BZ #19076]
|
||||||
|
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Divide by
|
||||||
|
constant 0.0L when computing infinite result.
|
||||||
|
|
||||||
2015-10-06 Florian Weimer <fweimer@redhat.com>
|
2015-10-06 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
[BZ #10432]
|
[BZ #10432]
|
||||||
|
2
NEWS
2
NEWS
@ -18,7 +18,7 @@ Version 2.23
|
|||||||
18820, 18823, 18824, 18825, 18857, 18863, 18870, 18872, 18873, 18875,
|
18820, 18823, 18824, 18825, 18857, 18863, 18870, 18872, 18873, 18875,
|
||||||
18887, 18921, 18951, 18952, 18956, 18961, 18966, 18967, 18969, 18970,
|
18887, 18921, 18951, 18952, 18956, 18961, 18966, 18967, 18969, 18970,
|
||||||
18977, 18980, 18981, 18985, 19003, 19012, 19016, 19018, 19032, 19046,
|
18977, 18980, 18981, 18985, 19003, 19012, 19016, 19018, 19032, 19046,
|
||||||
19049, 19050, 19059, 19071.
|
19049, 19050, 19059, 19071, 19076.
|
||||||
|
|
||||||
* The obsolete header <regexp.h> has been removed. Programs that require
|
* The obsolete header <regexp.h> has been removed. Programs that require
|
||||||
this header must be updated to use <regex.h> instead.
|
this header must be updated to use <regex.h> instead.
|
||||||
|
@ -149,7 +149,7 @@ __log1pl (long double xm1)
|
|||||||
if (x <= 0.0L)
|
if (x <= 0.0L)
|
||||||
{
|
{
|
||||||
if (x == 0.0L)
|
if (x == 0.0L)
|
||||||
return (-1.0L / (x - x));
|
return (-1.0L / 0.0L);
|
||||||
else
|
else
|
||||||
return (zero / (x - x));
|
return (zero / (x - x));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user