[Lemon-commits] Alpar Juttner: Own support for isnan()

Lemon HG hg at lemon.cs.elte.hu
Thu Jan 15 16:54:56 CET 2009


details:   http://lemon.cs.elte.hu/hg/lemon/rev/81627fa1b007
changeset: 493:81627fa1b007
user:      Alpar Juttner <alpar [at] cs.elte.hu>
date:      Wed Jan 14 15:55:29 2009 +0000
description:
	Own support for isnan()

diffstat:

2 files changed, 15 insertions(+), 6 deletions(-)
lemon/lp_base.h |   12 ++++++------
lemon/math.h    |    9 +++++++++

diffs (72 lines):

diff --git a/lemon/lp_base.h b/lemon/lp_base.h
--- a/lemon/lp_base.h
+++ b/lemon/lp_base.h
@@ -597,11 +597,11 @@
       const Value &upperBound() const { return _ub; }
       ///Is the constraint lower bounded?
       bool lowerBounded() const {
-        return _lb != -INF && !std::isnan(_lb);
+        return _lb != -INF && !isnan(_lb);
       }
       ///Is the constraint upper bounded?
       bool upperBounded() const {
-        return _ub != INF && !std::isnan(_ub);
+        return _ub != INF && !isnan(_ub);
       }
 
     };
@@ -1666,7 +1666,7 @@
   inline LpBase::Constr operator<=(const LpBase::Value &n,
                                    const LpBase::Constr &c) {
     LpBase::Constr tmp(c);
-    LEMON_ASSERT(std::isnan(tmp.lowerBound()), "Wrong LP constraint");
+    LEMON_ASSERT(isnan(tmp.lowerBound()), "Wrong LP constraint");
     tmp.lowerBound()=n;
     return tmp;
   }
@@ -1678,7 +1678,7 @@
                                    const LpBase::Value &n)
   {
     LpBase::Constr tmp(c);
-    LEMON_ASSERT(std::isnan(tmp.upperBound()), "Wrong LP constraint");
+    LEMON_ASSERT(isnan(tmp.upperBound()), "Wrong LP constraint");
     tmp.upperBound()=n;
     return tmp;
   }
@@ -1690,7 +1690,7 @@
   inline LpBase::Constr operator>=(const LpBase::Value &n,
                                    const LpBase::Constr &c) {
     LpBase::Constr tmp(c);
-    LEMON_ASSERT(std::isnan(tmp.upperBound()), "Wrong LP constraint");
+    LEMON_ASSERT(isnan(tmp.upperBound()), "Wrong LP constraint");
     tmp.upperBound()=n;
     return tmp;
   }
@@ -1702,7 +1702,7 @@
                                    const LpBase::Value &n)
   {
     LpBase::Constr tmp(c);
-    LEMON_ASSERT(std::isnan(tmp.lowerBound()), "Wrong LP constraint");
+    LEMON_ASSERT(isnan(tmp.lowerBound()), "Wrong LP constraint");
     tmp.lowerBound()=n;
     return tmp;
   }
diff --git a/lemon/math.h b/lemon/math.h
--- a/lemon/math.h
+++ b/lemon/math.h
@@ -55,6 +55,15 @@
   /// 1/sqrt(2)
   const long double SQRT1_2 = 0.7071067811865475244008443621048490L;
 
+  ///Check whether the parameter is NaN or not
+  
+  ///This function checks whether the parameter is NaN or not.
+  ///Is should be equivalent with std::isnan(), but it is not
+  ///provided by all compilers.
+  inline bool isnan(double v)
+    {
+      return v!=v;
+    }
 
   /// @}
 



More information about the Lemon-commits mailing list