Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
......@@ -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");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment