gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Change LEMON's isnan() to isNaN() for the sake of AIX/xlC Certain xlC versions implement isnan() as a #define.
0 2 0
default
2 files changed with 7 insertions and 7 deletions:
↑ Collapse diff ↑
Ignore white space 48 line context
... ...
@@ -576,53 +576,53 @@
576 576
      ///Reference to the linear expression
577 577
      Expr &expr() { return _expr; }
578 578
      ///Cont reference to the linear expression
579 579
      const Expr &expr() const { return _expr; }
580 580
      ///Reference to the lower bound.
581 581

	
582 582
      ///\return
583 583
      ///- \ref INF "INF": the constraint is lower unbounded.
584 584
      ///- \ref NaN "NaN": lower bound has not been set.
585 585
      ///- finite number: the lower bound
586 586
      Value &lowerBound() { return _lb; }
587 587
      ///The const version of \ref lowerBound()
588 588
      const Value &lowerBound() const { return _lb; }
589 589
      ///Reference to the upper bound.
590 590

	
591 591
      ///\return
592 592
      ///- \ref INF "INF": the constraint is upper unbounded.
593 593
      ///- \ref NaN "NaN": upper bound has not been set.
594 594
      ///- finite number: the upper bound
595 595
      Value &upperBound() { return _ub; }
596 596
      ///The const version of \ref upperBound()
597 597
      const Value &upperBound() const { return _ub; }
598 598
      ///Is the constraint lower bounded?
599 599
      bool lowerBounded() const {
600
        return _lb != -INF && !isnan(_lb);
600
        return _lb != -INF && !isNaN(_lb);
601 601
      }
602 602
      ///Is the constraint upper bounded?
603 603
      bool upperBounded() const {
604
        return _ub != INF && !isnan(_ub);
604
        return _ub != INF && !isNaN(_ub);
605 605
      }
606 606

	
607 607
    };
608 608

	
609 609
    ///Linear expression of rows
610 610

	
611 611
    ///This data structure represents a column of the matrix,
612 612
    ///thas is it strores a linear expression of the dual variables
613 613
    ///(\ref Row "Row"s).
614 614
    ///
615 615
    ///There are several ways to access and modify the contents of this
616 616
    ///container.
617 617
    ///\code
618 618
    ///e[v]=5;
619 619
    ///e[v]+=12;
620 620
    ///e.erase(v);
621 621
    ///\endcode
622 622
    ///or you can also iterate through its elements.
623 623
    ///\code
624 624
    ///double s=0;
625 625
    ///for(LpBase::DualExpr::ConstCoeffIt i(e);i!=INVALID;++i)
626 626
    ///  s+=*i;
627 627
    ///\endcode
628 628
    ///(This code computes the sum of all coefficients).
... ...
@@ -1645,85 +1645,85 @@
1645 1645

	
1646 1646
  ///\relates LpBase::Constr
1647 1647
  ///
1648 1648
  inline LpBase::Constr operator==(const LpBase::Expr &e,
1649 1649
                                   const LpBase::Value &f) {
1650 1650
    return LpBase::Constr(f, e, f);
1651 1651
  }
1652 1652

	
1653 1653
  ///Create constraint
1654 1654

	
1655 1655
  ///\relates LpBase::Constr
1656 1656
  ///
1657 1657
  inline LpBase::Constr operator==(const LpBase::Expr &e,
1658 1658
                                   const LpBase::Expr &f) {
1659 1659
    return LpBase::Constr(0, f - e, 0);
1660 1660
  }
1661 1661

	
1662 1662
  ///Create constraint
1663 1663

	
1664 1664
  ///\relates LpBase::Constr
1665 1665
  ///
1666 1666
  inline LpBase::Constr operator<=(const LpBase::Value &n,
1667 1667
                                   const LpBase::Constr &c) {
1668 1668
    LpBase::Constr tmp(c);
1669
    LEMON_ASSERT(isnan(tmp.lowerBound()), "Wrong LP constraint");
1669
    LEMON_ASSERT(isNaN(tmp.lowerBound()), "Wrong LP constraint");
1670 1670
    tmp.lowerBound()=n;
1671 1671
    return tmp;
1672 1672
  }
1673 1673
  ///Create constraint
1674 1674

	
1675 1675
  ///\relates LpBase::Constr
1676 1676
  ///
1677 1677
  inline LpBase::Constr operator<=(const LpBase::Constr &c,
1678 1678
                                   const LpBase::Value &n)
1679 1679
  {
1680 1680
    LpBase::Constr tmp(c);
1681
    LEMON_ASSERT(isnan(tmp.upperBound()), "Wrong LP constraint");
1681
    LEMON_ASSERT(isNaN(tmp.upperBound()), "Wrong LP constraint");
1682 1682
    tmp.upperBound()=n;
1683 1683
    return tmp;
1684 1684
  }
1685 1685

	
1686 1686
  ///Create constraint
1687 1687

	
1688 1688
  ///\relates LpBase::Constr
1689 1689
  ///
1690 1690
  inline LpBase::Constr operator>=(const LpBase::Value &n,
1691 1691
                                   const LpBase::Constr &c) {
1692 1692
    LpBase::Constr tmp(c);
1693
    LEMON_ASSERT(isnan(tmp.upperBound()), "Wrong LP constraint");
1693
    LEMON_ASSERT(isNaN(tmp.upperBound()), "Wrong LP constraint");
1694 1694
    tmp.upperBound()=n;
1695 1695
    return tmp;
1696 1696
  }
1697 1697
  ///Create constraint
1698 1698

	
1699 1699
  ///\relates LpBase::Constr
1700 1700
  ///
1701 1701
  inline LpBase::Constr operator>=(const LpBase::Constr &c,
1702 1702
                                   const LpBase::Value &n)
1703 1703
  {
1704 1704
    LpBase::Constr tmp(c);
1705
    LEMON_ASSERT(isnan(tmp.lowerBound()), "Wrong LP constraint");
1705
    LEMON_ASSERT(isNaN(tmp.lowerBound()), "Wrong LP constraint");
1706 1706
    tmp.lowerBound()=n;
1707 1707
    return tmp;
1708 1708
  }
1709 1709

	
1710 1710
  ///Addition
1711 1711

	
1712 1712
  ///\relates LpBase::DualExpr
1713 1713
  ///
1714 1714
  inline LpBase::DualExpr operator+(const LpBase::DualExpr &a,
1715 1715
                                    const LpBase::DualExpr &b) {
1716 1716
    LpBase::DualExpr tmp(a);
1717 1717
    tmp+=b;
1718 1718
    return tmp;
1719 1719
  }
1720 1720
  ///Substraction
1721 1721

	
1722 1722
  ///\relates LpBase::DualExpr
1723 1723
  ///
1724 1724
  inline LpBase::DualExpr operator-(const LpBase::DualExpr &a,
1725 1725
                                    const LpBase::DualExpr &b) {
1726 1726
    LpBase::DualExpr tmp(a);
1727 1727
    tmp-=b;
1728 1728
    return tmp;
1729 1729
  }
Ignore white space 6 line context
... ...
@@ -39,34 +39,34 @@
39 39
  /// log_2(e)
40 40
  const long double LOG2E   = 1.4426950408889634073599246810018921L;
41 41
  /// log_10(e)
42 42
  const long double LOG10E  = 0.4342944819032518276511289189166051L;
43 43
  /// ln(2)
44 44
  const long double LN2     = 0.6931471805599453094172321214581766L;
45 45
  /// ln(10)
46 46
  const long double LN10    = 2.3025850929940456840179914546843642L;
47 47
  /// pi
48 48
  const long double PI      = 3.1415926535897932384626433832795029L;
49 49
  /// pi/2
50 50
  const long double PI_2    = 1.5707963267948966192313216916397514L;
51 51
  /// pi/4
52 52
  const long double PI_4    = 0.7853981633974483096156608458198757L;
53 53
  /// sqrt(2)
54 54
  const long double SQRT2   = 1.4142135623730950488016887242096981L;
55 55
  /// 1/sqrt(2)
56 56
  const long double SQRT1_2 = 0.7071067811865475244008443621048490L;
57 57

	
58 58
  ///Check whether the parameter is NaN or not
59 59
  
60 60
  ///This function checks whether the parameter is NaN or not.
61 61
  ///Is should be equivalent with std::isnan(), but it is not
62 62
  ///provided by all compilers.
63
  inline bool isnan(double v)
63
  inline bool isNaN(double v)
64 64
    {
65 65
      return v!=v;
66 66
    }
67 67

	
68 68
  /// @}
69 69

	
70 70
} //namespace lemon
71 71

	
72 72
#endif //LEMON_TOLERANCE_H
0 comments (0 inline)