glibc/sysdeps/ieee754
Joseph Myers fa752c6981 Fix powf inaccuracy (bug 18956).
The flt-32 version of powf can be inaccurate because of bugs in the
extra-precision calculation of (x-1)/(x+1) or (x-1.5)/(x+1.5) as part
of calculating log(x) with extra precision: a constant used (as part
of adding 1 or 1.5 through integer arithmetic) is incorrect, and then
the code fails to mask a computed high part before using it in
arithmetic that relies on s_h*t_h being exactly representable.  This
patch fixes these bugs.

Tested for x86_64 and x86.  x86_64 ulps for powf removed and
regenerated to reflect reduced ulps from the increased accuracy for
existing tests.

	[BZ #18956]
	* sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Add 0x00400000
	not 0x0040000 for high bit of mantissa.  Mask with 0xfffff000 when
	extracting high part.
	* math/auto-libm-test-in: Add another test of pow.
	* math/auto-libm-test-out: Regenerated.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-26 00:27:06 +00:00
..
bits Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dbl-64 Fix pow missing underflows (bug 18825). 2015-09-25 22:29:10 +00:00
flt-32 Fix powf inaccuracy (bug 18956). 2015-09-26 00:27:06 +00:00
ldbl-64-128 Make scalbn set errno (bug 6803). 2015-09-16 21:11:00 +00:00
ldbl-96 Fix hypot missing underflows (bug 18803). 2015-09-24 23:43:57 +00:00
ldbl-128 Fix pow missing underflows (bug 18825). 2015-09-25 22:29:10 +00:00
ldbl-128ibm Fix pow missing underflows (bug 18825). 2015-09-25 22:29:10 +00:00
ldbl-opt Use math_narrow_eval more consistently. 2015-09-23 18:14:57 +00:00
ieee754.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
k_standard.c Add comment to CSTR macro in k_standard.c. 2015-02-27 01:12:19 +00:00
k_standardf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
k_standardl.c Fix spurious "inexact" exceptions from __kernel_standard_l (bug 18245, bug 18583). 2015-06-23 17:26:46 +00:00
Makefile Avoid -Wno-write-strings for k_standard.c. 2015-02-26 22:50:54 +00:00
s_lib_version.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
s_matherr.c Use <> for math.h and math_private.h everywhere. 2012-03-09 16:09:10 -08:00
s_signgam.c Use <> for math.h and math_private.h everywhere. 2012-03-09 16:09:10 -08:00