glibc/sysdeps
Joseph Myers edbbdb1855 Fix powf inaccuracy (bug 21112).
Bug 21112 reports a case where powf is substantially inaccurate.  This
results from a multiplication where cp_h*p_h is required to be exact,
and p_h is masked to have only 12 leading nonzero bits in its
mantissa, but the value of cp_h has the 13th bit nonzero, leading to
inexact multiplication results in some cases that can result in large
errors in the final result of powf.  This patch fixes this by using a
value of cp_h correctly rounded to nearest to 12 bits, with a
corresponding updated value of cp_l.

Tested for x86_64 and x86.

	[BZ #21112]
	* sysdeps/ieee754/flt-32/e_powf.c (cp_h): Use value with trailing
	12 bits zero.
	(cp_l): Update for new value of cp_h.
	* math/auto-libm-test-in: Add another test of pow.
	* math/auto-libm-test-out-pow: Regenerated.
2017-02-07 17:15:47 +00:00
..
aarch64 New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
alpha alpha: Use saturating arithmetic in memchr 2017-02-01 14:39:04 -08:00
arm Fix ARM fpu_control.h for assemblers requiring VFP insn names (bug 21047). 2017-01-19 00:05:34 +00:00
generic Drop GLIBC_TUNABLES for setxid programs when tunables is disabled (bz #21073) 2017-02-02 15:50:24 +05:30
gnu Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
hppa Remove very old libm-test-ulps entries. 2017-01-20 23:58:49 +00:00
i386 nptl: Remove COLORING_INCREMENT 2017-02-06 15:58:32 -02:00
ia64 Remove very old libm-test-ulps entries. 2017-01-20 23:58:49 +00:00
ieee754 Fix powf inaccuracy (bug 21112). 2017-02-07 17:15:47 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
m68k m68k: fix 64bit atomic ops 2017-02-01 01:32:31 +01:00
mach Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
microblaze Remove very old libm-test-ulps entries. 2017-01-20 23:58:49 +00:00
mips New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
nacl Bug 20116: Fix use after free in pthread_create() 2017-01-28 19:21:44 -05:00
nios2 New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
nptl Add __glibc_unlikely hint in lll_trylock, lll_cond_trylock. 2017-02-06 13:46:01 +01:00
posix Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
powerpc powerpc: Use latest optimizations for internal function calls 2017-02-07 10:42:06 +05:30
pthread Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s390 New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
sh Remove very old libm-test-ulps entries. 2017-01-20 23:58:49 +00:00
sparc sparc: Remove optimized math routines which cause testsuite failures. 2017-02-03 17:55:25 -08:00
tile tile: Check for pointer add overflow in memchr 2017-01-16 15:44:48 -05:00
unix powerpc: Set minimum kernel version for powerpc64le 2017-02-07 10:49:47 +05:30
wordsize-32 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
x86 New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
x86_64 Remove i686, x86_64, and powerpc strtok implementations 2017-02-06 10:24:17 -02:00