From 52d8d769678a388ef96fff34a0d92efb7c895a04 Mon Sep 17 00:00:00 2001
From: Gabriel Studer <gabriel.studer@stud.unibas.ch>
Date: Wed, 30 Jan 2013 14:46:51 +0100
Subject: [PATCH] proper check, whether number is NaN using x!=x

Other possibility would be to use math.isnan(x), but this
has been introduced in python 2.6 and doesn't work in older versions.
---
 modules/base/pymod/table.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/modules/base/pymod/table.py b/modules/base/pymod/table.py
index 45e4b6154..65c9eba43 100644
--- a/modules/base/pymod/table.py
+++ b/modules/base/pymod/table.py
@@ -821,10 +821,10 @@ Statistics for column %(col)s
 
 
   def _EvaluateEqualNone(self, lhs, rhs):
-    return (lhs==None or lhs==float('NaN')) == (rhs==None or rhs==float('NaN'))
+    return (lhs==None or lhs!=lhs) == (rhs==None or rhs!=rhs)
  
   def _EvaluateNonEqualNone(self, lhs, rhs):
-    return (lhs==None or lhs==float('NaN')) != (rhs==None or rhs==float('NaN'))
+    return (lhs==None or lhs!=lhs) != (rhs==None or rhs!=rhs)
  
   def _EvaluateAnd(self, lhs, rhs):
     return lhs and rhs
@@ -851,22 +851,22 @@ Statistics for column %(col)s
     return lhs>=rhs
 
   def _EvaluateAdd(self, lhs, rhs):
-    if lhs==None or lhs==float('NaN') or rhs==None or rhs==float('NaN'):
+    if lhs==None or lhs!=lhs or rhs==None or rhs!=rhs:
       return None
     return lhs+rhs
 
   def _EvaluateSubtract(self, lhs, rhs):
-    if lhs==None or lhs==float('NaN') or rhs==None or rhs==float('NaN'):
+    if lhs==None or lhs!=lhs or rhs==None or rhs!=rhs:
       return None
     return lhs-rhs
 
   def _EvaluateMultiply(self, lhs, rhs):
-    if lhs==None or lhs==float('NaN') or rhs==None or rhs==float('NaN'):
+    if lhs==None or lhs!=lhs or rhs==None or rhs!=rhs:
       return None
     return lhs*rhs
 
   def _EvaluateDivide(self, lhs, rhs):
-    if lhs==None or lhs==float('NaN') or rhs==None or rhs==float('NaN'):
+    if lhs==None or lhs!=lhs or rhs==None or rhs!=rhs:
       return None
     return lhs/rhs
 
@@ -881,7 +881,7 @@ Statistics for column %(col)s
       return self._EvaluateDivide(lhs, rhs)
     elif op=='*':
       return self._EvaluateMultiply(lhs, rhs)
-    elif lhs==None or lhs==float('NaN') or rhs==None or rhs==float('NaN'):
+    elif lhs==None or lhs!=lhs or rhs==None or rhs!=rhs:
       if op=='=':
         return self._EvaluateEqualNone(lhs,rhs)
       elif op=='!=':
-- 
GitLab