# flopc::MP_constraint Class Reference
[Public interface]

Semantic representation of a linear constraint. More...

`#include <MP_constraint.hpp>`

Inheritance diagram for flopc::MP_constraint:
[legend]
Collaboration diagram for flopc::MP_constraint:
[legend]

List of all members.

## Public Member Functions
| MP_constraint (const MP_set_base &s1=MP_set::getEmpty(), const MP_set_base &s2=MP_set::getEmpty(), const MP_set_base &s3=MP_set::getEmpty(), const MP_set_base &s4=MP_set::getEmpty(), const MP_set_base &s5=MP_set::getEmpty())
| construct the MP_constraint with appropriate sets for indexing.
MP_constraint & | operator() (const MP_index_exp &i1=MP_index_exp::getEmpty(), const MP_index_exp &i2=MP_index_exp::getEmpty(), const MP_index_exp &i3=MP_index_exp::getEmpty(), const MP_index_exp &i4=MP_index_exp::getEmpty(), const MP_index_exp &i5=MP_index_exp::getEmpty())
| operator int ()
virtual | ~MP_constraint ()
double | price (int i1=0, int i2=0, int i3=0, int i4=0, int i5=0) const
void | coefficients (GenerateFunctor &f)
int | row_number () const
MP_constraint & | such_that (const MP_boolean &b)
void | insertVariables (std::set< MP_variable * > &v)
void | operator= (const Constraint &v)
void | display (std::string s="") const
## Public Attributes
MP_model * | M
int | offset
MP_expression | left
MP_expression | right
Sense_enum | sense
## Private Attributes
MP_boolean | B
const MP_set_base & | S1
const MP_set_base & | S2
const MP_set_base & | S3
const MP_set_base & | S4
const MP_set_base & | S5
MP_index_exp | I1
MP_index_exp | I2
MP_index_exp | I3
MP_index_exp | I4
MP_index_exp | I5

## Detailed Description

Semantic representation of a linear constraint.

This is one of the main public interface classes. It is always constructed through operator overloading between expressions, constants, and variables. There are many 'friend' overloaded operators to do the constuction. The basic idea is to make the constraint look like a paper-model constraint in C++ code. Once constructed, it should be added to the model.

The snippet below is an overly simplistic example, but is ok for illustration. `
MP_model aModel; // your model
MP_set I; // the set the constraint is defined over.
MP_variable x(I); // your variable
...
MP_constraint cons(I); // construct the right number of constraints.
cons = x <= 3;
// Assign in the semantic rep to it. aModel.add(cons); // add it to the model
`
There is quite a bit of C++ machinery going on there.

- MP_expression(const VariableRef& v); converts the VariableRef x into an MP_expression.
- MP_constraint cons(I); construct the right dimensioned sized bundle of constraints.
- friend Constraint operator<=(const MP_expression& l, const Constant& r); converts the x <= 3 into an Constraint.
  Todo:
    more work on MP_constraint.

Definition at line 194 of file MP_constraint.hpp.

## Constructor & Destructor Documentation

flopc::MP_constraint::MP_constraint | ( | const MP_set_base & | s1 = `MP_set::getEmpty()`,
|  | const MP_set_base & | s2 = `MP_set::getEmpty()`,
|  | const MP_set_base & | s3 = `MP_set::getEmpty()`,
|  | const MP_set_base & | s4 = `MP_set::getEmpty()`,
|  | const MP_set_base & | s5 = `MP_set::getEmpty()` |
| ) |  |  |

construct the MP_constraint with appropriate sets for indexing.

virtual flopc::MP_constraint::~MP_constraint | ( |  | ) | `[inline, virtual]`

Definition at line 221 of file MP_constraint.hpp.

## Member Function Documentation

MP_constraint& flopc::MP_constraint::operator() | ( | const MP_index_exp & | i1 = `MP_index_exp::getEmpty()`,
|  | const MP_index_exp & | i2 = `MP_index_exp::getEmpty()`,
|  | const MP_index_exp & | i3 = `MP_index_exp::getEmpty()`,
|  | const MP_index_exp & | i4 = `MP_index_exp::getEmpty()`,
|  | const MP_index_exp & | i5 = `MP_index_exp::getEmpty()` |
| ) |  |  | `[inline]`

Definition at line 205 of file MP_constraint.hpp.

flopc::MP_constraint::operator int | ( |  | ) | `[inline]`

Definition at line 216 of file MP_constraint.hpp.

double flopc::MP_constraint::price | ( | int | i1 = `0`,
|  | int | i2 = `0`,
|  | int | i3 = `0`,
|  | int | i4 = `0`,
|  | int | i5 = `0` |
| ) |  |  | const

void flopc::MP_constraint::coefficients | ( | GenerateFunctor & | f | ) |

int flopc::MP_constraint::row_number | ( |  | ) | const

MP_constraint& flopc::MP_constraint::such_that | ( | const MP_boolean & | b | ) | `[inline]`

Definition at line 229 of file MP_constraint.hpp.

void flopc::MP_constraint::insertVariables | ( | std::set< MP_variable * > & | v | ) |

void flopc::MP_constraint::operator= | ( | const Constraint & | v | ) |

void flopc::MP_constraint::display | ( | std::string | s = `""` | ) | const

## Member Data Documentation

MP_model* flopc::MP_constraint::M

Definition at line 240 of file MP_constraint.hpp.

int flopc::MP_constraint::offset

Definition at line 241 of file MP_constraint.hpp.

MP_expression flopc::MP_constraint::left

Definition at line 242 of file MP_constraint.hpp.

MP_expression flopc::MP_constraint::right

Definition at line 242 of file MP_constraint.hpp.

Sense_enum flopc::MP_constraint::sense

Definition at line 243 of file MP_constraint.hpp.

MP_boolean flopc::MP_constraint::B`[private]`

Definition at line 245 of file MP_constraint.hpp.

const MP_set_base& flopc::MP_constraint::S1`[private]`

Definition at line 246 of file MP_constraint.hpp.

const MP_set_base & flopc::MP_constraint::S2`[private]`

Definition at line 246 of file MP_constraint.hpp.

const MP_set_base & flopc::MP_constraint::S3`[private]`

Definition at line 246 of file MP_constraint.hpp.

const MP_set_base & flopc::MP_constraint::S4`[private]`

Definition at line 246 of file MP_constraint.hpp.

const MP_set_base & flopc::MP_constraint::S5`[private]`

Definition at line 246 of file MP_constraint.hpp.

MP_index_exp flopc::MP_constraint::I1`[private]`

Definition at line 247 of file MP_constraint.hpp.

MP_index_exp flopc::MP_constraint::I2`[private]`

Definition at line 247 of file MP_constraint.hpp.

MP_index_exp flopc::MP_constraint::I3`[private]`

Definition at line 247 of file MP_constraint.hpp.

MP_index_exp flopc::MP_constraint::I4`[private]`

Definition at line 247 of file MP_constraint.hpp.

MP_index_exp flopc::MP_constraint::I5`[private]`

Definition at line 247 of file MP_constraint.hpp.

The documentation for this class was generated from the following file:

- /home/coin/svn-release/Smi-0.93.1/FlopCpp/src/MP_constraint.hpp