mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
Fix ldbl-128ibm logl (1) sign of zero result (bug 19077).
The ldbl-128ibm implementation of logl produces a zero with the wrong sign for logl (1) in FE_DOWNWARD mode. This patch makes it explicitly return 0.0L in that case, as in e.g. the ldbl-128 implementation. Tested for powerpc. [BZ #19077] * sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Return 0.0L for argument 1.0L.
This commit is contained in:
parent
d79b568926
commit
31d4459e42
@ -1,5 +1,9 @@
|
|||||||
2015-10-06 Joseph Myers <joseph@codesourcery.com>
|
2015-10-06 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
[BZ #19077]
|
||||||
|
* sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Return
|
||||||
|
0.0L for argument 1.0L.
|
||||||
|
|
||||||
[BZ #19076]
|
[BZ #19076]
|
||||||
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Divide by
|
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Divide by
|
||||||
constant 0.0L when computing infinite result.
|
constant 0.0L when computing infinite result.
|
||||||
|
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, 19076.
|
19049, 19050, 19059, 19071, 19076, 19077.
|
||||||
|
|
||||||
* 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.
|
||||||
|
@ -219,6 +219,8 @@ __ieee754_logl(long double x)
|
|||||||
/* On this interval the table is not used due to cancellation error. */
|
/* On this interval the table is not used due to cancellation error. */
|
||||||
if ((x <= 1.0078125L) && (x >= 0.9921875L))
|
if ((x <= 1.0078125L) && (x >= 0.9921875L))
|
||||||
{
|
{
|
||||||
|
if (x == 1.0L)
|
||||||
|
return 0.0L;
|
||||||
z = x - 1.0L;
|
z = x - 1.0L;
|
||||||
k = 64;
|
k = 64;
|
||||||
t = 1.0L;
|
t = 1.0L;
|
||||||
|
Loading…
Reference in New Issue
Block a user