- Main Page
- Modules
- Classes
- Namespaces
- Files
- Related Pages

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
List of all members | Public Member Functions | Related Functions
LpBase::Constr Class Reference

## Detailed Description

This data stucture represents a linear constraint in the LP. Basically it is a linear expression with a lower or an upper bound (or both). These parts of the constraint can be obtained by the member functions expr(), lowerBound() and upperBound(), respectively. There are two ways to construct a constraint.

- You can set the linear expression and the bounds directly by the functions above.
- The operators `<=`, `==` and `>=` are defined between expressions, or even between constraints whenever it makes sense. Therefore if `e` and `f` are linear expressions and `s` and `t` are numbers, then the followings are valid expressions and thus they can be used directly e.g. in addRow() whenever it makes sense.
  * e<=s
  * e<=f
  * e==f
  * s<=e<=t
  * e>=t
  *
  Warning
    The validity of a constraint is checked only at run time, so e.g. addRow(`x[1]<=x[2]<=5`) will compile, but will fail an assertion.

`#include <lemon/lp_base.h>`

## Public Member Functions
| Constr ()
| Constr (Value lb, const Expr &e, Value ub)
void | clear ()
Expr & | expr ()
| Reference to the linear expression.
const Expr & | expr () const
| Cont reference to the linear expression.
Value & | lowerBound ()
| Reference to the lower bound. More...
const Value & | lowerBound () const
| The const version of lowerBound()
Value & | upperBound ()
| Reference to the upper bound. More...
const Value & | upperBound () const
| The const version of upperBound()
bool | lowerBounded () const
| Is the constraint lower bounded?
bool | upperBounded () const
| Is the constraint upper bounded?

## Related Functions
(Note that these are not member functions.)
LpBase::Constr | operator<= (const LpBase::Expr &e, const LpBase::Expr &f)
| Create constraint.
LpBase::Constr | operator<= (const LpBase::Value &e, const LpBase::Expr &f)
| Create constraint.
LpBase::Constr | operator<= (const LpBase::Expr &e, const LpBase::Value &f)
| Create constraint.
LpBase::Constr | operator>= (const LpBase::Expr &e, const LpBase::Expr &f)
| Create constraint.
LpBase::Constr | operator>= (const LpBase::Value &e, const LpBase::Expr &f)
| Create constraint.
LpBase::Constr | operator>= (const LpBase::Expr &e, const LpBase::Value &f)
| Create constraint.
LpBase::Constr | operator== (const LpBase::Expr &e, const LpBase::Value &f)
| Create constraint.
LpBase::Constr | operator== (const LpBase::Expr &e, const LpBase::Expr &f)
| Create constraint.
LpBase::Constr | operator<= (const LpBase::Value &n, const LpBase::Constr &c)
| Create constraint.
LpBase::Constr | operator<= (const LpBase::Constr &c, const LpBase::Value &n)
| Create constraint.
LpBase::Constr | operator>= (const LpBase::Value &n, const LpBase::Constr &c)
| Create constraint.
LpBase::Constr | operator>= (const LpBase::Constr &c, const LpBase::Value &n)
| Create constraint.

## Member Function Documentation

Value& lowerBound | ( |  | ) |
| inline

Returns
  - INF: the constraint is lower unbounded.
  - NaN: lower bound has not been set.
  - finite number: the lower bound

Value& upperBound | ( |  | ) |
| inline

Returns
  - INF: the constraint is upper unbounded.
  - NaN: upper bound has not been set.
  - finite number: the upper bound