Mark Dickinson <dicki...@gmail.com> added the comment:

Thanks, @seberg. I'll take a look and see if we can restore the old behaviour, 
at least for Python 3.9 and 3.10. I'm not convinced that the new behaviour is 
objectively wrong, but I agree that the *change* in behaviour is problematic.

I do find it a little odd that we're special-casing integer exponents for 
complex numbers when no such special-casing exists for floats. It's not purely 
for optimization (despite what the code might say). And all the messing around 
with trying to figure out exactly _which_ doubles can safely be cast to long 
(which was the original cause of this issue) seems like a symptom of a deeper 
problem, which is that it doesn't make a whole lot of sense to be 
distinguishing in the first place. But if we're going to change the behaviour, 
we should only be doing that in 3.11.

OTOH, there *is* real value in z**2 being fast and accurate; we definitely want 
to keep that. (Perhaps the math and cmath modules should grow a `square` 
function.)

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue44698>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to