For example, ```pycon >>> z1 = complex(1,+0.0) >>> z1**2 (1+0j) >>> z1*z1 (1+0j) >>> z2 = complex(1,-0.0) >>> z2**2 (1+0j) >>> z2*z2 (1-0j) ``` "Big enough" or non-integer powers are unaffected: ```pycon >>> z2**2000 (1-0j) >>> z2**2.1 (1-0j) ``` It seems, this is related to https://github.com/python/cpython/blob/c179c0e6cbb4d1e981fffd43f207f5b1aa5388e5/Objects/complexobject.c#L164 Instead, imaginary component of ``r`` should copy the sign from ``x.imag``. <!-- gh-linked-prs --> ### Linked PRs * gh-118000 * gh-123283 * gh-124243 <!-- /gh-linked-prs -->