Couenne::exprLog Class Reference

class logarithm, $ \log f(x)$ More...

#include <CouenneExprLog.hpp>

Inheritance diagram for Couenne::exprLog:

Inheritance graph
[legend]
Collaboration diagram for Couenne::exprLog:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 exprLog (expression *al)
 Constructors, destructor.
expressionclone (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
expressiondifferentiate (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 *, 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 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

Detailed Description

class logarithm, $ \log f(x)$

Definition at line 21 of file CouenneExprLog.hpp.


Constructor & Destructor Documentation

Couenne::exprLog::exprLog ( expression al  )  [inline]

Constructors, destructor.

Definition at line 26 of file CouenneExprLog.hpp.

Referenced by clone(), and getBounds().


Member Function Documentation

expression* Couenne::exprLog::clone ( Domain d = NULL  )  const [inline, virtual]

cloning method

Reimplemented from Couenne::expression.

Definition at line 30 of file CouenneExprLog.hpp.

References Couenne::exprUnary::argument_, and exprLog().

unary_function Couenne::exprLog::F (  )  [inline, virtual]

the operator's function

Reimplemented from Couenne::exprUnary.

Definition at line 34 of file CouenneExprLog.hpp.

References Couenne::log().

std::string Couenne::exprLog::printOp (  )  const [inline, virtual]

print operator

Reimplemented from Couenne::exprUnary.

Definition at line 37 of file CouenneExprLog.hpp.

CouNumber exprLog::gradientNorm ( const double *  x  )  [virtual]

return l-2 norm of gradient at given point

Reimplemented from Couenne::expression.

Definition at line 105 of file exprLog.cpp.

References Couenne::exprUnary::argument_, COUENNE_INFINITY, and Couenne::expression::Index().

expression * exprLog::differentiate ( int  index  )  [virtual]

differentiation

Reimplemented from Couenne::expression.

Definition at line 70 of file exprLog.cpp.

References Couenne::exprUnary::argument_.

void exprLog::getBounds ( expression *&  ,
expression *&   
) [virtual]

Get lower and upper bound of an expression (if any).

Reimplemented from Couenne::expression.

Definition at line 28 of file exprLog.cpp.

References Couenne::exprUnary::argument_, COUENNE_INFINITY, and exprLog().

Referenced by generateCuts(), and getBounds().

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

Get value of lower and upper bound of an expression (if any).

Reimplemented from Couenne::expression.

Definition at line 59 of file exprLog.cpp.

References Couenne::exprUnary::argument_, e, getBounds(), and Couenne::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 Couenne::expression.

Definition at line 27 of file conv-exprLog.cpp.

References Couenne::exprUnary::argument_, Couenne::expression::AUX_GEQ, Couenne::expression::AUX_LEQ, COUENNE_EPS, COUENNE_INFINITY, createCut(), getBounds(), Couenne::expression::Index(), Couenne::inv(), Couenne::log(), LOG_MININF, LOG_STEP, Couenne::oppInvSqr(), Couenne::powNewton(), Couenne::t_chg_bounds::UNCHANGED, Couenne::t_chg_bounds::upper(), and x.

virtual enum expr_type Couenne::exprLog::code (  )  [inline, virtual]

code for comparisons

Reimplemented from Couenne::exprUnary.

Definition at line 60 of file CouenneExprLog.hpp.

References Couenne::COU_EXPRLOG.

bool exprLog::impliedBound ( int  ,
CouNumber ,
CouNumber ,
t_chg_bounds ,
enum  auxSign = expression::AUX_EQ 
)

implied bound processing

Definition at line 78 of file exprLog.cpp.

References Couenne::exprUnary::argument_, Couenne::expression::AUX_GEQ, Couenne::expression::AUX_LEQ, Couenne::t_chg_bounds::CHANGED, COUENNE_EPS, Couenne::exp(), Couenne::expression::Index(), Couenne::exprUnary::isInteger(), Couenne::t_chg_bounds::setLower(), Couenne::t_chg_bounds::setUpper(), and Couenne::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 Couenne::expression.

Definition at line 25 of file branchExprLog.cpp.

References Couenne::exprUnary::argument_, COUENNE_EPS, COUENNE_INFINITY, Couenne::exp(), Couenne::expression::Index(), Couenne::inv(), Couenne::log(), Couenne::oppInvSqr(), Couenne::powNewton(), Couenne::projectSeg(), SQ_COUENNE_EPS, Couenne::TWO_LEFT, Couenne::TWO_RAND, and Couenne::TWO_RIGHT.

virtual bool Couenne::exprLog::isBijective (  )  const [inline, virtual]

return true if feasible

Reimplemented from Couenne::expression.

Definition at line 77 of file CouenneExprLog.hpp.

virtual CouNumber Couenne::exprLog::inverse ( expression vardep  )  const [inline, virtual]

inverse of this operator

Reimplemented from Couenne::expression.

Definition at line 80 of file CouenneExprLog.hpp.

References Couenne::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 Couenne::expression.

Definition at line 113 of file exprLog.cpp.

References Couenne::exprUnary::argument_, Couenne::expression::Index(), Couenne::log(), and x.


The documentation for this class was generated from the following files:
Generated on Wed Nov 30 03:13:24 2011 by  doxygen 1.4.7