exprAbs Class Reference

class for $w=|f(x)|$ More...

#include <exprAbs.hpp>

Inheritance diagram for exprAbs:

Inheritance graph
[legend]
Collaboration diagram for exprAbs:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 exprAbs (expression *al)
 Constructor.
unary_function F ()
 The operator's function.
expressionclone (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
expressiondifferentiate (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, 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

Detailed Description

class for $w=|f(x)|$

Definition at line 22 of file exprAbs.hpp.


Constructor & Destructor Documentation

exprAbs::exprAbs ( expression al  )  [inline]

Constructor.

Definition at line 27 of file exprAbs.hpp.

Referenced by clone().


Member Function Documentation

unary_function exprAbs::F (  )  [inline, virtual]

The operator's function.

Reimplemented from exprUnary.

Definition at line 31 of file exprAbs.hpp.

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]

output

Reimplemented from exprUnary.

Definition at line 38 of file exprAbs.hpp.

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().

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

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,
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.


The documentation for this class was generated from the following files:
Generated on Mon May 3 03:12:00 2010 by  doxygen 1.4.7