summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--esp8266/Makefile2
-rw-r--r--py/modbuiltins.c11
-rw-r--r--qemu-arm/Makefile2
-rw-r--r--stmhal/Makefile2
4 files changed, 5 insertions, 12 deletions
diff --git a/esp8266/Makefile b/esp8266/Makefile
index 4710f4cdc2..28dbf08a64 100644
--- a/esp8266/Makefile
+++ b/esp8266/Makefile
@@ -108,7 +108,7 @@ LIB_SRC_C = $(addprefix lib/,\
libc/string0.c \
libm/math.c \
libm/fmodf.c \
- libm/roundf.c \
+ libm/nearbyintf.c \
libm/ef_sqrt.c \
libm/kf_rem_pio2.c \
libm/kf_sin.c \
diff --git a/py/modbuiltins.c b/py/modbuiltins.c
index 13312d2296..541e733e5a 100644
--- a/py/modbuiltins.c
+++ b/py/modbuiltins.c
@@ -473,18 +473,11 @@ STATIC mp_obj_t mp_builtin_round(size_t n_args, const mp_obj_t *args) {
mp_float_t val = mp_obj_get_float(o_in);
mp_float_t mult = MICROPY_FLOAT_C_FUN(pow)(10, num_dig);
// TODO may lead to overflow
- mp_float_t rounded = MICROPY_FLOAT_C_FUN(round)(val * mult) / mult;
+ mp_float_t rounded = MICROPY_FLOAT_C_FUN(nearbyint)(val * mult) / mult;
return mp_obj_new_float(rounded);
}
mp_float_t val = mp_obj_get_float(o_in);
- mp_float_t rounded = MICROPY_FLOAT_C_FUN(round)(val);
- mp_int_t r = rounded;
- // make rounded value even if it was halfway between ints
- if (val - rounded == 0.5) {
- r = (r + 1) & (~1);
- } else if (val - rounded == -0.5) {
- r &= ~1;
- }
+ mp_float_t rounded = MICROPY_FLOAT_C_FUN(nearbyint)(val);
#else
mp_int_t r = mp_obj_get_int(o_in);
#endif
diff --git a/qemu-arm/Makefile b/qemu-arm/Makefile
index e8f5b359ef..d4bbe8d583 100644
--- a/qemu-arm/Makefile
+++ b/qemu-arm/Makefile
@@ -47,7 +47,7 @@ SRC_TEST_C = \
LIB_SRC_C = $(addprefix lib/,\
libm/math.c \
libm/fmodf.c \
- libm/roundf.c \
+ libm/nearbyintf.c \
libm/ef_sqrt.c \
libm/kf_rem_pio2.c \
libm/kf_sin.c \
diff --git a/stmhal/Makefile b/stmhal/Makefile
index 3eef6ffb23..51aa07f3c9 100644
--- a/stmhal/Makefile
+++ b/stmhal/Makefile
@@ -86,7 +86,7 @@ SRC_LIB = $(addprefix lib/,\
libm/atanf.c \
libm/atan2f.c \
libm/fmodf.c \
- libm/roundf.c \
+ libm/nearbyintf.c \
libm/log1pf.c \
libm/acoshf.c \
libm/asinhf.c \