libc/newlib/libm/common
Szabolcs Nagy 2805b07fa1 Fix large ulp error in pow without fma very near 1.0
The !HAVE_FAST_FMA code path split r = z/c - 1 into r = rhi + rlo such
that when z = 1-tiny and c = 1 then rlo and rhi could have much larger
magnitude than r which later caused large rounding errors.

So do a nearest rounding instead of truncation at the split.

In newlib with default settings this was observable on some arm targets
that enable the new math code but has no fma.
2018-07-06 10:29:01 +02:00
..
Makefile.am New pow implementation 2018-06-27 15:40:49 +02:00
Makefile.in New pow 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 Fix code style and comments of new math code 2018-07-06 10:29:01 +02:00
exp2.c Fix code style and comments of new math code 2018-07-06 10:29:01 +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 pow 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 Move __HAVE_FAST_FMA to math_config.h 2018-07-06 10:29:01 +02:00
log1pl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
log2.c Move __HAVE_FAST_FMA to math_config.h 2018-07-06 10:29:01 +02:00
log2_data.c Move __HAVE_FAST_FMA to math_config.h 2018-07-06 10:29:01 +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 Move __HAVE_FAST_FMA to math_config.h 2018-07-06 10:29:01 +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 Change the return type of converttoint and document the semantics 2018-07-06 10:29:01 +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
pow.c Fix large ulp error in pow without fma very near 1.0 2018-07-06 10:29:01 +02:00
pow_log_data.c New pow implementation 2018-06-27 15:40:49 +02: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 import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
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 * libm/common/s_fdim.c: New file. 2002-06-07 21:59:57 +00:00
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 * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_copysign.c import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
sf_exp.c Remove unused TOINT_RINT and TOINT_SHIFT macros 2018-07-06 10:29:01 +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 * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_fdim.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_finite.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_fma.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_fmax.c 2005-08-10 Stephen Huw Clarke <stephen.clarke@st.com> 2005-08-10 21:02:28 +00:00
sf_fmin.c 2005-08-10 Stephen Huw Clarke <stephen.clarke@st.com> 2005-08-10 21:02:28 +00:00
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 import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
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 * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
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 import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00
sf_nan.c 2014-03-21 Maciej W. Rozycki <macro@codesourcery.com> 2014-03-21 21:27:29 +00:00
sf_nearbyint.c * libm/common/s_fdim.c: New file. 2002-06-07 21:59:57 +00:00
sf_nextafter.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
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 * libm/common/s_fdim.c: New file. 2002-06-07 21:59:57 +00:00
sf_scalbn.c * libc/include/machine/ieeefp.h: Comment about new configuration 2001-04-04 13:33:01 +00:00
sf_trunc.c * libm/common/s_fdim.c: New file. 2002-06-07 21:59:57 +00:00
sincosf.c Fix code style and comments of new math code 2018-07-06 10:29:01 +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 Fix code style and comments of new math code 2018-07-06 10:29:01 +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