#include <exprLog.hpp>
Inheritance diagram for exprLog:
Public Member Functions | |
exprLog (expression *al) | |
Constructors, destructor. | |
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). | |
void | getBounds (CouNumber &lb, CouNumber &ub) |
Get value of lower and upper bound of an expression (if any). | |
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 | 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 feasible | |
virtual CouNumber | inverse (expression *vardep) const |
inverse of this operator | |
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 exprLog.hpp.
exprLog::exprLog | ( | expression * | al | ) | [inline] |
Constructors, destructor.
Definition at line 25 of file exprLog.hpp.
Referenced by clone(), and getBounds().
expression* exprLog::clone | ( | Domain * | d = NULL |
) | const [inline, virtual] |
cloning method
Reimplemented from expression.
Definition at line 29 of file exprLog.hpp.
References exprUnary::argument_, and exprLog().
unary_function exprLog::F | ( | ) | [inline, virtual] |
the operator's function
Reimplemented from exprUnary.
Definition at line 33 of file exprLog.hpp.
References log().
std::string exprLog::printOp | ( | ) | const [inline, virtual] |
CouNumber exprLog::gradientNorm | ( | const double * | x | ) | [virtual] |
return l-2 norm of gradient at given point
Reimplemented from expression.
Definition at line 99 of file exprLog.cpp.
References exprUnary::argument_, COUENNE_INFINITY, and expression::Index().
expression * exprLog::differentiate | ( | int | index | ) | [virtual] |
differentiation
Reimplemented from expression.
Definition at line 68 of file exprLog.cpp.
References exprUnary::argument_.
void exprLog::getBounds | ( | expression *& | , | |
expression *& | ||||
) | [virtual] |
Get lower and upper bound of an expression (if any).
Reimplemented from expression.
Definition at line 26 of file exprLog.cpp.
References exprUnary::argument_, COUENNE_INFINITY, and exprLog().
Referenced by generateCuts(), and getBounds().
Get value of lower and upper bound of an expression (if any).
Reimplemented from expression.
Definition at line 57 of file exprLog.cpp.
References exprUnary::argument_, e, getBounds(), and log().
void exprLog::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.
Definition at line 25 of file conv-exprLog.cpp.
References exprUnary::argument_, COUENNE_EPS, COUENNE_INFINITY, getBounds(), expression::Index(), inv(), log(), LOG_MININF, LOG_STEP, oppInvSqr(), powNewton(), t_chg_bounds::UNCHANGED, t_chg_bounds::upper(), and x.
virtual enum expr_type exprLog::code | ( | ) | [inline, virtual] |
code for comparisons
Reimplemented from exprUnary.
Definition at line 59 of file exprLog.hpp.
References COU_EXPRLOG.
bool exprLog::impliedBound | ( | int | , | |
CouNumber * | , | |||
CouNumber * | , | |||
t_chg_bounds * | ||||
) | [virtual] |
implied bound processing
Reimplemented from expression.
Definition at line 76 of file exprLog.cpp.
References exprUnary::argument_, t_chg_bounds::CHANGED, COUENNE_EPS, exp(), expression::Index(), exprUnary::isInteger(), t_chg_bounds::setLower(), t_chg_bounds::setUpper(), and updateBound().
CouNumber exprLog::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 24 of file branchExprLog.cpp.
References exprUnary::argument_, COUENNE_EPS, COUENNE_INFINITY, exp(), expression::Index(), inv(), log(), oppInvSqr(), powNewton(), projectSeg(), SQ_COUENNE_EPS, TWO_LEFT, TWO_RAND, and TWO_RIGHT.
virtual bool exprLog::isBijective | ( | ) | const [inline, virtual] |
virtual CouNumber exprLog::inverse | ( | expression * | vardep | ) | const [inline, virtual] |
inverse of this operator
Reimplemented from expression.
Definition at line 79 of file exprLog.hpp.
References exp().
bool exprLog::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 107 of file exprLog.cpp.
References exprUnary::argument_, expression::Index(), log(), and x.