aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George2017-02-03 00:01:45 +1100
committerDamien George2017-02-03 00:01:45 +1100
commit3ed0e5e5d4af1ad2603fa1b87935cf65a27b083e (patch)
tree747cba8e65cbb6f29360ee79ecc52ead3995a5fd
parent4b8ec5256d3d27b6cd69afeda62d645df4719ea9 (diff)
py/objcomplex: Correctly handle case of 0j to power of something.
0j to the power of negative now raises ZeroDivisionError, and 0j to the power of positive returns 0.
-rw-r--r--py/objcomplex.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/py/objcomplex.c b/py/objcomplex.c
index 96be25255..4c05886f0 100644
--- a/py/objcomplex.c
+++ b/py/objcomplex.c
@@ -222,8 +222,8 @@ mp_obj_t mp_obj_complex_binary_op(mp_uint_t op, mp_float_t lhs_real, mp_float_t
// = exp(x3)*(cos(y3) + i*sin(y3))
mp_float_t abs1 = MICROPY_FLOAT_C_FUN(sqrt)(lhs_real*lhs_real + lhs_imag*lhs_imag);
if (abs1 == 0) {
- if (rhs_imag == 0) {
- lhs_real = 1;
+ if (rhs_imag == 0 && rhs_real >= 0) {
+ lhs_real = 1 ? rhs_real == 0 : 0;
rhs_real = 0;
} else {
mp_raise_msg(&mp_type_ZeroDivisionError, "0.0 to a complex power");