#include <exprAbs.hpp>
Inheritance diagram for exprAbs:
Public Member Functions | |
exprAbs (expression *al) | |
Constructor. | |
unary_function | F () |
The operator's function. | |
expression * | clone (Domain *d=NULL) const |
cloning method | |
std::string | printOp () const |
output | |
CouNumber | gradientNorm (const double *x) |
return l_2 norm of gradient at given point | |
expression * | differentiate (int index) |
differentiation | |
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). | |
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 equality between *this and *w | |
enum expr_type | code () |
code for comparisons | |
bool | isInteger () |
is this expression integer? | |
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 |
closest feasible points in function in both directions | |
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 22 of file exprAbs.hpp.
exprAbs::exprAbs | ( | expression * | al | ) | [inline] |
unary_function exprAbs::F | ( | ) | [inline, virtual] |
expression* exprAbs::clone | ( | Domain * | d = NULL |
) | const [inline, virtual] |
cloning method
Reimplemented from expression.
Definition at line 34 of file exprAbs.hpp.
References exprUnary::argument_, and exprAbs().
std::string exprAbs::printOp | ( | ) | const [inline, virtual] |
CouNumber exprAbs::gradientNorm | ( | const double * | x | ) | [inline, virtual] |
return l_2 norm of gradient at given point
Reimplemented from expression.
Definition at line 42 of file exprAbs.hpp.
References exprUnary::argument_, and expression::Index().
expression * exprAbs::differentiate | ( | int | index | ) | [virtual] |
differentiation
Reimplemented from expression.
Definition at line 68 of file exprAbs.cpp.
References exprUnary::argument_.
void exprAbs::getBounds | ( | expression *& | , | |
expression *& | ||||
) | [virtual] |
Get lower and upper bound of an expression (if any).
Reimplemented from expression.
Definition at line 21 of file exprAbs.cpp.
References exprUnary::argument_.
Referenced by generateCuts(), and getBounds().
Get value of lower and upper bound of an expression (if any).
Reimplemented from expression.
Definition at line 46 of file exprAbs.cpp.
References exprUnary::argument_, and getBounds().
void exprAbs::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 equality between *this and *w
Reimplemented from expression.
Definition at line 20 of file conv-exprAbs.cpp.
References exprUnary::argument_, COUENNE_INFINITY, getBounds(), expression::Index(), t_chg_bounds::lower(), t_chg_bounds::UNCHANGED, and w.
enum expr_type exprAbs::code | ( | ) | [inline, virtual] |
code for comparisons
Reimplemented from exprUnary.
Definition at line 62 of file exprAbs.hpp.
References COU_EXPRABS.
bool exprAbs::isInteger | ( | ) | [inline, virtual] |
is this expression integer?
Reimplemented from exprUnary.
Definition at line 65 of file exprAbs.hpp.
References exprUnary::argument_.
Referenced by impliedBound().
bool exprAbs::impliedBound | ( | int | , | |
CouNumber * | , | |||
CouNumber * | , | |||
t_chg_bounds * | ||||
) | [virtual] |
implied bound processing
Reimplemented from expression.
Definition at line 85 of file exprAbs.cpp.
References exprUnary::argument_, t_chg_bounds::CHANGED, COUENNE_EPS, COUENNE_INFINITY, expression::Index(), isInteger(), t_chg_bounds::setLower(), t_chg_bounds::setUpper(), and updateBound().
CouNumber exprAbs::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
For an exprAbs, simply branch at zero.
Reimplemented from expression.
Definition at line 21 of file branchExprAbs.cpp.
References exprUnary::argument_, expression::Index(), sqrt_2, and TWO_RAND.
void exprAbs::closestFeasible | ( | expression * | varind, | |
expression * | vardep, | |||
CouNumber & | left, | |||
CouNumber & | right | |||
) | const [virtual] |
closest feasible points in function in both directions
Reimplemented from expression.
Definition at line 130 of file exprAbs.cpp.
References COUENNE_INFINITY.
bool exprAbs::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 158 of file exprAbs.cpp.
References exprUnary::argument_, expression::Index(), and x.