newlib-cygwin/newlib/libm/math
Szabolcs Nagy b99d49e506 New pow implementation
The new implementation is provided under !__OBSOLETE_MATH, it uses
ISO C99 code.  With default settings the worst case error in nearest
rounding mode is 0.54 ULP with inlined fma and fma contraction.  It uses
a 4 KB lookup table in addition to the table in exp_data.c, on aarch64
.text+.rodata size of libm.a is increased by 2295 bytes.

Improvements on Cortex-A72:
latency: 3.3x
thruput: 4.9x
2018-06-27 15:40:49 +02:00
..
Makefile.am New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
Makefile.in makedoc: make errors visible 2017-12-07 11:54:11 +00:00
e_acos.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_acosh.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_asin.c 2000-05-26 Marek Michalkiewicz <marekm@linux.org.pl> 2000-05-26 22:42:39 +00:00
e_atan2.c Throughout, run newlib with -Wall -Werror option and fix bugs and 2012-08-08 11:04:18 +00:00
e_atanh.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_cosh.c 2000-08-23 Werner Almesberger <Werner.Almesberger@epfl.ch> 2000-08-28 17:45:56 +00:00
e_exp.c New exp and exp2 implementations 2018-06-27 15:40:49 +02:00
e_fmod.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_hypot.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_j0.c 2000-05-26 Marek Michalkiewicz <marekm@linux.org.pl> 2000-05-26 22:42:39 +00:00
e_j1.c 2000-05-26 Marek Michalkiewicz <marekm@linux.org.pl> 2000-05-26 22:42:39 +00:00
e_jn.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_log.c New log implementation 2018-06-27 15:40:49 +02:00
e_log10.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_pow.c New pow implementation 2018-06-27 15:40:49 +02:00
e_rem_pio2.c Throughout, run newlib with -Wall -Werror option and fix bugs and 2012-08-08 11:04:18 +00:00
e_remainder.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_scalb.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
e_sinh.c 2000-08-23 Werner Almesberger <Werner.Almesberger@epfl.ch> 2000-08-28 17:45:56 +00:00
e_sqrt.c Avoid unneeded truncation to "int" 2015-05-27 13:30:20 +02:00
ef_acos.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
ef_acosh.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_asin.c 2001-04-17 Stephen L. Moshier <moshier@moshier.ne.mediaone.net> 2001-04-17 17:13:00 +00:00
ef_atan2.c 2005-07-20 Bob Wilson <bob.wilson@acm.org> 2005-07-20 16:20:24 +00:00
ef_atanh.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
ef_cosh.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_exp.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
ef_fmod.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_hypot.c 2005-08-02 Bob Wilson <bob.wilson@acm.org> 2005-08-02 19:44:44 +00:00
ef_j0.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_j1.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_jn.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_log.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
ef_log10.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_pow.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
ef_rem_pio2.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_remainder.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_scalb.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
ef_sinh.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
ef_sqrt.c * libm/math/ef_sqrt.c: Delete unused variable sign. 2010-03-05 08:55:16 +00:00
el_hypot.c * libc/include/complex.h (cabsl): Add prototype. 2015-02-06 16:14:04 +00:00
er_gamma.c * libm/common/s_fdim.c: New file. 2002-06-07 21:59:57 +00:00
er_lgamma.c Throughout, run newlib with -Wall -Werror option and fix bugs and 2012-08-08 11:04:18 +00:00
erf_gamma.c * libm/common/s_fdim.c: New file. 2002-06-07 21:59:57 +00:00
erf_lgamma.c Throughout, run newlib with -Wall -Werror option and fix bugs and 2012-08-08 11:04:18 +00:00
k_cos.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
k_rem_pio2.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
k_sin.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
k_standard.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
k_tan.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
kf_cos.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
kf_rem_pio2.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
kf_sin.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
kf_tan.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
math.tex Use makedoc output files which are generated but aren't included 2015-06-24 12:23:55 +01:00
s_asinh.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_atan.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_ceil.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
s_cos.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
s_erf.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_fabs.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_floor.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_frexp.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_ldexp.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_signif.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
s_sin.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_tan.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_tanh.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
sf_asinh.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_atan.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_ceil.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_cos.c Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
sf_erf.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_fabs.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
sf_floor.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_frexp.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_ldexp.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
sf_signif.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
sf_sin.c Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
sf_tan.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_tanh.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
w_acos.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_acosh.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_asin.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_atan2.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_atanh.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_cosh.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_drem.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
w_exp.c New exp and exp2 implementations 2018-06-27 15:40:49 +02:00
w_exp2.c New exp and exp2 implementations 2018-06-27 15:40:49 +02:00
w_fmod.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_gamma.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_hypot.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_j0.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_j1.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
w_jn.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
w_lgamma.c * implement a new `struct _reent' that is significantly smaller. use this 2002-02-03 09:24:18 +00:00
w_log.c New log implementation 2018-06-27 15:40:49 +02:00
w_log10.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_pow.c New pow implementation 2018-06-27 15:40:49 +02:00
w_remainder.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_scalb.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
w_sincos.c * libc/sys/linux/cmath: New directory. 2002-08-16 21:29:45 +00:00
w_sinh.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_sqrt.c math: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
w_tgamma.c 2011-01-12 Ralf Corsépius <ralf.corsepius@rtems.org> 2011-01-12 22:25:15 +00:00
wf_acos.c ansification: remove _HAVE_STDC 2018-01-17 11:47:30 -06:00
wf_acosh.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_asin.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_atan2.c 2007-05-17 Cary R. <cygcary <at> yahoo.com> 2007-05-17 21:52:11 +00:00
wf_atanh.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_cosh.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_drem.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
wf_exp.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
wf_exp2.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
wf_fmod.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_gamma.c * implement a new `struct _reent' that is significantly smaller. use this 2002-02-03 09:24:18 +00:00
wf_hypot.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
wf_j0.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_j1.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_jn.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_lgamma.c * implement a new `struct _reent' that is significantly smaller. use this 2002-02-03 09:24:18 +00:00
wf_log.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
wf_log2.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
wf_log10.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_pow.c newlib: Don't do double divide in powf. 2017-12-13 11:33:19 +01:00
wf_remainder.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_scalb.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_sincos.c Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
wf_sinh.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
wf_sqrt.c 2009-07-09 Craig Howland <howland@LGSInnovations.com> 2009-07-09 17:04:56 +00:00
wf_tgamma.c 2011-01-12 Ralf Corsépius <ralf.corsepius@rtems.org> 2011-01-12 22:25:15 +00:00
wr_gamma.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
wr_lgamma.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
wrf_gamma.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
wrf_lgamma.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00