#include <exprExp.hpp>
Inheritance diagram for exprExp:
Public Member Functions | |
exprExp (expression *al) | |
Constructor. | |
expression * | clone (Domain *d=NULL) const |
Cloning method. | |
unary_function | F () |
The operator's function. | |
std::string | printOp () const |
Print operator. | |
CouNumber | gradientNorm (const double *x) |
return l-2 norm of gradient at given point | |
expression * | differentiate (int index) |
Differentiation. | |
void | getBounds (expression *&, expression *&) |
Get lower and upper bound of an expression (if any). | |
virtual void | getBounds (CouNumber &lb, CouNumber &ub) |
Get expression of lower and upper bound of an expression (if any). | |
void | generateCuts (expression *w, const OsiSolverInterface &si, OsiCuts &cs, const CouenneCutGenerator *cg, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY) |
Generate convexification cuts for this expression. | |
virtual enum expr_type | code () |
Code for comparisons. | |
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 bool | isBijective () const |
return true if bijective | |
virtual CouNumber | inverse (expression *vardep) const |
inverse of exponential | |
virtual bool | isCuttable (CouenneProblem *problem, int index) const |
can this expression be further linearized or are we on its concave ("bad") side |
Definition at line 20 of file exprExp.hpp.
exprExp::exprExp | ( | expression * | al | ) | [inline] |
expression* exprExp::clone | ( | Domain * | d = NULL |
) | const [inline, virtual] |
Cloning method.
Reimplemented from expression.
Definition at line 29 of file exprExp.hpp.
References exprUnary::argument_, and exprExp().
unary_function exprExp::F | ( | ) | [inline, virtual] |
The operator's function.
Reimplemented from exprUnary.
Definition at line 33 of file exprExp.hpp.
References exp().
std::string exprExp::printOp | ( | ) | const [inline, virtual] |
CouNumber exprExp::gradientNorm | ( | const double * | x | ) | [inline, virtual] |
return l-2 norm of gradient at given point
Reimplemented from expression.
Definition at line 40 of file exprExp.hpp.
References exprUnary::argument_, exp(), and expression::Index().
expression * exprExp::differentiate | ( | int | index | ) | [virtual] |
Differentiation.
Reimplemented from expression.
Definition at line 17 of file exprExp.cpp.
References exprUnary::argument_.
void exprExp::getBounds | ( | expression *& | , | |
expression *& | ||||
) | [virtual] |
Get lower and upper bound of an expression (if any).
Reimplemented from expression.
Definition at line 25 of file exprExp.cpp.
References exprUnary::argument_, and exprExp().
Referenced by generateCuts(), and getBounds().
Get expression of lower and upper bound of an expression (if any).
Reimplemented from expression.
Definition at line 36 of file exprExp.cpp.
References exprUnary::argument_, exp(), and getBounds().
void exprExp::generateCuts | ( | expression * | w, | |
const OsiSolverInterface & | si, | |||
OsiCuts & | cs, | |||
const CouenneCutGenerator * | cg, | |||
t_chg_bounds * | = NULL , |
|||
int | = -1 , |
|||
CouNumber | = -COUENNE_INFINITY , |
|||
CouNumber | = COUENNE_INFINITY | |||
) | [virtual] |
Generate convexification cuts for this expression.
Reimplemented from expression.
Definition at line 23 of file conv-exprExp.cpp.
References exprUnary::argument_, COU_MAX_COEFF, COUENNE_EPS, COUENNE_INFINITY, exp(), getBounds(), expression::Index(), log(), t_chg_bounds::lower(), powNewton(), t_chg_bounds::UNCHANGED, t_chg_bounds::upper(), and x.
virtual enum expr_type exprExp::code | ( | ) | [inline, virtual] |
Code for comparisons.
Reimplemented from exprUnary.
Definition at line 60 of file exprExp.hpp.
References COU_EXPREXP.
bool exprExp::impliedBound | ( | int | , | |
CouNumber * | , | |||
CouNumber * | , | |||
t_chg_bounds * | ||||
) | [virtual] |
Implied bound processing.
Reimplemented from expression.
Definition at line 48 of file exprExp.cpp.
References exprUnary::argument_, t_chg_bounds::CHANGED, COUENNE_EPS, COUENNE_INFINITY, expression::Index(), expression::isInteger(), log(), t_chg_bounds::setLower(), t_chg_bounds::setUpper(), and updateBound().
CouNumber exprExp::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.
Definition at line 22 of file branchExprExp.cpp.
References exprUnary::argument_, COUENNE_INFINITY, exp(), expression::Index(), log(), powNewton(), projectSeg(), TWO_LEFT, TWO_RAND, and TWO_RIGHT.
virtual bool exprExp::isBijective | ( | ) | const [inline, virtual] |
virtual CouNumber exprExp::inverse | ( | expression * | vardep | ) | const [inline, virtual] |
inverse of exponential
Reimplemented from expression.
Definition at line 79 of file exprExp.hpp.
References log().
bool exprExp::isCuttable | ( | CouenneProblem * | problem, | |
int | index | |||
) | const [virtual] |
can this expression be further linearized or are we on its concave ("bad") side
Reimplemented from expression.
Definition at line 75 of file exprExp.cpp.
References exprUnary::argument_, exp(), expression::Index(), and x.