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.
void flopc::forall (const Functor &f)
 Global function for performing a Functor without having a set to operate on.
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.
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.
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.
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.
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.
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.
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.
MP_boolean flopc::operator<= (const MP_index_exp &e1, const MP_index_exp &e2)
 boolean which returns true if all in domain evaluate to true.
MP_boolean flopc::operator<= (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants.
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.
MP_boolean flopc::operator< (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants.
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.
MP_boolean flopc::operator>= (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants.
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.
MP_boolean flopc::operator> (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants.
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.
MP_boolean flopc::operator== (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants.
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.
MP_boolean flopc::operator!= (const Constant &e1, const Constant &e2)
 constructs a boolean evaluator by comparing two constants.
Constant flopc::abs (const Constant &c)
 for computing the absolute value of a constant value.
Constant flopc::pos (const Constant &c)
 for returning non-negative value of the constant.
Constant flopc::ceil (const Constant &c)
 The ceiling integral value of the input constant.
Constant flopc::floor (const Constant &c)
 The floor integral value of the input constant.
Constant flopc::minimum (const Constant &a, const Constant &b)
 Returns the smaller of two constants.
Constant flopc::maximum (const Constant &a, const Constant &b)
 Returns the larger of two constants.
Constant flopc::operator+ (const Constant &a, const Constant &b)
 Returns the sum of two constants.
Constant flopc::operator- (const Constant &a, const Constant &b)
 Returns the difference of two constants.
Constant flopc::operator* (const Constant &a, const Constant &b)
 Returns the product of two constants.
Constant flopc::operator/ (const Constant &a, const Constant &b)
 Returns the quotient of two constants.
Constant flopc::maximum (const MP_domain &i, const Constant &e)
 Returns the maximum over the domain of the constant.
Constant flopc::minimum (const MP_domain &i, const Constant &e)
 Returns the sum of two constants.
Constant flopc::sum (const MP_domain &i, const Constant &e)
 Returns the sum of two constants.
Constant flopc::product (const MP_domain &i, const Constant &e)
 Returns the sum of two constants.
Constraint flopc::operator<= (const MP_expression &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator<= (const Constant &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator<= (const MP_expression &l, const Constant &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator<= (const VariableRef &l, const VariableRef &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator>= (const MP_expression &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator>= (const Constant &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator>= (const MP_expression &l, const Constant &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator>= (const VariableRef &l, const VariableRef &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator== (const MP_expression &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator== (const Constant &l, const MP_expression &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator== (const MP_expression &l, const Constant &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
Constraint flopc::operator== (const VariableRef &l, const VariableRef &r)
 Uses operator overloading to construct an ConstraintConstucts a Constraint using operator overloading.
MP_expression flopc::operator+ (const MP_expression &e1, const MP_expression &e2)
MP_expression flopc::operator+ (const MP_expression &e1, const Constant &e2)
MP_expression flopc::operator+ (const Constant &e1, const MP_expression &e2)
MP_expression flopc::operator- (const MP_expression &e1, const MP_expression &e2)
MP_expression flopc::operator- (const MP_expression &e1, const Constant &e2)
MP_expression flopc::operator- (const Constant &e1, const MP_expression &e2)
MP_expression flopc::operator* (const Constant &e1, const MP_expression &e2)
MP_expression flopc::operator* (const MP_expression &e1, const Constant &e2)
MP_expression flopc::operator/ (const MP_expression &e1, const Constant &e2)
MP_expression flopc::sum (const MP_domain &d, const MP_expression &e)

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.

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

Definition at line 95 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 106 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:
b boolean
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:
e1 first boolean
e2 second 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:
e1 first boolean
e2 second boolean
Returns:
A boolean which evaluates to true if either booleans are true.
Todo:
true? haven't used it.
MP_boolean flopc::operator<= ( const MP_index_exp &  e1,
const MP_index_exp &  e2 
)

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

This is used in the normal formation of an expression.

Parameters:
d MP_domain to evaluate with
b boolean expression to evaluate.
Returns:
A boolean which evaluates to true all domain evaluations of the boolean evaluate to true. constructs a boolean evaluator using operator overloading

This is used in the normal formation of an expression. This is useful when combining index expressions.

Parameters:
e1 is an index expression
e2 second 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:
e1 first constant expression
e2 second 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:
e1 is an index expression involving an MP_index
e2 second 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:
e1 first constant expression
e2 second 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:
e1 is an index expression involving an MP_index
e2 second 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:
e1 first constant expression
e2 second 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:
e1 is an index expression involving an MP_index
e2 second 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:
e1 first constant expression
e2 second 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:
e1 is an index expression involving an MP_index
e2 second 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:
e1 first constant expression
e2 second 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:
e1 is an index expression involving an MP_index
e2 second 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:
e1 first constant expression
e2 second 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:
c an 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:
c is 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:
c is 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:
a first constant
b second 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:
a first constant
b second 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:
a first constant
b second 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:
a first constant
b second 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:
a first constant
b second 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:
a first constant
b second 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:
i MP_domain used in evaluation
e constant
Constant flopc::minimum ( const MP_domain &  i,
const Constant &  e 
)

Returns the sum of two constants.

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

Returns the sum of two constants.

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

Returns the sum of two constants.

Todo:
description? Haven't used this.
Parameters:
i MP_domain used in evaluation
e constant
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 82 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 90 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 98 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 106 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 115 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 123 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 131 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 139 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 148 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 156 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 164 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 172 of file MP_constraint.hpp.

MP_expression flopc::operator+ ( const MP_expression &  e1,
const MP_expression &  e2 
)
MP_expression flopc::operator+ ( const MP_expression &  e1,
const Constant &  e2 
)
MP_expression flopc::operator+ ( const Constant &  e1,
const MP_expression &  e2 
)
MP_expression flopc::operator- ( const MP_expression &  e1,
const MP_expression &  e2 
)
MP_expression flopc::operator- ( const MP_expression &  e1,
const Constant &  e2 
)
MP_expression flopc::operator- ( const Constant &  e1,
const MP_expression &  e2 
)
MP_expression flopc::operator* ( const Constant &  e1,
const MP_expression &  e2 
)
MP_expression flopc::operator* ( const MP_expression &  e1,
const Constant &  e2 
)
MP_expression flopc::operator/ ( const MP_expression &  e1,
const Constant &  e2 
)
MP_expression flopc::sum ( const MP_domain &  d,
const MP_expression &  e 
)

Generated on 15 Mar 2015 for Coin-All by  doxygen 1.6.1