From 31d4459e42d239fb7d9d3f9532fcf580c6812fb3 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 6 Oct 2015 15:32:06 +0000 Subject: 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. --- sysdeps/ieee754/ldbl-128ibm/e_logl.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sysdeps/ieee754') diff --git a/sysdeps/ieee754/ldbl-128ibm/e_logl.c b/sysdeps/ieee754/ldbl-128ibm/e_logl.c index 58d6bc6972..dcac38062c 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_logl.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_logl.c @@ -219,6 +219,8 @@ __ieee754_logl(long double x) /* On this interval the table is not used due to cancellation error. */ if ((x <= 1.0078125L) && (x >= 0.9921875L)) { + if (x == 1.0L) + return 0.0L; z = x - 1.0L; k = 64; t = 1.0L; -- cgit 1.4.1