exprMul Class Reference

class for multiplications More...

#include <exprMul.hpp>

Inheritance diagram for exprMul:

Inheritance graph
[legend]
Collaboration diagram for exprMul:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 exprMul (expression **, int)
 Constructor.
 exprMul (expression *, expression *)
 Constructor with two arguments.
expressionclone (Domain *d=NULL) const
 Cloning method.
std::string printOp () const
 Print operator.
CouNumber operator() ()
 Method to evaluate the expression.
CouNumber gradientNorm (const double *x)
 return l-2 norm of gradient at given point
expressiondifferentiate (int index)
 differentiation
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 &lb, CouNumber &ub)
 Get value of 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)
void generateCuts (expression *w, OsiCuts &cs, const CouenneCutGenerator *cg, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
 generate equality between *this and *w
virtual enum expr_type code ()
 code for comparison
bool impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *)
 implied bound processing
virtual CouNumber selectBranch (const CouenneObject *obj, const OsiBranchingInformation *info, expression *&var, double *&brpts, double *&brDist, int &way)
 set up branching object by evaluating many branching points for each expression's arguments
virtual void closestFeasible (expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
 compute $y^{lv}$ and $y^{uv}$ for Violation Transfer algorithm

Protected Member Functions

int impliedBoundMul (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
CouNumber balancedMul (const OsiBranchingInformation *info, int index, int wind)
 balanced strategy for branching point selection in products
virtual bool isCuttable (CouenneProblem *problem, int index) const
 can this expression be further linearized or are we on its concave ("bad") side

Detailed Description

class for multiplications

Definition at line 21 of file exprMul.hpp.


Constructor & Destructor Documentation

exprMul::exprMul ( expression **  ,
int   
)

Constructor.

Referenced by clone().

exprMul::exprMul ( expression ,
expression  
)

Constructor with two arguments.


Member Function Documentation

expression* exprMul::clone ( Domain d = NULL  )  const [inline, virtual]

Cloning method.

Reimplemented from expression.

Definition at line 32 of file exprMul.hpp.

References exprOp::clonearglist(), exprMul(), and exprOp::nargs_.

std::string exprMul::printOp (  )  const [inline, virtual]

Print operator.

Reimplemented from exprOp.

Definition at line 36 of file exprMul.hpp.

CouNumber exprMul::operator() (  )  [inline, virtual]

Method to evaluate the expression.

Implements expression.

Definition at line 114 of file exprMul.hpp.

References exprOp::arglist_, and exprOp::nargs_.

CouNumber exprMul::gradientNorm ( const double *  x  )  [virtual]

return l-2 norm of gradient at given point

Reimplemented from expression.

expression* exprMul::differentiate ( int  index  )  [virtual]

differentiation

Reimplemented from expression.

expression* exprMul::simplify (  )  [virtual]

simplification

Reimplemented from exprOp.

virtual int exprMul::Linearity (  )  [virtual]

get a measure of "how linear" the expression is:

Reimplemented from exprOp.

virtual void exprMul::getBounds ( expression *&  ,
expression *&   
) [virtual]

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

Reimplemented from expression.

virtual void exprMul::getBounds ( CouNumber lb,
CouNumber ub 
) [virtual]

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

Reimplemented from expression.

virtual exprAux* exprMul::standardize ( CouenneProblem p,
bool  addAux = true 
) [virtual]

reduce expression in standard form, creating additional aux variables (and constraints)

Reimplemented from exprOp.

void exprMul::generateCuts ( expression w,
OsiCuts &  cs,
const CouenneCutGenerator cg,
t_chg_bounds = NULL,
int  = -1,
CouNumber  = -COUENNE_INFINITY,
CouNumber  = COUENNE_INFINITY 
) [virtual]

generate equality between *this and *w

Reimplemented from expression.

virtual enum expr_type exprMul::code (  )  [inline, virtual]

code for comparison

Reimplemented from exprOp.

Definition at line 72 of file exprMul.hpp.

References COU_EXPRMUL.

bool exprMul::impliedBound ( int  ,
CouNumber ,
CouNumber ,
t_chg_bounds  
) [virtual]

implied bound processing

Reimplemented from expression.

virtual CouNumber exprMul::selectBranch ( const CouenneObject obj,
const OsiBranchingInformation *  info,
expression *&  var,
double *&  brpts,
double *&  brDist,
int &  way 
) [virtual]

set up branching object by evaluating many branching points for each expression's arguments

Reimplemented from expression.

virtual void exprMul::closestFeasible ( expression varind,
expression vardep,
CouNumber left,
CouNumber right 
) const [virtual]

compute $y^{lv}$ and $y^{uv}$ for Violation Transfer algorithm

Reimplemented from expression.

int exprMul::impliedBoundMul ( 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

CouNumber exprMul::balancedMul ( const OsiBranchingInformation *  info,
int  index,
int  wind 
) [protected]

balanced strategy for branching point selection in products

virtual bool exprMul::isCuttable ( CouenneProblem problem,
int  index 
) const [inline, protected, virtual]

can this expression be further linearized or are we on its concave ("bad") side

Reimplemented from expression.

Definition at line 108 of file exprMul.hpp.


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