On Dec 7, 6:37 pm, Steven D'Aprano <[EMAIL PROTECTED] cybersource.com.au> wrote: > On Sun, 07 Dec 2008 23:20:12 +0000, Steven D'Aprano wrote: > > On Sun, 07 Dec 2008 15:32:53 -0600, Robert Kern wrote: > > >> Rasmus Fogh wrote: > > >>> Current behaviour is both inconsistent and counterintuitive, as these > >>> examples show. > > >>>>>> x = float('NaN') > >>>>>> x == x > >>> False > > >> Blame IEEE for that one. Rich comparisons have nothing to do with that > >> one. > > > There is nothing to blame them for. This is the correct behaviour. NaNs > > should *not* compare equal to themselves, that's mathematically > > incoherent. > > Sorry, I should explain why. > > Given: > > x = log(-5) # a NaN > y = log(-2) # the same NaN > x == y # Some people want this to be true for NaNs. > > Then: > > # Compare x and y directly. > log(-5) == log(-2) > # If x == y then exp(x) == exp(y) for all x, y. > exp(log(-5)) == exp(log(-2)) > -5 == -2 > > and now the entire foundations of mathematics collapses into a steaming > pile of rubble.
And why doesn't this happen with the current behavior if x = y = log (-5) ? According to the same proof, -5 != -5. George -- http://mail.python.org/mailman/listinfo/python-list