exprSum Class Reference

class sum More...

#include <exprSum.hpp>

Inheritance diagram for exprSum:

Inheritance graph
[legend]
Collaboration diagram for exprSum:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 exprSum (expression **=NULL, int=0)
 Constructors, destructor.
 exprSum (expression *, expression *)
 Constructor with two elements.
virtual ~exprSum ()
 Empty destructor.
virtual expressionclone (Domain *d=NULL) const
 Cloning method.
std::string printOp () const
 Print operator.
virtual CouNumber operator() ()
 Function for the evaluation of the expression.
virtual expressiondifferentiate (int index)
 Differentiation.
virtual expressionsimplify ()
 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 exprAuxstandardize (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.
exprAuxcreateQuadratic (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

Detailed Description

class sum

Definition at line 21 of file exprSum.hpp.


Constructor & Destructor Documentation

exprSum::exprSum ( expression **  = NULL,
int  = 0 
)

Constructors, destructor.

Referenced by clone().

exprSum::exprSum ( expression ,
expression  
)

Constructor with two elements.

virtual exprSum::~exprSum (  )  [inline, virtual]

Empty destructor.

Definition at line 32 of file exprSum.hpp.


Member Function Documentation

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]

Print operator.

Reimplemented from exprOp.

Definition at line 39 of file exprSum.hpp.

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]

Differentiation.

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

virtual expression* exprSum::simplify (  )  [virtual]

Simplification.

Reimplemented from exprOp.

Reimplemented in exprGroup, and exprQuad.

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]

Get lower and upper bound of an expression (if any).

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

virtual void exprSum::getBounds ( CouNumber ,
CouNumber  
) [virtual]

Get lower and upper bound of an expression (if any).

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

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]

Special version for linear constraints.

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

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

$w = a0 + \sum_{i\in I1} a_i x_i + \sum_{i\in I2} a_i x_i$

is given such that all $a_i$ are positive for $i \in I1$ and negative for $i \in I2$. If the bounds on $w \in [l,b]$, implied bounds on all $x_i, i\in I1 \cup I2$ are as follows:

$\forall i\in I1$ $x_i \ge (l - a0 - \sum_{j\in I1 | j\neq i} a_j u_j - \sum_{j\in I2} a_j l_j) / a_i$ $x_i \le (u - a0 - \sum_{j\in I1 | j\neq i} a_j l_j - \sum_{j\in I2} a_j u_j) / a_i$

$\forall i\in I2$ $x_i \ge (u - a0 - \sum_{j\in I1} a_j u_j - \sum_{j\in I2 | j\neq i} a_j l_j) / a_i$ $x_i \le (l - a0 - \sum_{j\in I1} a_j l_j - \sum_{j\in I2 | j\neq i} a_j u_j) / a_i$,

where $l_i$ and $u_i$ are lower and upper bound, respectively, of $x_i$. 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


The documentation for this class was generated from the following file:
Generated on Wed Jan 20 03:06:00 2010 for Couenne by  doxygen 1.4.7