This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients gvanrossum, mark.dickinson, serhiy.storchaka, vstinner
Date 2015-01-13.17:27:32
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1421170052.47.0.603843069146.issue23229@psf.upfronthosting.co.za>
In-reply-to
Content
> Having them in the cmath module provides a place
to document them which will then be searchable.

Okay, makes sense.

One of the reasons I'm a bit unhappy with the idea of adding infj and nanj is that it seems like an encouragement to expect "eval(repr(z))" to work (i.e., recover the original value of z), and because Python doesn't have strict imaginary numbers (i.e., numbers with no real part at all), that fails:

>>> from math import inf, nan
>>> infj = complex(0.0, inf)
>>> nanj = complex(0.0, nan)
>>> z = complex(0.0, -inf)
>>> w = eval(repr(z))
>>> z
-infj
>>> w  # real part has the "wrong" sign
(-0-infj)

But that's a pretty hollow objection, because this really has nothing to do with inf and nan; it's a problem with finite values, too:

>>> z = complex(0.0, -3.4)
>>> w = eval(repr(z))
>>> z
-3.4j
>>> w
(-0-3.4j)

So I'll add infj and nanj if the consensus is that they're useful.
History
Date User Action Args
2015-01-13 17:27:32mark.dickinsonsetrecipients: + mark.dickinson, gvanrossum, vstinner, serhiy.storchaka
2015-01-13 17:27:32mark.dickinsonsetmessageid: <1421170052.47.0.603843069146.issue23229@psf.upfronthosting.co.za>
2015-01-13 17:27:32mark.dickinsonlinkissue23229 messages
2015-01-13 17:27:32mark.dickinsoncreate