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.
This commit is contained in:
parent
4b8ec5256d
commit
3ed0e5e5d4
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue