diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2018-04-03 16:33:13 +0100 |
---|---|---|
committer | Wilco Dijkstra <wdijkstr@arm.com> | 2018-04-03 16:52:17 +0100 |
commit | d9469deb14ba6f55bd8af1652951ab306a8f63bd (patch) | |
tree | 4895dc56315753c3960ae3f35ade2e03224db92d /ChangeLog | |
parent | 7a5640f23a797d3be38a78fb899903699c3aa5a0 (diff) | |
download | glibc-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 'ChangeLog')
-rw-r--r-- | ChangeLog | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index a0b52283f6..a8d1ecbe07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2018-04-03 Wilco Dijkstra <wdijkstr@arm.com> + * 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. + +2018-04-03 Wilco Dijkstra <wdijkstr@arm.com> + * sysdeps/ieee754/dbl-64/s_sin.c (reduce_sincos_2): Remove function. (do_sincos_2): Likewise. (__sin): Remove middle range reduction case. |