Couenne::exprOpp Class Reference

class opposite, $ -f(x) $ More...

#include <CouenneExprOpp.hpp>

Inheritance diagram for Couenne::exprOpp:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 exprOpp (expression *al)
 Constructors, destructor.
expressionclone (Domain *d=NULL) const
 cloning method
unary_function F ()
 the operator's function
void print (std::ostream &out, bool descend) const
 Output.
CouNumber gradientNorm (const double *x)
 return l-2 norm of gradient at given point
expressiondifferentiate (int index)
 differentiation
virtual expressionsimplify ()
 simplification
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 &, CouNumber &)
 Get value of lower and upper bound of an expression (if any).
virtual void generateCuts (expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
 special version for linear constraints
virtual enum expr_type code ()
 code for comparisons
bool isInteger ()
 is this expression integer?
bool impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
 implied bound processing
exprAuxstandardize (CouenneProblem *, bool addAux=true)
 standardization (to deal with complex arguments)

Detailed Description

class opposite, $ -f(x) $

Definition at line 27 of file CouenneExprOpp.hpp.


Constructor & Destructor Documentation

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

Constructors, destructor.

Definition at line 32 of file CouenneExprOpp.hpp.

Referenced by clone(), differentiate(), and getBounds().


Member Function Documentation

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

cloning method

Reimplemented from Couenne::expression.

Definition at line 36 of file CouenneExprOpp.hpp.

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

Referenced by simplify().

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

the operator's function

Reimplemented from Couenne::exprUnary.

Definition at line 40 of file CouenneExprOpp.hpp.

References Couenne::opp().

void exprOpp::print ( std::ostream &  out,
bool  descend 
) const [virtual]

Output.

Reimplemented from Couenne::exprUnary.

Definition at line 104 of file exprOpp.cpp.

References Couenne::exprUnary::argument_.

CouNumber Couenne::exprOpp::gradientNorm ( const double *  x  )  [inline, virtual]

return l-2 norm of gradient at given point

Reimplemented from Couenne::expression.

Definition at line 48 of file CouenneExprOpp.hpp.

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

expression * exprOpp::differentiate ( int  index  )  [inline, virtual]

differentiation

Reimplemented from Couenne::expression.

Definition at line 42 of file exprOpp.cpp.

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

expression * exprOpp::simplify (  )  [virtual]

simplification

Reimplemented from Couenne::exprUnary.

Definition at line 76 of file exprOpp.cpp.

References Couenne::exprUnary::Argument(), Couenne::exprUnary::argument_, clone(), code(), Couenne::CONST, Couenne::COU_EXPROPP, Couenne::exprUnary::simplify(), Couenne::exprUnary::Type(), and Couenne::expression::Value().

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

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

Reimplemented from Couenne::exprUnary.

Definition at line 58 of file CouenneExprOpp.hpp.

References Couenne::exprUnary::argument_.

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

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

Reimplemented from Couenne::expression.

Definition at line 20 of file exprOpp.cpp.

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

Referenced by getBounds().

void exprOpp::getBounds ( CouNumber ,
CouNumber  
) [virtual]

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

Reimplemented from Couenne::expression.

Definition at line 31 of file exprOpp.cpp.

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

void exprOpp::generateCuts ( expression ,
OsiCuts &  ,
const CouenneCutGenerator ,
t_chg_bounds = NULL,
int  = -1,
CouNumber  = -COUENNE_INFINITY,
CouNumber  = COUENNE_INFINITY 
) [virtual]

special version for linear constraints

Reimplemented from Couenne::expression.

Definition at line 23 of file conv-exprOpp.cpp.

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

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

code for comparisons

Reimplemented from Couenne::exprUnary.

Definition at line 75 of file CouenneExprOpp.hpp.

References Couenne::COU_EXPROPP.

Referenced by simplify().

bool Couenne::exprOpp::isInteger (  )  [inline, virtual]

is this expression integer?

Reimplemented from Couenne::exprUnary.

Definition at line 79 of file CouenneExprOpp.hpp.

References Couenne::exprUnary::argument_.

Referenced by impliedBound().

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

implied bound processing

Definition at line 48 of file exprOpp.cpp.

References Couenne::exprUnary::argument_, Couenne::expression::AUX_GEQ, Couenne::expression::AUX_LEQ, Couenne::t_chg_bounds::CHANGED, COUENNE_EPS, Couenne::expression::Index(), isInteger(), Couenne::t_chg_bounds::setLower(), Couenne::t_chg_bounds::setUpper(), and Couenne::updateBound().

exprAux * exprOpp::standardize ( CouenneProblem p,
bool  addAux = true 
) [virtual]

standardization (to deal with complex arguments)

1) an exprGroup, if only linear terms are present 2) an exprQuad, if some quadratic/bilinear terms exist

Reimplemented from Couenne::exprUnary.

Definition at line 103 of file sumStandardize.cpp.

References Couenne::exprUnary::argument_.


The documentation for this class was generated from the following files:
Generated on Thu Sep 22 03:14:58 2011 by  doxygen 1.4.7