Couenne::exprDiv Class Reference

class for divisions, $ \frac{f(x)}{g(x)} $ More...

#include <CouenneExprDiv.hpp>

Inheritance diagram for Couenne::exprDiv:
Inheritance graph
[legend]
Collaboration diagram for Couenne::exprDiv:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 exprDiv (expression **al, int n=2)
 Constructor.
 exprDiv (expression *arg0, expression *arg1)
 Constructor with two arguments given explicitly.
expressionclone (Domain *d=NULL) const
 Cloning method.
std::string printOp () const
 Print operator.
CouNumber operator() ()
 Function for the evaluation of the expression.
CouNumber gradientNorm (const double *x)
 return l-2 norm of gradient at given point
expressiondifferentiate (int index)
 Differentiation.
expressionsimplify ()
 Simplification.
int Linearity ()
 Get a measure of "how linear" the expression is (see CouenneTypes.h).
void getBounds (expression *&lb, expression *&ub)
 Get lower and upper bound of an expression (if any).
void getBounds (CouNumber &lb, CouNumber &ub)
 Get value of lower and upper bound of an expression (if any).
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 comparisons.
bool isInteger ()
 is this expression integer?
bool impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
 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
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 divisions, $ \frac{f(x)}{g(x)} $

Definition at line 24 of file CouenneExprDiv.hpp.


Constructor & Destructor Documentation

Couenne::exprDiv::exprDiv ( expression **  al,
int  n = 2 
) [inline]

Constructor.

Definition at line 29 of file CouenneExprDiv.hpp.

Couenne::exprDiv::exprDiv ( expression arg0,
expression arg1 
) [inline]

Constructor with two arguments given explicitly.

Definition at line 33 of file CouenneExprDiv.hpp.


Member Function Documentation

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

Cloning method.

Reimplemented from Couenne::expression.

Definition at line 37 of file CouenneExprDiv.hpp.

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

Print operator.

Reimplemented from Couenne::exprOp.

Definition at line 41 of file CouenneExprDiv.hpp.

CouNumber Couenne::exprDiv::operator() (  )  [inline, virtual]

Function for the evaluation of the expression.

Compute division.

Implements Couenne::expression.

Definition at line 115 of file CouenneExprDiv.hpp.

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

return l-2 norm of gradient at given point

Reimplemented from Couenne::expression.

Definition at line 291 of file exprDiv.cpp.

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

Differentiation.

Reimplemented from Couenne::expression.

Definition at line 87 of file exprDiv.cpp.

expression * exprDiv::simplify (  )  [virtual]

Simplification.

Reimplemented from Couenne::exprOp.

Definition at line 31 of file exprDiv.cpp.

int Couenne::exprDiv::Linearity (  )  [inline, virtual]

Get a measure of "how linear" the expression is (see CouenneTypes.h).

Reimplemented from Couenne::exprOp.

Definition at line 57 of file CouenneExprDiv.hpp.

void exprDiv::getBounds ( expression *&  lb,
expression *&  ub 
)

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

Definition at line 147 of file exprDiv.cpp.

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

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

Reimplemented from Couenne::expression.

Definition at line 167 of file exprDiv.cpp.

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

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

Reimplemented from Couenne::exprOp.

Definition at line 24 of file conv-exprDiv.cpp.

void exprDiv::generateCuts ( expression w,
OsiCuts &  cs,
const CouenneCutGenerator cg,
t_chg_bounds chg = NULL,
int  wind = -1,
CouNumber  lbw = -COUENNE_INFINITY,
CouNumber  ubw = COUENNE_INFINITY 
)

Generate equality between *this and *w.

Definition at line 32 of file conv-exprDiv.cpp.

virtual enum expr_type Couenne::exprDiv::code (  )  [inline, virtual]

Code for comparisons.

Reimplemented from Couenne::exprOp.

Definition at line 82 of file CouenneExprDiv.hpp.

bool exprDiv::isInteger (  )  [virtual]

is this expression integer?

Reimplemented from Couenne::exprOp.

Definition at line 198 of file exprDiv.cpp.

bool exprDiv::impliedBound ( int  wind,
CouNumber l,
CouNumber u,
t_chg_bounds chg,
enum auxSign  sign = expression::AUX_EQ 
) [virtual]

Implied bound processing.

implied bound processing for expression w = x/y, upon change in lower- and/or upper bound of w, whose index is wind

Reimplemented from Couenne::expression.

Definition at line 22 of file impliedBounds-exprDiv.cpp.

CouNumber exprDiv::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.

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

Definition at line 20 of file branchExprDiv.cpp.

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

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

Definition at line 249 of file exprDiv.cpp.

virtual bool Couenne::exprDiv::isCuttable ( CouenneProblem problem,
int  index 
) const [inline, virtual]

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

Reimplemented from Couenne::expression.

Definition at line 108 of file CouenneExprDiv.hpp.


The documentation for this class was generated from the following files:

Generated on 22 May 2012 by  doxygen 1.6.1