Unexpected NANs in complex arithmetic
Antoon Pardon
antoon.pardon at rece.vub.ac.be
Wed Jun 22 03:14:34 EDT 2016
Op 22-06-16 om 04:48 schreef Steven D'Aprano:
> I'm doing some arithmetic on complex numbers involving INFs, and getting
> unexpected NANs.
>
> py> INF = float('inf')
> py> z = INF + 3j
> py> z
> (inf+3j)
> py> -z
> (-inf-3j)
>
> So far, nothing unexpected has occurred. But:
>
> py> -1*z # should be the same as -z
> (-inf+nanj)
What I remember from complex numbers is that a multiplication
with a number that has |z| = 1, is equivallent with a rotation.
So you should be able to get the polar representation of this
"number", add in the angle of -1, being π, and convert back to
the cartesian representation.
I think seen this way, the nan part makes perfect sense.
Also the multiplication of a+bj with c+dj is (ac-bd)+(ad+bc)j
With your "numbers" this gives.
(inf*(-1) - 3*0) + (inf*0 + 3*(-1))j
Again the nan part makes perfect sense.
--
Antoon
More information about the Python-list
mailing list