summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/modcmath.c2
-rw-r--r--py/objcomplex.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/py/modcmath.c b/py/modcmath.c
index 59fa76ee68..46a33d3a89 100644
--- a/py/modcmath.c
+++ b/py/modcmath.c
@@ -97,7 +97,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_cmath_log_obj, mp_cmath_log);
STATIC mp_obj_t mp_cmath_log10(mp_obj_t z_obj) {
mp_float_t real, imag;
mp_obj_get_complex(z_obj, &real, &imag);
- return mp_obj_new_complex(0.5 * MICROPY_FLOAT_C_FUN(log10)(real*real + imag*imag), MICROPY_FLOAT_C_FUN(atan2)(imag, real));
+ return mp_obj_new_complex(0.5 * MICROPY_FLOAT_C_FUN(log10)(real*real + imag*imag), 0.4342944819032518 * MICROPY_FLOAT_C_FUN(atan2)(imag, real));
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_cmath_log10_obj, mp_cmath_log10);
diff --git a/py/objcomplex.c b/py/objcomplex.c
index 027292a17a..6a403f6269 100644
--- a/py/objcomplex.c
+++ b/py/objcomplex.c
@@ -58,7 +58,10 @@ STATIC void complex_print(void (*print)(void *env, const char *fmt, ...), void *
print(env, "%sj", buf);
} else {
mp_format_float(o->real, buf, sizeof(buf), 'g', 7, '\0');
- print(env, "(%s+", buf);
+ print(env, "(%s", buf);
+ if (o->imag >= 0) {
+ print(env, "+");
+ }
mp_format_float(o->imag, buf, sizeof(buf), 'g', 7, '\0');
print(env, "%sj)", buf);
}
@@ -69,7 +72,10 @@ STATIC void complex_print(void (*print)(void *env, const char *fmt, ...), void *
print(env, "%sj", buf);
} else {
sprintf(buf, "%.16g", (double)o->real);
- print(env, "(%s+", buf);
+ print(env, "(%s", buf);
+ if (o->imag >= 0) {
+ print(env, "+");
+ }
sprintf(buf, "%.16g", (double)o->imag);
print(env, "%sj)", buf);
}