Commit 3ed0e5e5 authored by Damien George's avatar Damien George
Browse files

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.
parent 4b8ec525
......@@ -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");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment