Szabolcs Nagy
2018-06-27 13:04:11 UTC
The implementations are based on code from
https://github.com/ARM-software/optimized-routines
and provided here under 3 clause BSD license.
Tested on aarch64 and arm targets.
(I'll reply with git format-patch attached because git
send email does not work for me and thunderbird mangles
things if i inline).
Szabolcs Nagy (5):
Use uint32_t sign argument to math error functions
New exp and exp2 implementations
New log implementation
New log2 implementation
New pow implementation
newlib/libc/include/machine/ieeefp.h | 23 ++
newlib/libm/common/Makefile.am | 4 +-
newlib/libm/common/Makefile.in | 75 ++++-
newlib/libm/common/exp.c | 165 ++++++++++
newlib/libm/common/exp2.c | 152 +++++++++
newlib/libm/common/exp_data.c | 611 +++++++++++++++++++++++++++++++++++
newlib/libm/common/fdlibm.h | 3 +
newlib/libm/common/log.c | 175 ++++++++++
newlib/libm/common/log2.c | 157 +++++++++
newlib/libm/common/log2_data.c | 208 ++++++++++++
newlib/libm/common/log_data.c | 510 +++++++++++++++++++++++++++++
newlib/libm/common/math_config.h | 125 ++++++-
newlib/libm/common/math_err.c | 101 ++++++
newlib/libm/common/math_errf.c | 12 +-
newlib/libm/common/pow.c | 377 +++++++++++++++++++++
newlib/libm/common/pow_log_data.c | 187 +++++++++++
newlib/libm/common/s_log2.c | 2 +
newlib/libm/common/sf_pow.c | 6 +-
newlib/libm/math/e_exp.c | 2 +
newlib/libm/math/e_log.c | 2 +
newlib/libm/math/e_pow.c | 2 +
newlib/libm/math/w_exp.c | 2 +
newlib/libm/math/w_exp2.c | 2 +
newlib/libm/math/w_log.c | 2 +
newlib/libm/math/w_pow.c | 3 +-
25 files changed, 2889 insertions(+), 19 deletions(-)
create mode 100644 newlib/libm/common/exp.c
create mode 100644 newlib/libm/common/exp2.c
create mode 100644 newlib/libm/common/exp_data.c
create mode 100644 newlib/libm/common/log.c
create mode 100644 newlib/libm/common/log2.c
create mode 100644 newlib/libm/common/log2_data.c
create mode 100644 newlib/libm/common/log_data.c
create mode 100644 newlib/libm/common/math_err.c
create mode 100644 newlib/libm/common/pow.c
create mode 100644 newlib/libm/common/pow_log_data.c
--.
2.14.1
https://github.com/ARM-software/optimized-routines
and provided here under 3 clause BSD license.
Tested on aarch64 and arm targets.
(I'll reply with git format-patch attached because git
send email does not work for me and thunderbird mangles
things if i inline).
Szabolcs Nagy (5):
Use uint32_t sign argument to math error functions
New exp and exp2 implementations
New log implementation
New log2 implementation
New pow implementation
newlib/libc/include/machine/ieeefp.h | 23 ++
newlib/libm/common/Makefile.am | 4 +-
newlib/libm/common/Makefile.in | 75 ++++-
newlib/libm/common/exp.c | 165 ++++++++++
newlib/libm/common/exp2.c | 152 +++++++++
newlib/libm/common/exp_data.c | 611 +++++++++++++++++++++++++++++++++++
newlib/libm/common/fdlibm.h | 3 +
newlib/libm/common/log.c | 175 ++++++++++
newlib/libm/common/log2.c | 157 +++++++++
newlib/libm/common/log2_data.c | 208 ++++++++++++
newlib/libm/common/log_data.c | 510 +++++++++++++++++++++++++++++
newlib/libm/common/math_config.h | 125 ++++++-
newlib/libm/common/math_err.c | 101 ++++++
newlib/libm/common/math_errf.c | 12 +-
newlib/libm/common/pow.c | 377 +++++++++++++++++++++
newlib/libm/common/pow_log_data.c | 187 +++++++++++
newlib/libm/common/s_log2.c | 2 +
newlib/libm/common/sf_pow.c | 6 +-
newlib/libm/math/e_exp.c | 2 +
newlib/libm/math/e_log.c | 2 +
newlib/libm/math/e_pow.c | 2 +
newlib/libm/math/w_exp.c | 2 +
newlib/libm/math/w_exp2.c | 2 +
newlib/libm/math/w_log.c | 2 +
newlib/libm/math/w_pow.c | 3 +-
25 files changed, 2889 insertions(+), 19 deletions(-)
create mode 100644 newlib/libm/common/exp.c
create mode 100644 newlib/libm/common/exp2.c
create mode 100644 newlib/libm/common/exp_data.c
create mode 100644 newlib/libm/common/log.c
create mode 100644 newlib/libm/common/log2.c
create mode 100644 newlib/libm/common/log2_data.c
create mode 100644 newlib/libm/common/log_data.c
create mode 100644 newlib/libm/common/math_err.c
create mode 100644 newlib/libm/common/pow.c
create mode 100644 newlib/libm/common/pow_log_data.c
--.
2.14.1