COIN-OR::LEMON - Graph Library

Ticket #199: 81627fa1b007.patch

File 81627fa1b007.patch, 2.5 KB (added by Alpar Juttner, 16 years ago)
  • lemon/lp_base.h

    # HG changeset patch
    # User Alpar Juttner <alpar@cs.elte.hu>
    # Date 1231948529 0
    # Node ID 81627fa1b0070a8175724f70868125203730fec9
    # Parent  04c0631fd33241997b26542eec78715709d11003
    Own support for isnan()
    
    diff --git a/lemon/lp_base.h b/lemon/lp_base.h
    a b  
    597597      const Value &upperBound() const { return _ub; }
    598598      ///Is the constraint lower bounded?
    599599      bool lowerBounded() const {
    600         return _lb != -INF && !std::isnan(_lb);
     600        return _lb != -INF && !isnan(_lb);
    601601      }
    602602      ///Is the constraint upper bounded?
    603603      bool upperBounded() const {
    604         return _ub != INF && !std::isnan(_ub);
     604        return _ub != INF && !isnan(_ub);
    605605      }
    606606
    607607    };
     
    16661666  inline LpBase::Constr operator<=(const LpBase::Value &n,
    16671667                                   const LpBase::Constr &c) {
    16681668    LpBase::Constr tmp(c);
    1669     LEMON_ASSERT(std::isnan(tmp.lowerBound()), "Wrong LP constraint");
     1669    LEMON_ASSERT(isnan(tmp.lowerBound()), "Wrong LP constraint");
    16701670    tmp.lowerBound()=n;
    16711671    return tmp;
    16721672  }
     
    16781678                                   const LpBase::Value &n)
    16791679  {
    16801680    LpBase::Constr tmp(c);
    1681     LEMON_ASSERT(std::isnan(tmp.upperBound()), "Wrong LP constraint");
     1681    LEMON_ASSERT(isnan(tmp.upperBound()), "Wrong LP constraint");
    16821682    tmp.upperBound()=n;
    16831683    return tmp;
    16841684  }
     
    16901690  inline LpBase::Constr operator>=(const LpBase::Value &n,
    16911691                                   const LpBase::Constr &c) {
    16921692    LpBase::Constr tmp(c);
    1693     LEMON_ASSERT(std::isnan(tmp.upperBound()), "Wrong LP constraint");
     1693    LEMON_ASSERT(isnan(tmp.upperBound()), "Wrong LP constraint");
    16941694    tmp.upperBound()=n;
    16951695    return tmp;
    16961696  }
     
    17021702                                   const LpBase::Value &n)
    17031703  {
    17041704    LpBase::Constr tmp(c);
    1705     LEMON_ASSERT(std::isnan(tmp.lowerBound()), "Wrong LP constraint");
     1705    LEMON_ASSERT(isnan(tmp.lowerBound()), "Wrong LP constraint");
    17061706    tmp.lowerBound()=n;
    17071707    return tmp;
    17081708  }
  • lemon/math.h

    diff --git a/lemon/math.h b/lemon/math.h
    a b  
    5555  /// 1/sqrt(2)
    5656  const long double SQRT1_2 = 0.7071067811865475244008443621048490L;
    5757
     58  ///Check whether the parameter is NaN or not
     59 
     60  ///This function checks whether the parameter is NaN or not.
     61  ///Is should be equivalent with std::isnan(), but it is not
     62  ///provided by all compilers.
     63  inline bool isnan(double v)
     64    {
     65      return v!=v;
     66    }
    5867
    5968  /// @}
    6069