Classes | Functions
Public interface

Classes in this group are for normal modeling purposes. More...

Classes

class  flopc::MP_boolean
 Reference counted class for all "boolean" types of data. More...
 
class  flopc::MP_constraint
 Semantic representation of a linear constraint. More...
 
class  flopc::MP_data
 Input data set. More...
 
class  flopc::MP_domain
 Range over which some other constuct is defined. More...
 
class  flopc::MP_domain_set
 Range over which some other constuct is defined. More...
 
class  flopc::MP_domain_subset< nbr >
 Range over which some other constuct is defined. More...
 
class  flopc::MP_expression
 Symbolic representation of a linear expression. More...
 
class  flopc::MP_index
 Representation of an index. More...
 
class  flopc::MP_index_exp
 Representation of an expression involving an index. More...
 
class  flopc::Messenger
 Inteface for hooking up to internal flopc++ message handling. More...
 
class  flopc::MP_model
 This is the anchor point for all constructs in a FlopC++ model. More...
 
class  flopc::MP_set
 Representation of a set for indexing into some other construct. More...
 
class  flopc::MP_variable
 Symantic representation of a variable. More...
 
class  flopc::MP_binary_variable
 Specialized subclass of MP_variable where the variable is pre-specified to be binary. More...
 

Functions

void flopc::forall (const MP_domain &d, const Functor &f)
 Global function for performing a Functor on each member of a MP_domain. More...
 
void flopc::forall (const Functor &f)
 Global function for performing a Functor without having a set to operate on. More...
 
void flopc::operator<<= (const MP_domain &s, const MP_domain &d)
 Global function which copies members of MP_domain d into another (possibly non-empty) MP_domain. More...
 
void flopc::minimize (const MP_expression &obj)
 This is one of the main entry points for executionThis calls the OsiSolverInterface to execute the solver with the objective of MINIMIZING the argment MP_expression. More...
 
void flopc::minimize_max (MP_set &d, const MP_expression &obj)
 This is one of the main entry points for executionThis calls the OsiSolverInterface to execute the solver with the objective of MINIMIZING THE MAXIMUM of the MP_expression evaluation of the MP_set. More...
 
void flopc::maximize (const MP_expression &obj)
 This is one of the main entry points for executionThis calls the OsiSolverInterface to execute the solver with the objective of MAXIMIZING of the MP_expression. More...
 
MP_boolean flopc::operator! (const MP_boolean &b)
 For computing the logical negation of a booleanThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator&& (const MP_boolean &e1, const MP_boolean &e2)
 For computing the logical AND of two booleansThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator|| (const MP_boolean &e1, const MP_boolean &e2)
 For computing the logical OR of two booleansThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::alltrue (const MP_domain &d, const MP_boolean &b)
 boolean which returns true if all in domain evaluate to true. More...
 
MP_boolean flopc::operator<= (const MP_index_exp &e1, const MP_index_exp &e2)
 constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator<= (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants. More...
 
MP_boolean flopc::operator< (const MP_index_exp &e1, const MP_index_exp &e2)
 constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator< (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants. More...
 
MP_boolean flopc::operator>= (const MP_index_exp &e1, const MP_index_exp &e2)
 constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator>= (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants. More...
 
MP_boolean flopc::operator> (const MP_index_exp &e1, const MP_index_exp &e2)
 constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator> (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants. More...
 
MP_boolean flopc::operator== (const MP_index_exp &e1, const MP_index_exp &e2)
 constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator== (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants. More...
 
MP_boolean flopc::operator!= (const MP_index_exp &e1, const MP_index_exp &e2)
 constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression. More...
 
MP_boolean flopc::operator!= (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants. More...
 
Constant flopc::abs (const Constant &c)
 for computing the absolute value of a constant value. More...
 
Constant flopc::pos (const Constant &c)
 for returning non-negative value of the constant. More...
 
Constant flopc::ceil (const Constant &c)
 The ceiling integral value of the input constant. More...
 
Constant flopc::floor (const Constant &c)
 The floor integral value of the input constant. More...
 
Constant flopc::minimum (const Constant &a, const Constant &b)
 Returns the smaller of two constants. More...
 
Constant flopc::maximum (const Constant &a, const Constant &b)
 Returns the larger of two constants. More...
 
Constant flopc::operator+ (const Constant &a, const Constant &b)
 Returns the sum of two constants. More...
 
Constant flopc::operator- (const Constant &a, const Constant &b)
 Returns the difference of two constants. More...
 
Constant flopc::operator* (const Constant &a, const Constant &b)
 Returns the product of two constants. More...
 
Constant flopc::operator/ (const Constant &a, const Constant &b)
 Returns the quotient of two constants. More...
 
Constant flopc::maximum (const MP_domain &i, const Constant &e)
 Returns the maximum over the domain of the constant. More...
 
Constant flopc::minimum (const MP_domain &i, const Constant &e)
 Returns the sum of two constants. More...
 
Constant flopc::sum (const MP_domain &i, const Constant &e)
 Returns the sum of two constants. More...
 
Constant flopc::product (const MP_domain &i, const Constant &e)
 Returns the sum of two constants. More...
 
Constraint flopc::operator<= (const MP_expression &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator<= (const Constant &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator<= (const MP_expression &l, const Constant &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator<= (const VariableRef &l, const VariableRef &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator>= (const MP_expression &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator>= (const Constant &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator>= (const MP_expression &l, const Constant &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator>= (const VariableRef &l, const VariableRef &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator== (const MP_expression &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator== (const Constant &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator== (const MP_expression &l, const Constant &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 
Constraint flopc::operator== (const VariableRef &l, const VariableRef &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading. More...
 

Detailed Description

Classes in this group are for normal modeling purposes.

They are intended for consumption outside the library.

Function Documentation

void flopc::forall ( const MP_domain &  d,
const Functor &  f 
)
inline

Global function for performing a Functor on each member of a MP_domain.

Definition at line 55 of file flopc.hpp.

void flopc::forall ( const Functor &  f)
inline

Global function for performing a Functor without having a set to operate on.

Todo:
This turns into a no-op?

Definition at line 64 of file flopc.hpp.

void flopc::operator<<= ( const MP_domain &  s,
const MP_domain &  d 
)
inline

Global function which copies members of MP_domain d into another (possibly non-empty) MP_domain.

Definition at line 72 of file flopc.hpp.

void flopc::minimize ( const MP_expression &  obj)
inline

This is one of the main entry points for executionThis calls the OsiSolverInterface to execute the solver with the objective of MINIMIZING the argment MP_expression.

  • Assumes that the OsiSolverInterface is already set
  • Assumes a model is already loaded (and is the default model)

Definition at line 83 of file flopc.hpp.

void flopc::minimize_max ( MP_set &  d,
const MP_expression &  obj 
)
inline

This is one of the main entry points for executionThis calls the OsiSolverInterface to execute the solver with the objective of MINIMIZING THE MAXIMUM of the MP_expression evaluation of the MP_set.

Todo:
true?
  • Assumes that the OsiSolverInterface is already set
  • Assumes a model is already loaded (and is the default model)

Definition at line 96 of file flopc.hpp.

void flopc::maximize ( const MP_expression &  obj)
inline

This is one of the main entry points for executionThis calls the OsiSolverInterface to execute the solver with the objective of MAXIMIZING of the MP_expression.

  • Assumes that the OsiSolverInterface is already set
  • Assumes a model is already loaded (and is the default model)

Definition at line 107 of file flopc.hpp.

MP_boolean flopc::operator! ( const MP_boolean &  b)

For computing the logical negation of a booleanThis is used in the normal formation of an expression.

Parameters
bboolean
Returns
A boolean which evaluates to the negation of the input expression.
Todo:
true? haven't used it.
MP_boolean flopc::operator&& ( const MP_boolean &  e1,
const MP_boolean &  e2 
)

For computing the logical AND of two booleansThis is used in the normal formation of an expression.

Parameters
e1first boolean
e2second boolean
Returns
A boolean which evaluates to true of both booleans are true.
Todo:
true? haven't used it.
MP_boolean flopc::operator|| ( const MP_boolean &  e1,
const MP_boolean &  e2 
)

For computing the logical OR of two booleansThis is used in the normal formation of an expression.

Parameters
e1first boolean
e2second boolean
Returns
A boolean which evaluates to true if either booleans are true.
Todo:
true? haven't used it.
MP_boolean flopc::alltrue ( const MP_domain &  d,
const MP_boolean &  b 
)

boolean which returns true if all in domain evaluate to true.

This is used in the normal formation of an expression.

Parameters
dMP_domain to evaluate with
bboolean expression to evaluate.
Returns
A boolean which evaluates to true all domain evaluations of the boolean evaluate to true.
Todo:
true? haven't used it.
MP_boolean flopc::operator<= ( const MP_index_exp &  e1,
const MP_index_exp &  e2 
)

constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression.

This is useful when combining index expressions.

Parameters
e1is an index expression involving an MP_index
e2second index expression
  • used in forming sets of tuples of index values, or subsets.
Todo:
improve this a bit?

The brief code below is a bit contrived, but the right hand side illustrate the utility of combining an index expression. MP_index i;
MP_index j;
MP_boolean &b = (i+5)<=(j);

MP_boolean flopc::operator<= ( const Constant &  e1,
const Constant &  e2 
)

constructs a boolean evaluator by comparing two constants.

This is used in the normal formation of an expression. This utility of this is when comparing constants

Parameters
e1first constant expression
e2second constant expression
MP_boolean flopc::operator< ( const MP_index_exp &  e1,
const MP_index_exp &  e2 
)

constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression.

This is useful when combining index expressions.

Parameters
e1is an index expression involving an MP_index
e2second index expression
  • used in forming sets of tuples of index values, or subsets.
Todo:
improve this a bit?
MP_boolean flopc::operator< ( const Constant &  e1,
const Constant &  e2 
)

constructs a boolean evaluator by comparing two constants.

This is used in the normal formation of an expression. This utility of this is when comparing constants

Parameters
e1first constant expression
e2second constant expression
MP_boolean flopc::operator>= ( const MP_index_exp &  e1,
const MP_index_exp &  e2 
)

constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression.

This is useful when combining index expressions.

Parameters
e1is an index expression involving an MP_index
e2second index expression
  • used in forming sets of tuples of index values, or subsets.
Todo:
improve this a bit?
MP_boolean flopc::operator>= ( const Constant &  e1,
const Constant &  e2 
)

constructs a boolean evaluator by comparing two constants.

This is used in the normal formation of an expression. This utility of this is when comparing constants

Parameters
e1first constant expression
e2second constant expression
MP_boolean flopc::operator> ( const MP_index_exp &  e1,
const MP_index_exp &  e2 
)

constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression.

This is useful when combining index expressions.

Parameters
e1is an index expression involving an MP_index
e2second index expression
  • used in forming sets of tuples of index values, or subsets.
Todo:
improve this a bit?
MP_boolean flopc::operator> ( const Constant &  e1,
const Constant &  e2 
)

constructs a boolean evaluator by comparing two constants.

This is used in the normal formation of an expression. This utility of this is when comparing constants

Parameters
e1first constant expression
e2second constant expression
MP_boolean flopc::operator== ( const MP_index_exp &  e1,
const MP_index_exp &  e2 
)

constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression.

This is useful when combining index expressions.

Parameters
e1is an index expression involving an MP_index
e2second index expression
  • used in forming sets of tuples of index values, or subsets.
Todo:
improve this a bit?
MP_boolean flopc::operator== ( const Constant &  e1,
const Constant &  e2 
)

constructs a boolean evaluator by comparing two constants.

This is used in the normal formation of an expression. This utility of this is when comparing constants

Parameters
e1first constant expression
e2second constant expression
MP_boolean flopc::operator!= ( const MP_index_exp &  e1,
const MP_index_exp &  e2 
)

constructs a boolean evaluator using operator overloadingThis is used in the normal formation of an expression.

This is useful when combining index expressions.

Parameters
e1is an index expression involving an MP_index
e2second index expression
  • used in forming sets of tuples of index values, or subsets.
Todo:
improve this a bit?
MP_boolean flopc::operator!= ( const Constant &  e1,
const Constant &  e2 
)

constructs a boolean evaluator by comparing two constants.

This is used in the normal formation of an expression. This utility of this is when comparing constants

Parameters
e1first constant expression
e2second constant expression
Constant flopc::abs ( const Constant &  c)

for computing the absolute value of a constant value.

This is used in the normal formation of an expression such as abs(-5)

  • input is a constant. It cannot be a variable expression.
  • Returns a Constant evaluating to the absolute value of the parameter
Constant flopc::pos ( const Constant &  c)

for returning non-negative value of the constant.

This is used in the formation of an expression. It is used to return a non-negative value..

Parameters
can imput constant
Returns
the absolute value of the constant.
  • if the Constant is positive, it returns a positive number.
  • if the Constant is negative or zero, it returns 0.0
Constant flopc::ceil ( const Constant &  c)

The ceiling integral value of the input constant.

This is used in the formation of an expression. It is used to "round up" a numeric constant which is potentially non-integer.

Parameters
cis a constant
Returns
the ceiling or "rounded up" of the parameter
  • ceil(3.2) evaluates to 4.0
Constant flopc::floor ( const Constant &  c)

The floor integral value of the input constant.

This is used in the formation of an expression. It is used to "truncate" a numeric constant which is potentially non-integer.

Parameters
cis a constant
Returns
the floor or "truncated" value of the parameter
  • floor(3.7) evaluates to 3.0
Constant flopc::minimum ( const Constant &  a,
const Constant &  b 
)

Returns the smaller of two constants.

This is used in the formation of an expression.

Parameters
afirst constant
bsecond constant
Returns
the lesser of the two values.
  • minimum(3.6,3.7) evaluates to 3.6
Constant flopc::maximum ( const Constant &  a,
const Constant &  b 
)

Returns the larger of two constants.

This is used in the formation of an expression.

Parameters
afirst constant
bsecond constant
Returns
the greater of the two numbers
  • maximum(3.6,3.7) evaluates to 3.7
Constant flopc::operator+ ( const Constant &  a,
const Constant &  b 
)

Returns the sum of two constants.

This is used in the formation of an expression.

Parameters
afirst constant
bsecond constant
Returns
the sum of the constants.
Constant flopc::operator- ( const Constant &  a,
const Constant &  b 
)

Returns the difference of two constants.

This is used in the formation of an expression.

Parameters
afirst constant
bsecond constant
Returns
the difference between the constants.
Constant flopc::operator* ( const Constant &  a,
const Constant &  b 
)

Returns the product of two constants.

This is used in the formation of an expression.

Parameters
afirst constant
bsecond constant
Returns
the result of multiplying the constants.
Constant flopc::operator/ ( const Constant &  a,
const Constant &  b 
)

Returns the quotient of two constants.

This is used in the formation of an expression.

Parameters
afirst constant
bsecond constant
Returns
the result of dividing the first parameter by the second.
Constant flopc::maximum ( const MP_domain &  i,
const Constant &  e 
)

Returns the maximum over the domain of the constant.

Todo:
description? Haven't used this.
Parameters
iMP_domain used in evaluation
econstant
Constant flopc::minimum ( const MP_domain &  i,
const Constant &  e 
)

Returns the sum of two constants.

Todo:
description? Haven't used this.
Parameters
iMP_domain used in evaluation
esecond constant
Constant flopc::sum ( const MP_domain &  i,
const Constant &  e 
)

Returns the sum of two constants.

Todo:
description? Haven't used this.
Parameters
iMP_domain used in evaluation
econstant
Constant flopc::product ( const MP_domain &  i,
const Constant &  e 
)

Returns the sum of two constants.

Todo:
description? Haven't used this.
Parameters
iMP_domain used in evaluation
econstant
Constraint flopc::operator<= ( const MP_expression &  l,
const MP_expression &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 69 of file MP_constraint.hpp.

Constraint flopc::operator<= ( const Constant &  l,
const MP_expression &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 77 of file MP_constraint.hpp.

Constraint flopc::operator<= ( const MP_expression &  l,
const Constant &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 85 of file MP_constraint.hpp.

Constraint flopc::operator<= ( const VariableRef &  l,
const VariableRef &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 93 of file MP_constraint.hpp.

Constraint flopc::operator>= ( const MP_expression &  l,
const MP_expression &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 102 of file MP_constraint.hpp.

Constraint flopc::operator>= ( const Constant &  l,
const MP_expression &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 110 of file MP_constraint.hpp.

Constraint flopc::operator>= ( const MP_expression &  l,
const Constant &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 118 of file MP_constraint.hpp.

Constraint flopc::operator>= ( const VariableRef &  l,
const VariableRef &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 126 of file MP_constraint.hpp.

Constraint flopc::operator== ( const MP_expression &  l,
const MP_expression &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 135 of file MP_constraint.hpp.

Constraint flopc::operator== ( const Constant &  l,
const MP_expression &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 143 of file MP_constraint.hpp.

Constraint flopc::operator== ( const MP_expression &  l,
const Constant &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 151 of file MP_constraint.hpp.

Constraint flopc::operator== ( const VariableRef &  l,
const VariableRef &  r 
)
inline

Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.

See Also
MP_constraint

Definition at line 159 of file MP_constraint.hpp.