glibc/sysdeps
Joseph Myers 6f05bafeba Fix clog / clog10 sign of zero result in round-downward mode (bug 16789).
This patch fixes bug 16789, incorrect sign of (real part) zero result
from clog and clog10 in round-downward mode, arising from that real
part being computed as 0 - 0.  To ensure that an underflow exception
occurred, the code used an underflowing value (the next term in the
series for log1p) in arithmetic computing the real part of the result,
yielding the problematic 0 - 0 computation in some cases even when the
mathematical result would be small but positive.  The patch changes
this code to use the math_force_eval approach to ensuring that an
underflowing computation actually occurs.  Tests of clog and clog10
are enabled in all rounding modes.

Tested x86_64 and x86 and ulps updated accordingly.

	[BZ #16789]
	* math/s_clog.c (__clog): Use math_force_eval to ensure underflow
	instead of using underflowing value in computing result.
	* math/s_clog10.c (__clog10): Likewise.
	* math/s_clog10f.c (__clog10f): Likewise.
	* math/s_clog10l.c (__clog10l): Likewise.
	* math/s_clogf.c (__clogf): Likewise.
	* math/s_clogl.c (__clogl): Likewise.
	* math/libm-test.inc (clog_test): Use ALL_RM_TEST.
	(clog10_test): Likewise.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2014-04-02 13:10:19 +00:00
..
aarch64 Compile with -Wundef. 2014-03-14 11:32:51 -07:00
alpha Compile with -Wundef. 2014-03-14 11:32:51 -07:00
arm Fix -Wundef warnins for __FP_FAST_FMA* 2014-03-21 17:28:43 +05:30
generic S390: Define SIZE_MAX as unsigned long (BZ #16712). 2014-03-24 16:59:01 +01:00
gnu Combine __USE_BSD and __USE_SVID into __USE_MISC. 2014-02-12 23:41:01 +00:00
i386 Fix clog / clog10 sign of zero result in round-downward mode (bug 16789). 2014-04-02 13:10:19 +00:00
ia64 Compile with -Wundef. 2014-03-14 11:32:51 -07:00
ieee754 Correct IBM long double nextafterl. 2014-04-02 13:46:19 +10:30
init_array Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
m68k Compile with -Wundef. 2014-03-14 11:32:51 -07:00
mach Compile with -Wundef. 2014-03-14 11:32:51 -07:00
microblaze Compile with -Wundef. 2014-03-14 11:32:51 -07:00
mips Fix -Wundef warnings for _ABI* on MIPS. 2014-03-21 18:21:13 +00:00
posix Fix use of half-initialized result in getaddrinfo when using nscd (bug 16743) 2014-03-24 16:51:53 +01:00
powerpc Correct prefetch hint in power7 memrchr. 2014-04-02 13:42:27 +10:30
pthread Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
s390 S390: Define SIZE_MAX as unsigned long (BZ #16712). 2014-03-24 16:59:01 +01:00
sh Don't include individual test ulps in libm-test-ulps. 2014-03-05 15:02:38 +00:00
sparc Don't include individual test ulps in libm-test-ulps. 2014-03-05 15:02:38 +00:00
tile Fix -Wundef warnins for __FP_FAST_FMA* 2014-03-21 17:28:43 +05:30
unix Correct robust mutex / PI futex kernel assumptions (bug 9894). 2014-03-31 12:55:18 +00:00
wordsize-32 Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wordsize-64 Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
x86 Fix -Wundef warnins for __FP_FAST_FMA* 2014-03-21 17:28:43 +05:30
x86_64 Fix clog / clog10 sign of zero result in round-downward mode (bug 16789). 2014-04-02 13:10:19 +00:00