glibc/sysdeps/ieee754/flt-32
Wilco Dijkstra 599cf39766 Improve performance of sinf and cosf
The second patch improves performance of sinf and cosf using the same
algorithms and polynomials.  The returned values are identical to sincosf
for the same input.  ULP definitions for AArch64 and x64 are updated.

sinf/cosf througput gains on Cortex-A72:
* |x| < 0x1p-12 : 1.2x
* |x| < M_PI_4  : 1.8x
* |x| < 2 * M_PI: 1.7x
* |x| < 120.0   : 2.3x
* |x| < Inf     : 3.0x

	* NEWS: Mention sinf, cosf, sincosf.
	* sysdeps/aarch64/libm-test-ulps: Update ULP for sinf, cosf, sincosf.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update ULP for sinf and cosf.
	* sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c: Add definitions of
	constants rather than including generic sincosf.h.
	* sysdeps/x86_64/fpu/s_sincosf_data.c: Remove.
	* sysdeps/ieee754/flt-32/s_cosf.c (cosf): Rewrite.
	* sysdeps/ieee754/flt-32/s_sincosf.h (reduced_sin): Remove.
	(reduced_cos): Remove.
	(sinf_poly): New function.
	* sysdeps/ieee754/flt-32/s_sinf.c (sinf): Rewrite.
2018-08-14 10:45:59 +01:00
..
e_acosf.c Rename all __ieee754_sqrt(f/l) calls to sqrt(f/l) 2018-03-15 19:21:36 +00:00
e_acoshf.c Rename all __ieee754_sqrt(f/l) calls to sqrt(f/l) 2018-03-15 19:21:36 +00:00
e_asinf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_atan2f.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_atanhf.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
e_coshf.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
e_exp2f.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
e_exp2f_data.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_expf.c Clean up converttoint handling and document the semantics 2018-08-10 17:23:16 +01:00
e_fmodf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_gammaf_r.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_hypotf.c Rename all __ieee754_sqrt(f/l) calls to sqrt(f/l) 2018-03-15 19:21:36 +00:00
e_ilogbf.c
e_j0f.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
e_j1f.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_jnf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_lgammaf_r.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
e_log2f.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_log2f_data.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_log10f.c Use fabs(f/l) rather than __fabs 2017-09-29 18:54:24 +01:00
e_logf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_logf_data.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_powf.c Use uint32_t sign in single precision math error handling functions 2018-07-02 09:29:04 +01:00
e_powf_log2_data.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_rem_pio2f.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_remainderf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_sinhf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_sqrtf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
k_cosf.c
k_rem_pio2f.c Fix i686-linux-gnu build with GCC mainline. 2018-05-22 16:55:04 +00:00
k_sinf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
k_tanf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
lgamma_negf.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
lgamma_productf.c
math_config.h Clean up converttoint handling and document the semantics 2018-08-10 17:23:16 +01:00
math_errf.c Use uint32_t sign in single precision math error handling functions 2018-07-02 09:29:04 +01:00
mpn2flt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_asinhf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_atanf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_cbrtf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_ceilf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_copysignf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_cosf.c Improve performance of sinf and cosf 2018-08-14 10:45:59 +01:00
s_erff.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_expm1f.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_fabsf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_finitef.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
s_floorf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fpclassifyf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_frexpf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fromfpf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fromfpf_main.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fromfpxf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_getpayloadf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_isinff.c
s_isnanf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
s_issignalingf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_llrintf.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
s_llroundf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_log1pf.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_logbf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_lrintf.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
s_lroundf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_modff.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_nearbyintf.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_nextafterf.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_nextupf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_remquof.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_rintf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_roundevenf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_roundf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_scalblnf.c
s_scalbnf.c
s_setpayloadf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_setpayloadf_main.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_setpayloadsigf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_signbitf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_sincosf.c Improve performance of sincosf 2018-08-10 17:34:39 +01:00
s_sincosf.h Improve performance of sinf and cosf 2018-08-14 10:45:59 +01:00
s_sincosf_data.c Improve performance of sincosf 2018-08-10 17:34:39 +01:00
s_sinf.c Improve performance of sinf and cosf 2018-08-14 10:45:59 +01:00
s_tanf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_tanhf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_totalorderf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_totalordermagf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_truncf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_ufromfpf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_ufromfpxf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
w_exp2f.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_expf.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_log2f.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_logf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_powf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00