#include <exprSum.hpp>
Inheritance diagram for exprSum:


Public Member Functions | |
| exprSum (expression **=NULL, int=0) | |
| Constructors, destructor. | |
| exprSum (expression *, expression *) | |
| Constructor with two elements. | |
| virtual | ~exprSum () |
| Empty destructor. | |
| virtual expression * | clone (Domain *d=NULL) const |
| Cloning method. | |
| std::string | printOp () const |
| Print operator. | |
| virtual CouNumber | operator() () |
| Function for the evaluation of the expression. | |
| virtual expression * | differentiate (int index) |
| Differentiation. | |
| virtual expression * | simplify () |
| Simplification. | |
| virtual int | Linearity () |
| Get a measure of "how linear" the expression is:. | |
| virtual void | getBounds (expression *&, expression *&) |
| Get lower and upper bound of an expression (if any). | |
| virtual void | getBounds (CouNumber &, CouNumber &) |
| Get lower and upper bound of an expression (if any). | |
| virtual exprAux * | standardize (CouenneProblem *p, bool addAux=true) |
| Reduce expression in standard form, creating additional aux variables (and constraints). | |
| virtual void | generateCuts (expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY) |
| Special version for linear constraints. | |
| virtual enum expr_type | code () |
| Code for comparison. | |
| virtual bool | impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *) |
| Implied bound. | |
| exprAux * | createQuadratic (CouenneProblem *) |
| Checks for quadratic terms in the expression and returns an exprQuad if there are enough to create something that can be convexified. | |
Protected Member Functions | |
| int | impliedBoundSum (CouNumber wl, CouNumber wu, std::vector< CouNumber > &xl, std::vector< CouNumber > &xu, std::vector< std::pair< int, CouNumber > > &nl, std::vector< std::pair< int, CouNumber > > &nu) |
| inferring bounds on factors of a product | |
Definition at line 21 of file exprSum.hpp.
| exprSum::exprSum | ( | expression ** | = NULL, |
|
| int | = 0 | |||
| ) |
| exprSum::exprSum | ( | expression * | , | |
| expression * | ||||
| ) |
Constructor with two elements.
| virtual exprSum::~exprSum | ( | ) | [inline, virtual] |
| virtual expression* exprSum::clone | ( | Domain * | d = NULL |
) | const [inline, virtual] |
Cloning method.
Reimplemented from expression.
Reimplemented in exprGroup, and exprQuad.
Definition at line 35 of file exprSum.hpp.
References exprOp::clonearglist(), exprSum(), and exprOp::nargs_.
| std::string exprSum::printOp | ( | ) | const [inline, virtual] |
| CouNumber exprSum::operator() | ( | ) | [inline, virtual] |
Function for the evaluation of the expression.
Implements expression.
Reimplemented in exprGroup, and exprQuad.
Definition at line 117 of file exprSum.hpp.
References exprOp::arglist_, and exprOp::nargs_.
Referenced by exprGroup::operator()().
| virtual expression* exprSum::differentiate | ( | int | index | ) | [virtual] |
| virtual expression* exprSum::simplify | ( | ) | [virtual] |
| virtual int exprSum::Linearity | ( | ) | [virtual] |
Get a measure of "how linear" the expression is:.
Reimplemented from exprOp.
Reimplemented in exprGroup, and exprQuad.
Referenced by exprQuad::Linearity().
| virtual void exprSum::getBounds | ( | expression *& | , | |
| expression *& | ||||
| ) | [virtual] |
| virtual exprAux* exprSum::standardize | ( | CouenneProblem * | p, | |
| bool | addAux = true | |||
| ) | [virtual] |
Reduce expression in standard form, creating additional aux variables (and constraints).
Reimplemented from exprOp.
| virtual void exprSum::generateCuts | ( | expression * | , | |
| OsiCuts & | , | |||
| const CouenneCutGenerator * | , | |||
| t_chg_bounds * | = NULL, |
|||
| int | = -1, |
|||
| CouNumber | = -COUENNE_INFINITY, |
|||
| CouNumber | = COUENNE_INFINITY | |||
| ) | [virtual] |
| virtual enum expr_type exprSum::code | ( | ) | [inline, virtual] |
Code for comparison.
Reimplemented from exprOp.
Reimplemented in exprGroup, and exprQuad.
Definition at line 72 of file exprSum.hpp.
References COU_EXPRSUM.
| virtual bool exprSum::impliedBound | ( | int | , | |
| CouNumber * | , | |||
| CouNumber * | , | |||
| t_chg_bounds * | ||||
| ) | [virtual] |
Implied bound.
An expression

is given such that all
are positive for
and negative for
. If the bounds on
, implied bounds on all
are as follows:

,
where
and
are lower and upper bound, respectively, of
. We also have to check if some of these bounds are infinite.
Reimplemented from expression.
Reimplemented in exprQuad.
| exprAux* exprSum::createQuadratic | ( | CouenneProblem * | ) |
Checks for quadratic terms in the expression and returns an exprQuad if there are enough to create something that can be convexified.
| int exprSum::impliedBoundSum | ( | CouNumber | wl, | |
| CouNumber | wu, | |||
| std::vector< CouNumber > & | xl, | |||
| std::vector< CouNumber > & | xu, | |||
| std::vector< std::pair< int, CouNumber > > & | nl, | |||
| std::vector< std::pair< int, CouNumber > > & | nu | |||
| ) | [protected] |
inferring bounds on factors of a product
1.4.7