class for divisions,
More...
#include <CouenneExprDiv.hpp>
Public Member Functions | |
exprDiv (expression **al, int n=2) | |
Constructor. | |
exprDiv (expression *arg0, expression *arg1) | |
Constructor with two arguments given explicitly. | |
expression * | clone (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 | |
expression * | differentiate (int index) |
Differentiation. | |
expression * | simplify () |
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). | |
exprAux * | standardize (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 |
class for divisions,
Definition at line 24 of file CouenneExprDiv.hpp.
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.
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] |
expression * exprDiv::simplify | ( | ) | [virtual] |
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.
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.