newlib-cygwin/newlib/libm/common
Jesse Huang via Newlib 9e329b544a Fix rounding results in lrint() & llrint() when close to 0
soft-fp should round floating pointer numbers according to the current
rounding mode. However, in the current code of lrint() and llrint(),
there are if statements before the actual rounding computation

      if(j0 < -1)
        return 0;

Where j0 is the exponent of the floating point number.

It means any number having a exponent less than -1
(i.e. interval (-0.5, 0.5)) will be rounded to 0 regardeless of the
rounding mode.

The bug already fixed in glibc in 2006 by moving the check afterwards
the rounding computation, but still persists in newlib.

This patch fixed it in a similar way to glibc
Ref Commit in glibc: 6624dbc07b5a9fb316ed188ef01f65b8eea8b47c
2023-07-27 11:14:12 +02:00
..
Makefile.inc newlib: libm: merge build up a directory 2022-02-17 20:56:32 -05: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 Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
exp2.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
exp2l.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
exp_data.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 Add declarations for __ieee754_tgamma functions to fdlibm.h 2020-12-16 15:28:09 -05: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 frexpl: Support smaller long double of LDBL_MANT_DIG == 53. 2021-12-03 19:14:03 +09:00
hypotl.c Remove HUGE_VAL definition from libm math functions 2019-01-23 10:46:30 +01: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 Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
log1pl.c 2009-04-17 Jeff johnston <jjohnstn@redhat.com> 2009-04-17 22:15:43 +00:00
log2.c Typo in license terms for newlib/libm/common/log2.c 2020-02-06 11:58:50 +01:00
log2_data.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 RISC-V: Support Zfinx/Zdinx extension. 2023-07-26 15:21:35 +02:00
math_err.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
math_errf.c libm/math: Use __math_xflow in obsolete math code [v2] 2020-08-03 13:29:27 +02:00
modfl.c 2013-11-19 Joel Sherrill <joel.sherrill@oarcorp.com> 2013-11-19 17:28:04 +00:00
nanl.c Implement nanl in newlib only 2018-10-10 17:49:53 +02: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 Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
pow_log_data.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 Remove matherr, and SVID and X/Open math library configurations 2019-01-23 10:46:24 +01:00
s_expm1.c Fix 3 other instances of Reme typo (should be Remez) 2022-12-16 14:18:56 -05:00
s_fdim.c Fix error in fdim/f for infinities 2020-03-10 15:11:23 +01:00
s_finite.c
s_fma.c libm/machine/arm: Add optimized fmaf and fma when available 2020-08-10 21:04:12 +02: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_llrint.c Fix rounding results in lrint() & llrint() when close to 0 2023-07-27 11:14:12 +02:00
s_llround.c 2010-08-03 Craig Howland <howland@LGSInnovations.com> 2010-08-03 18:21:20 +00:00
s_log1p.c Fix 3 other instances of Reme typo (should be Remez) 2022-12-16 14:18:56 -05:00
s_log2.c Remove matherr, and SVID and X/Open math library configurations 2019-01-23 10:46:24 +01:00
s_logb.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_lrint.c Fix rounding results in lrint() & llrint() when close to 0 2023-07-27 11:14:12 +02:00
s_lround.c libm/common: remove TRAD_SYNOPSIS 2017-12-01 03:41:53 -06:00
s_modf.c newlib/libm/common: Don't re-convert float to bits in modf/modff 2020-03-26 12:21:33 +01: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 Remove matherr, and SVID and X/Open math library configurations 2019-01-23 10:46:24 +01: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: Fixing overflow handling issue for scalbnf and scalbn 2021-07-21 09:56:04 +02: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 Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sf_exp2.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sf_exp2_data.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 Set errno in expm1{,f} / log1p{,f} 2019-07-09 13:06:59 -04:00
sf_fdim.c Fix error in fdim/f for infinities 2020-03-10 15:11:23 +01:00
sf_finite.c
sf_fma.c libm/machine/arm: Add optimized fmaf and fma when available 2020-08-10 21:04:12 +02: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
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 Fix rounding results in lrint() & llrint() when close to 0 2023-07-27 11:14:12 +02:00
sf_llround.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_log.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sf_log1p.c libm: switch sf_log1p from double error routines to float 2019-12-02 10:00:32 +01:00
sf_log2.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sf_log2_data.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sf_log_data.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sf_logb.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_lrint.c Fix rounding results in lrint() & llrint() when close to 0 2023-07-27 11:14:12 +02:00
sf_lround.c 2009-03-25 Craig Howland <howland@LGSInnovations.com> 2009-03-25 19:13:24 +00:00
sf_modf.c newlib/libm/common: Don't re-convert float to bits in modf/modff 2020-03-26 12:21:33 +01: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
sf_pow.c Fix powf overflow handling in non-nearest rounding mode 2018-12-10 16:51:05 +01: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 Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 libm: Fixing overflow handling issue for scalbnf and scalbn 2021-07-21 09:56:04 +02:00
sf_trunc.c Fix truncf for sNaN input 2020-03-11 12:10:58 +01:00
sincosf.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sincosf.h Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sincosf_data.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01:00
sinf.c Update Arm copyright notices in new math files 2018-09-28 11:03:55 +01: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 newlib: fix various gcc warnings 2018-08-08 10:50:19 +02: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