[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