[Python-ideas] Suggestion: Extend integers to include iNaN

Steven D'Aprano steve at pearwood.info
Sun Sep 30 10:53:02 EDT 2018


On Sun, Sep 30, 2018 at 09:55:58AM -0400, David Mertz wrote:
> Notwithstanding my observation of one case where 'nan <op> float' doesn't
> stay a nan, I definitely want something like iNaN. Btw are there other
> operations on NaN's do not produce NaN's?

Yes.

The (informal?) rule applied by IEEE-754 is that if a function takes 
multiple arguments, and the result is entirely determined by all the 
non-NAN inputs, then that value ought to be returned. For example:

py> math.hypot(INF, NAN)
inf

py> 1**NAN
1.0

But generally, any operation (apart from comparisons) on a NAN is 
usually going to return a NAN.


> I suspect a NaNAwareInt subclass is the easiest way to get there, but I'm
> agnostic on that detail.

I think that adding a NAN to int itself will be too controversial to be 
accepted :-)



-- 
Steve


More information about the Python-ideas mailing list