This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 00/10] Optimized math routines


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]