Couenne::exprInv Class Reference

class inverse: $ 1/f(x) $ More...

#include <CouenneExprInv.hpp>

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

List of all members.

Public Member Functions

 exprInv (expression *al)
 Constructors, destructor.
expressionclone (Domain *d=NULL) const
 cloning method
unary_function F ()
 the operator's function
virtual void print (std::ostream &out=std::cout, bool=false) const
 output "1/argument"
CouNumber gradientNorm (const double *x)
 return l-2 norm of gradient at given point
expressiondifferentiate (int index)
 differentiation
virtual int Linearity ()
 get a measure of "how linear" the expression is (see CouenneTypes.h)
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 bijective
virtual CouNumber inverse (expression *vardep) const
 return inverse of y=f(x)=1/x, i.e., x=1/y
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 inverse: $ 1/f(x) $

Definition at line 35 of file CouenneExprInv.hpp.


Constructor & Destructor Documentation

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

Constructors, destructor.

Definition at line 40 of file CouenneExprInv.hpp.


Member Function Documentation

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

cloning method

Reimplemented from Couenne::expression.

Definition at line 44 of file CouenneExprInv.hpp.

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

the operator's function

Reimplemented from Couenne::exprUnary.

Definition at line 48 of file CouenneExprInv.hpp.

void exprInv::print ( std::ostream &  out = std::cout,
bool  descend = false 
) const [virtual]

output "1/argument"

Reimplemented from Couenne::exprUnary.

Definition at line 36 of file exprInv.cpp.

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

return l-2 norm of gradient at given point

Reimplemented from Couenne::expression.

Definition at line 111 of file exprInv.cpp.

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

differentiation

Reimplemented from Couenne::expression.

Definition at line 27 of file exprInv.cpp.

virtual int Couenne::exprInv::Linearity (  )  [inline, virtual]

get a measure of "how linear" the expression is (see CouenneTypes.h)

Reimplemented from Couenne::exprUnary.

Definition at line 60 of file CouenneExprInv.hpp.

void exprInv::getBounds ( expression *&  lb,
expression *&  ub 
)

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

Definition at line 33 of file conv-exprInv.cpp.

void exprInv::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 55 of file conv-exprInv.cpp.

void exprInv::generateCuts ( expression w,
OsiCuts &  cs,
const CouenneCutGenerator cg,
t_chg_bounds chg = NULL,
int  wind = -1,
CouNumber  lbw = -COUENNE_INFINITY,
CouNumber  ubw = COUENNE_INFINITY 
)

generate equality between *this and *w

Definition at line 75 of file conv-exprInv.cpp.

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

code for comparisons

Reimplemented from Couenne::exprUnary.

Definition at line 79 of file CouenneExprInv.hpp.

bool exprInv::impliedBound ( int  wind,
CouNumber l,
CouNumber u,
t_chg_bounds chg,
enum auxSign  sign = expression::AUX_EQ 
) [virtual]

implied bound processing

implied bound processing for expression w = 1/x, upon change in lower- and/or upper bound of w, whose index is wind

Reimplemented from Couenne::expression.

Definition at line 79 of file exprInv.cpp.

CouNumber exprInv::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

Definition at line 229 of file branchExprInv.cpp.

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

return true if bijective

Reimplemented from Couenne::expression.

Definition at line 95 of file CouenneExprInv.hpp.

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

return inverse of y=f(x)=1/x, i.e., x=1/y

Definition at line 98 of file CouenneExprInv.hpp.

bool exprInv::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 124 of file exprInv.cpp.


The documentation for this class was generated from the following files:

Generated on 16 Feb 2012 by  doxygen 1.6.1