newlib-cygwin/newlib/libm/common
Szabolcs Nagy 07e2c32828 New log2 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.547 ULP with inlined fma and fma contraction.  It uses
a 1 KB lookup table, on aarch64 .text+.rodata size of libm.a is increased
by 1584 bytes.

Note that the math.h header defines log2(x) to be log(x)/Ln2, this is
not changed, so the new code is only used if that macro is suppressed.

Improvements on Cortex-A72:
latency: 2.0x
thruput: 2.2x
2018-06-27 15:40:49 +02:00
..
Makefile.am New log2 implementation 2018-06-27 15:40:49 +02:00
Makefile.in New log2 implementation 2018-06-27 15:40:49 +02:00
acoshl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
acosl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
asinhl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
asinl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
atan2l.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
atanhl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
atanl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
cbrtl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
ceill.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
copysignl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
cosf.c Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
coshl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
cosl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
erfcl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
erfl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
exp.c New exp and exp2 implementations 2018-06-27 15:40:49 +02:00
exp2.c New exp and exp2 implementations 2018-06-27 15:40:49 +02:00
exp2l.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
exp_data.c New exp and exp2 implementations 2018-06-27 15:40:49 +02:00
expl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
expm1l.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
fabsl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
fdiml.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
fdlibm.h New log implementation 2018-06-27 15:40:49 +02:00
floorl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
fmal.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
fmaxl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
fminl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
fmodl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
frexpl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
hypotl.c * libc/include/complex.h (cabsl): Add prototype. 2015-02-06 16:14:04 +00:00
ilogbl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
isgreater.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
ldexpl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
lgammal.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
llrintl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
llroundl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
local.h 2009-04-24 Jeff johnston <jjohnstn@redhat.com> 2009-04-24 22:49:55 +00:00
log.c New log implementation 2018-06-27 15:40:49 +02:00
log1pl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
log2.c New log2 implementation 2018-06-27 15:40:49 +02:00
log2_data.c New log2 implementation 2018-06-27 15:40:49 +02:00
log2l.c 2014-12-15 Jonathan Roelofs <jonathan@codesourcery.com> 2014-12-15 20:50:23 +00:00
log10l.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
log_data.c New log implementation 2018-06-27 15:40:49 +02:00
logbl.c 2014-12-15 Jonathan Roelofs <jonathan@codesourcery.com> 2014-12-15 20:50:23 +00:00
logl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
lrintl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
lroundl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
math_config.h New log2 implementation 2018-06-27 15:40:49 +02:00
math_err.c New exp and exp2 implementations 2018-06-27 15:40:49 +02:00
math_errf.c Use uint32_t sign argument to math error functions 2018-06-27 15:40:49 +02:00
modfl.c 2013-11-19 Joel Sherrill <joel.sherrill@oarcorp.com> 2013-11-19 17:28:04 +00:00
nanl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
nearbyintl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
nextafterl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
nexttoward.c 2014-12-15 Jonathan Roelofs <jonathan@codesourcery.com> 2014-12-15 20:50:23 +00:00
nexttowardf.c Use _LDBL_EQ_DBL in nexttowardf.c 2018-05-07 12:22:12 -04:00
nexttowardl.c 2014-12-15 Jonathan Roelofs <jonathan@codesourcery.com> 2014-12-15 20:50:23 +00:00
powl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
remainderl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
remquol.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
rintl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
roundl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
s_cbrt.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_copysign.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_exp10.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_expm1.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_fdim.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_finite.c
s_fma.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_fmax.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_fmin.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_fpclassify.c 2007-04-25 Jeff Johnston <jjohnstn@redhat.com> 2007-04-25 22:28:19 +00:00
s_ilogb.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_infinity.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_isinf.c ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
s_isinfd.c ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
s_isnan.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_isnand.c ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
s_lib_ver.c 2006-09-13 Patrick Mansfield <patmans@us.ibm.com> 2006-09-13 22:06:43 +00:00
s_llrint.c fix llrint and lrint for 52 <= exponent <= 62 2018-05-29 15:59:48 +02:00
s_llround.c 2010-08-03 Craig Howland <howland@LGSInnovations.com> 2010-08-03 18:21:20 +00:00
s_log1p.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_log2.c New log2 implementation 2018-06-27 15:40:49 +02:00
s_logb.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_lrint.c fix llrint and lrint for 52 <= exponent <= 62 2018-05-29 15:59:48 +02:00
s_lround.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_matherr.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_modf.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_nan.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_nearbyint.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_nextafter.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_pow10.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_remquo.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_rint.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_round.c libm/common/s_round.c (round): Add cast for 16-bit CPUs 2018-06-21 09:31:13 +02:00
s_scalbln.c
s_scalbn.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_signbit.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_trunc.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
scalblnl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
scalbnl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
sf_cbrt.c
sf_copysign.c
sf_exp.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_exp2.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_exp2_data.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_exp10.c 2007-05-17 Yaakov Selkowitz <yselkowitz <at> users.sourceforge.net> 2007-05-17 18:50:57 +00:00
sf_expm1.c
sf_fdim.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_finite.c
sf_fma.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_fmax.c
sf_fmin.c
sf_fpclassify.c 2007-04-25 Jeff Johnston <jjohnstn@redhat.com> 2007-04-25 22:28:19 +00:00
sf_ilogb.c 2010-02-11 Craig Howland <howland@LGSInnovations.com> 2010-02-11 21:00:33 +00:00
sf_infinity.c
sf_isinf.c ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
sf_isinff.c ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
sf_isnan.c ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
sf_isnanf.c ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
sf_llrint.c * libm/common/sf_llrint.c, libm/common/sf_round.c: Add explicit casts 2010-10-08 15:24:56 +00:00
sf_llround.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_log.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_log1p.c
sf_log2.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_log2_data.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_log_data.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_logb.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_lrint.c Add new binutils target: moxie 2009-04-16 15:39:46 +00:00
sf_lround.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_modf.c
sf_nan.c 2014-03-21 Maciej W. Rozycki <macro@codesourcery.com> 2014-03-21 21:27:29 +00:00
sf_nearbyint.c
sf_nextafter.c
sf_pow.c Use uint32_t sign argument to math error functions 2018-06-27 15:40:49 +02:00
sf_pow10.c 2007-05-17 Yaakov Selkowitz <yselkowitz <at> users.sourceforge.net> 2007-05-17 18:50:57 +00:00
sf_pow_log2_data.c New expf, exp2f, logf, log2f and powf implementations 2017-10-13 10:58:00 +02:00
sf_remquo.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_rint.c 2010-03-08 Craig Howland <howland@LGSInnovations.com> 2010-03-08 17:16:37 +00:00
sf_round.c Throughout, run newlib with -Wall -Werror option and fix bugs and 2012-08-08 11:04:18 +00:00
sf_scalbln.c
sf_scalbn.c
sf_trunc.c
sincosf.c Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
sincosf.h Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
sincosf_data.c Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
sinf.c Improve performance of sinf/cosf/sincosf 2018-06-21 09:37:04 +02:00
sinhl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
sinl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
sl_finite.c finitel: Use correct GCC builtin 2016-03-26 20:29:20 +01:00
sqrtl.c * libc/include/complex.h (cabsl): Add prototype. 2015-02-06 16:14:04 +00:00
tanhl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
tanl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
tgammal.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
truncl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00