[PATCH 00/10] Optimized math routines
Szabolcs Nagy
szabolcs.nagy@arm.com
Fri Jul 6 08:49:00 GMT 2018
Optimized exp, exp2, log, log2, pow, sinf, cosf and sincosf
implementations.
I updated the patches according to comments. I included the
sincosf patches from Wilco, but split out the math_config.h
toint changes into a separate patch.
This set does not include the wrapper removal that changes ABI.
I'm still testing those and they can be applied separately.
The new exp increases the ulp error bounds in non-nearest
rounding modes, so ulp updates are needed.
Szabolcs Nagy (8):
Clean up converttoint handling and document the semantics
Add new exp and exp2 implementations
aarch64: update libm-test-ulps
arm: update libm-test-ulps
x86_64: update libm-test-ulps
Add new log implementation
Add new log2 implementation
Add new pow implementation
Wilco Dijkstra (2):
Improve performance of sincosf
Improve performance of sinf and cosf
NEWS | 2 +
math/Makefile | 7 +-
sysdeps/aarch64/fpu/math_private.h | 17 +-
sysdeps/aarch64/libm-test-ulps | 112 +-
sysdeps/arm/libm-test-ulps | 88 +-
sysdeps/generic/math_private.h | 1 -
sysdeps/i386/fpu/e_exp_data.c | 1 +
sysdeps/i386/fpu/e_log2_data.c | 1 +
sysdeps/i386/fpu/e_log_data.c | 1 +
sysdeps/i386/fpu/e_pow_log_data.c | 1 +
sysdeps/i386/fpu/math_err.c | 1 +
sysdeps/i386/fpu/t_exp.c | 1 -
sysdeps/ia64/fpu/e_exp_data.c | 1 +
sysdeps/ia64/fpu/e_log2_data.c | 1 +
sysdeps/ia64/fpu/e_log_data.c | 1 +
sysdeps/ia64/fpu/e_pow_log_data.c | 1 +
sysdeps/ia64/fpu/math_err.c | 1 +
sysdeps/ia64/fpu/s_sincosf_data.c | 1 +
sysdeps/ia64/fpu/t_exp.c | 1 -
sysdeps/ieee754/dbl-64/Makefile | 1 -
sysdeps/ieee754/dbl-64/e_exp.c | 477 +-
sysdeps/ieee754/dbl-64/e_exp2.c | 220 +-
sysdeps/ieee754/dbl-64/e_exp_data.c | 196 +
sysdeps/ieee754/dbl-64/e_log.c | 257 +-
sysdeps/ieee754/dbl-64/e_log2.c | 240 +-
sysdeps/ieee754/dbl-64/e_log2_data.c | 194 +
sysdeps/ieee754/dbl-64/e_log_data.c | 321 +
sysdeps/ieee754/dbl-64/e_pow.c | 656 +-
sysdeps/ieee754/dbl-64/e_pow_log_data.c | 173 +
sysdeps/ieee754/dbl-64/eexp.tbl | 172 -
sysdeps/ieee754/dbl-64/math_config.h | 187 +
sysdeps/ieee754/dbl-64/math_err.c | 92 +
sysdeps/ieee754/dbl-64/t_exp.c | 435 --
sysdeps/ieee754/dbl-64/t_exp2.h | 585 --
sysdeps/ieee754/dbl-64/uexp.h | 68 -
sysdeps/ieee754/dbl-64/uexp.tbl | 1786 -----
sysdeps/ieee754/dbl-64/ulog.h | 93 -
sysdeps/ieee754/dbl-64/ulog.tbl | 3326 --------
sysdeps/ieee754/dbl-64/upow.h | 76 -
sysdeps/ieee754/dbl-64/upow.tbl | 10188 -------------------------
sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c | 128 -
sysdeps/ieee754/flt-32/e_expf.c | 5 +-
sysdeps/ieee754/flt-32/math_config.h | 21 +-
sysdeps/ieee754/flt-32/s_cosf.c | 161 +-
sysdeps/ieee754/flt-32/s_sincosf.c | 197 +-
sysdeps/ieee754/flt-32/s_sincosf.h | 258 +-
sysdeps/ieee754/flt-32/s_sincosf_data.c | 74 +
sysdeps/ieee754/flt-32/s_sinf.c | 172 +-
sysdeps/m68k/m680x0/fpu/e_exp_data.c | 1 +
sysdeps/m68k/m680x0/fpu/e_log2_data.c | 1 +
sysdeps/m68k/m680x0/fpu/e_log_data.c | 1 +
sysdeps/m68k/m680x0/fpu/e_pow_log_data.c | 1 +
sysdeps/m68k/m680x0/fpu/math_err.c | 1 +
sysdeps/m68k/m680x0/fpu/s_sincosf_data.c | 1 +
sysdeps/m68k/m680x0/fpu/t_exp.c | 1 -
sysdeps/x86_64/fpu/libm-test-ulps | 100 +-
sysdeps/x86_64/fpu/multiarch/Makefile | 4 +-
sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c | 33 +-
58 files changed, 2606 insertions(+), 18537 deletions(-)
create mode 100644 sysdeps/i386/fpu/e_exp_data.c
create mode 100644 sysdeps/i386/fpu/e_log2_data.c
create mode 100644 sysdeps/i386/fpu/e_log_data.c
create mode 100644 sysdeps/i386/fpu/e_pow_log_data.c
create mode 100644 sysdeps/i386/fpu/math_err.c
delete mode 100644 sysdeps/i386/fpu/t_exp.c
create mode 100644 sysdeps/ia64/fpu/e_exp_data.c
create mode 100644 sysdeps/ia64/fpu/e_log2_data.c
create mode 100644 sysdeps/ia64/fpu/e_log_data.c
create mode 100644 sysdeps/ia64/fpu/e_pow_log_data.c
create mode 100644 sysdeps/ia64/fpu/math_err.c
create mode 100644 sysdeps/ia64/fpu/s_sincosf_data.c
delete mode 100644 sysdeps/ia64/fpu/t_exp.c
create mode 100644 sysdeps/ieee754/dbl-64/e_exp_data.c
create mode 100644 sysdeps/ieee754/dbl-64/e_log2_data.c
create mode 100644 sysdeps/ieee754/dbl-64/e_log_data.c
create mode 100644 sysdeps/ieee754/dbl-64/e_pow_log_data.c
delete mode 100644 sysdeps/ieee754/dbl-64/eexp.tbl
create mode 100644 sysdeps/ieee754/dbl-64/math_config.h
create mode 100644 sysdeps/ieee754/dbl-64/math_err.c
delete mode 100644 sysdeps/ieee754/dbl-64/t_exp.c
delete mode 100644 sysdeps/ieee754/dbl-64/t_exp2.h
delete mode 100644 sysdeps/ieee754/dbl-64/uexp.h
delete mode 100644 sysdeps/ieee754/dbl-64/uexp.tbl
delete mode 100644 sysdeps/ieee754/dbl-64/ulog.h
delete mode 100644 sysdeps/ieee754/dbl-64/ulog.tbl
delete mode 100644 sysdeps/ieee754/dbl-64/upow.h
delete mode 100644 sysdeps/ieee754/dbl-64/upow.tbl
delete mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c
create mode 100644 sysdeps/ieee754/flt-32/s_sincosf_data.c
create mode 100644 sysdeps/m68k/m680x0/fpu/e_exp_data.c
create mode 100644 sysdeps/m68k/m680x0/fpu/e_log2_data.c
create mode 100644 sysdeps/m68k/m680x0/fpu/e_log_data.c
create mode 100644 sysdeps/m68k/m680x0/fpu/e_pow_log_data.c
create mode 100644 sysdeps/m68k/m680x0/fpu/math_err.c
create mode 100644 sysdeps/m68k/m680x0/fpu/s_sincosf_data.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/t_exp.c
--
2.14.1
More information about the Libc-alpha
mailing list