... |
... |
@@ -1575,112 +1575,112 @@
|
1575 |
1575 |
///
|
1576 |
1576 |
inline LpBase::Expr operator*(const LpBase::Expr &a, const LpBase::Value &b) {
|
1577 |
1577 |
LpBase::Expr tmp(a);
|
1578 |
1578 |
tmp*=b;
|
1579 |
1579 |
return tmp;
|
1580 |
1580 |
}
|
1581 |
1581 |
|
1582 |
1582 |
///Multiply with constant
|
1583 |
1583 |
|
1584 |
1584 |
///\relates LpBase::Expr
|
1585 |
1585 |
///
|
1586 |
1586 |
inline LpBase::Expr operator*(const LpBase::Value &a, const LpBase::Expr &b) {
|
1587 |
1587 |
LpBase::Expr tmp(b);
|
1588 |
1588 |
tmp*=a;
|
1589 |
1589 |
return tmp;
|
1590 |
1590 |
}
|
1591 |
1591 |
///Divide with constant
|
1592 |
1592 |
|
1593 |
1593 |
///\relates LpBase::Expr
|
1594 |
1594 |
///
|
1595 |
1595 |
inline LpBase::Expr operator/(const LpBase::Expr &a, const LpBase::Value &b) {
|
1596 |
1596 |
LpBase::Expr tmp(a);
|
1597 |
1597 |
tmp/=b;
|
1598 |
1598 |
return tmp;
|
1599 |
1599 |
}
|
1600 |
1600 |
|
1601 |
1601 |
///Create constraint
|
1602 |
1602 |
|
1603 |
1603 |
///\relates LpBase::Constr
|
1604 |
1604 |
///
|
1605 |
1605 |
inline LpBase::Constr operator<=(const LpBase::Expr &e,
|
1606 |
1606 |
const LpBase::Expr &f) {
|
1607 |
|
return LpBase::Constr(0, f - e, LpBase::INF);
|
|
1607 |
return LpBase::Constr(0, f - e, LpBase::NaN);
|
1608 |
1608 |
}
|
1609 |
1609 |
|
1610 |
1610 |
///Create constraint
|
1611 |
1611 |
|
1612 |
1612 |
///\relates LpBase::Constr
|
1613 |
1613 |
///
|
1614 |
1614 |
inline LpBase::Constr operator<=(const LpBase::Value &e,
|
1615 |
1615 |
const LpBase::Expr &f) {
|
1616 |
1616 |
return LpBase::Constr(e, f, LpBase::NaN);
|
1617 |
1617 |
}
|
1618 |
1618 |
|
1619 |
1619 |
///Create constraint
|
1620 |
1620 |
|
1621 |
1621 |
///\relates LpBase::Constr
|
1622 |
1622 |
///
|
1623 |
1623 |
inline LpBase::Constr operator<=(const LpBase::Expr &e,
|
1624 |
1624 |
const LpBase::Value &f) {
|
1625 |
|
return LpBase::Constr(- LpBase::INF, e, f);
|
|
1625 |
return LpBase::Constr(LpBase::NaN, e, f);
|
1626 |
1626 |
}
|
1627 |
1627 |
|
1628 |
1628 |
///Create constraint
|
1629 |
1629 |
|
1630 |
1630 |
///\relates LpBase::Constr
|
1631 |
1631 |
///
|
1632 |
1632 |
inline LpBase::Constr operator>=(const LpBase::Expr &e,
|
1633 |
1633 |
const LpBase::Expr &f) {
|
1634 |
|
return LpBase::Constr(0, e - f, LpBase::INF);
|
|
1634 |
return LpBase::Constr(0, e - f, LpBase::NaN);
|
1635 |
1635 |
}
|
1636 |
1636 |
|
1637 |
1637 |
|
1638 |
1638 |
///Create constraint
|
1639 |
1639 |
|
1640 |
1640 |
///\relates LpBase::Constr
|
1641 |
1641 |
///
|
1642 |
1642 |
inline LpBase::Constr operator>=(const LpBase::Value &e,
|
1643 |
1643 |
const LpBase::Expr &f) {
|
1644 |
1644 |
return LpBase::Constr(LpBase::NaN, f, e);
|
1645 |
1645 |
}
|
1646 |
1646 |
|
1647 |
1647 |
|
1648 |
1648 |
///Create constraint
|
1649 |
1649 |
|
1650 |
1650 |
///\relates LpBase::Constr
|
1651 |
1651 |
///
|
1652 |
1652 |
inline LpBase::Constr operator>=(const LpBase::Expr &e,
|
1653 |
1653 |
const LpBase::Value &f) {
|
1654 |
|
return LpBase::Constr(f, e, LpBase::INF);
|
|
1654 |
return LpBase::Constr(f, e, LpBase::NaN);
|
1655 |
1655 |
}
|
1656 |
1656 |
|
1657 |
1657 |
///Create constraint
|
1658 |
1658 |
|
1659 |
1659 |
///\relates LpBase::Constr
|
1660 |
1660 |
///
|
1661 |
1661 |
inline LpBase::Constr operator==(const LpBase::Expr &e,
|
1662 |
1662 |
const LpBase::Value &f) {
|
1663 |
1663 |
return LpBase::Constr(f, e, f);
|
1664 |
1664 |
}
|
1665 |
1665 |
|
1666 |
1666 |
///Create constraint
|
1667 |
1667 |
|
1668 |
1668 |
///\relates LpBase::Constr
|
1669 |
1669 |
///
|
1670 |
1670 |
inline LpBase::Constr operator==(const LpBase::Expr &e,
|
1671 |
1671 |
const LpBase::Expr &f) {
|
1672 |
1672 |
return LpBase::Constr(0, f - e, 0);
|
1673 |
1673 |
}
|
1674 |
1674 |
|
1675 |
1675 |
///Create constraint
|
1676 |
1676 |
|
1677 |
1677 |
///\relates LpBase::Constr
|
1678 |
1678 |
///
|
1679 |
1679 |
inline LpBase::Constr operator<=(const LpBase::Value &n,
|
1680 |
1680 |
const LpBase::Constr &c) {
|
1681 |
1681 |
LpBase::Constr tmp(c);
|
1682 |
1682 |
LEMON_ASSERT(isNaN(tmp.lowerBound()), "Wrong LP constraint");
|
1683 |
1683 |
tmp.lowerBound()=n;
|
1684 |
1684 |
return tmp;
|
1685 |
1685 |
}
|
1686 |
1686 |
///Create constraint
|