Mark Dickinson added the comment:
I think this is mostly unavoidable: cmath.log(z, 10) is a compound operation
that does the equivalent of cmath.log(z) / cmath.log(10), while cmath.log10 is
doing everything at once.
If anything, this is a problem in how complex division is done: it's arguable
that division by a complex number with zero imaginary part should be
special-cased here.
>>> inf = float('inf')
>>> z = complex(-0.0, -inf)
>>> cmath.log(10)
(2.302585092994046+0j)
>>> cmath.log(z)
(inf-1.5707963267948966j)
>>> cmath.log(z) / cmath.log(10)
(inf+nanj)
A simpler example just involving division:
>>> complex(2.0, inf) / 2.0 # expect 1 + infj.
(nan+infj)
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue22544>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com