Why `divmod(float('inf'), 1) == (float('nan'), float('nan'))`

cool-RR ram.rachum at gmail.com
Wed Sep 17 12:33:33 EDT 2014


On Wednesday, September 17, 2014 6:30:04 PM UTC+3, Chris Angelico wrote:
> On Thu, Sep 18, 2014 at 1:16 AM, cool-RR <ram.rachum at gmail.com> wrote:
> > I didn't ask for the modulo, I agree it should remain NaN. I'm talking about the floor division.
> 
> Invariant: div*y + mod == x.
> If mod is NaN, there is no possible value for div that will make the
> invariant true, ergo it too has to be NaN.
> ChrisA

Chris, why is this invariant `div*y + mod == x` so important? Maybe it's more important to return a mathematically reasonable result for the the floor-division result than to maintain this invariant?


Thanks,
Ram.



More information about the Python-list mailing list