about summary refs log tree commit diff
path: root/sysdeps/i386/gccframe.h
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2018-04-03 16:33:13 +0100
committerWilco Dijkstra <wdijkstr@arm.com>2018-04-03 16:52:17 +0100
commitd9469deb14ba6f55bd8af1652951ab306a8f63bd (patch)
tree4895dc56315753c3960ae3f35ade2e03224db92d /sysdeps/i386/gccframe.h
parent7a5640f23a797d3be38a78fb899903699c3aa5a0 (diff)
downloadglibc-d9469deb14ba6f55bd8af1652951ab306a8f63bd.tar.gz
glibc-d9469deb14ba6f55bd8af1652951ab306a8f63bd.tar.xz
glibc-d9469deb14ba6f55bd8af1652951ab306a8f63bd.zip
[PATCH 3/7] sin/cos slow paths: remove slow paths from small range reduction
This patch improves the accuracy of the range reduction.  When the input is
large (2^27) and very close to a multiple of PI/2, using 110 bits of PI is not
enough.  Improve range reduction accuracy to 136 bits.  As a result the special
checks for results close to zero can be removed.  The ULP of the polynomials is
at worst 0.55ULP, so there is no reason for the slow functions, and they can be
removed.

	* sysdeps/ieee754/dbl-64/s_sin.c (reduce_sincos_1): Rename to
	reduce_sincos, improve accuracy to 136 bits.
	(do_sincos_1): Rename to do_sincos, remove fallbacks to slow functions.
	(__sin): Use improved reduction and simplified do_sincos calculation.
	(__cos): Likewise.
	* sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Likewise.
Diffstat (limited to 'sysdeps/i386/gccframe.h')
0 files changed, 0 insertions, 0 deletions