FlopCpp trunk
Loading...
Searching...
No Matches
flopc::MP_constraint Class Reference

Semantic representation of a linear constraint. More...

#include <MP_constraint.hpp>

+ Inheritance diagram for flopc::MP_constraint:
+ Collaboration diagram for flopc::MP_constraint:

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_constraintoperator() (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_constraintsuch_that (const MP_boolean &b)
 
void insertVariables (std::set< MP_variable * > &v)
 
void operator= (const Constraint &v)
 
void display (std::string s="") const
 
- Public Member Functions inherited from flopc::RowMajor
int size () const
 
- Public Member Functions inherited from flopc::Named
std::string getName () const
 
void setName (const std::string &n)
 

Public Attributes

MP_modelM
 
int offset
 
MP_expression left
 
MP_expression right
 
Sense_enum sense
 

Additional Inherited Members

- Protected Member Functions inherited from flopc::RowMajor
 RowMajor (int s1, int s2, int s3, int s4, int s5)
 
int f (int i1=0, int i2=0, int i3=0, int i4=0, int i5=0) const
 
- Protected Attributes inherited from flopc::RowMajor
int size1
 
int size2
 
int size3
 
int size4
 
int size5
 
int size_
 

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.

Definition at line 194 of file MP_constraint.hpp.

Constructor & Destructor Documentation

◆ MP_constraint()

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.

◆ ~MP_constraint()

virtual flopc::MP_constraint::~MP_constraint ( )
inlinevirtual

Definition at line 221 of file MP_constraint.hpp.

Member Function Documentation

◆ operator()()

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.

◆ operator int()

flopc::MP_constraint::operator int ( )
inline

Definition at line 216 of file MP_constraint.hpp.

◆ price()

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

◆ coefficients()

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

◆ row_number()

int flopc::MP_constraint::row_number ( ) const

◆ such_that()

MP_constraint & flopc::MP_constraint::such_that ( const MP_boolean & b)
inline

Definition at line 229 of file MP_constraint.hpp.

◆ insertVariables()

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

◆ operator=()

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

◆ display()

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

Member Data Documentation

◆ M

MP_model* flopc::MP_constraint::M

Definition at line 240 of file MP_constraint.hpp.

◆ offset

int flopc::MP_constraint::offset

Definition at line 241 of file MP_constraint.hpp.

◆ left

MP_expression flopc::MP_constraint::left

Definition at line 242 of file MP_constraint.hpp.

◆ right

MP_expression flopc::MP_constraint::right

Definition at line 242 of file MP_constraint.hpp.

◆ sense

Sense_enum flopc::MP_constraint::sense

Definition at line 243 of file MP_constraint.hpp.


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