Couenne::exprUnary Class Reference

expression class for unary functions (sin, log, etc. More...

#include <CouenneExprUnary.hpp>

Inheritance diagram for Couenne::exprUnary:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual enum nodeType Type () const
 node type
 exprUnary (expression *argument)
 Constructor.
virtual unary_function F ()
 the operator itself (e.g. sin, log...)
 ~exprUnary ()
 Destructor.
int nArgs () const
 return number of arguments
virtual expressionArgument () const
 return argument (when applicable, i.e., with univariate functions)
virtual expression ** ArgPtr ()
 return pointer to argument (when applicable, i.e., with univariate functions)
virtual void print (std::ostream &out=std::cout, bool=false) const
 print this expression to iostream
virtual enum pos printPos () const
 print position (PRE, INSIDE, POST)
virtual std::string printOp () const
 print operator
virtual CouNumber operator() ()
 compute value of unary operator
virtual int DepList (std::set< int > &deplist, enum dig_type type=ORIG_ONLY)
 fill in the set with all indices of variables appearing in the expression
expressionsimplify ()
 simplification
virtual int Linearity ()
 get a measure of "how linear" the expression is (see CouenneTypes.h) for general univariate functions, return nonlinear.
virtual exprAuxstandardize (CouenneProblem *, bool addAux=true)
 reduce expression in standard form, creating additional aux variables (and constraints)
virtual enum expr_type code ()
 type of operator
virtual bool isInteger ()
 is this expression integer?
virtual int compare (exprUnary &)
 compare two unary functions
virtual int rank ()
 used in rank-based branching variable choice
virtual void fillDepSet (std::set< DepNode *, compNode > *dep, DepGraph *g)
 fill in dependence structure
virtual void replace (exprVar *, exprVar *)
 replace variable with other
virtual void realign (const CouenneProblem *p)
 empty function to redirect variables to proper variable vector

Protected Attributes

expressionargument_
 single argument taken by this expression

Detailed Description

expression class for unary functions (sin, log, etc.

)

univariate operator-type expression: requires single argument. All unary functions are derived from this base class, which has a lot of common methods that need not be re-implemented by any univariate class.

Definition at line 33 of file CouenneExprUnary.hpp.


Constructor & Destructor Documentation

Couenne::exprUnary::exprUnary ( expression argument  )  [inline]

Constructor.

Definition at line 47 of file CouenneExprUnary.hpp.

Couenne::exprUnary::~exprUnary (  )  [inline]

Destructor.

Definition at line 56 of file CouenneExprUnary.hpp.

References argument_.


Member Function Documentation

virtual enum nodeType Couenne::exprUnary::Type (  )  const [inline, virtual]

node type

Reimplemented from Couenne::expression.

Definition at line 43 of file CouenneExprUnary.hpp.

References Couenne::UNARY.

Referenced by Couenne::exprInv::Linearity(), replace(), simplify(), Couenne::exprOpp::simplify(), and standardize().

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

the operator itself (e.g. sin, log...)

Reimplemented in Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprExp, Couenne::exprFloor, Couenne::exprInv, Couenne::exprLog, Couenne::exprOpp, and Couenne::exprSin.

Definition at line 52 of file CouenneExprUnary.hpp.

References Couenne::zero_fun().

Referenced by isInteger(), and operator()().

int Couenne::exprUnary::nArgs (  )  const [inline, virtual]

return number of arguments

Reimplemented from Couenne::expression.

Definition at line 60 of file CouenneExprUnary.hpp.

virtual expression* Couenne::exprUnary::Argument (  )  const [inline, virtual]

return argument (when applicable, i.e., with univariate functions)

Reimplemented from Couenne::expression.

Definition at line 64 of file CouenneExprUnary.hpp.

References argument_.

Referenced by Couenne::exprCos::generateCuts(), Couenne::exprSin::generateCuts(), and Couenne::exprOpp::simplify().

virtual expression** Couenne::exprUnary::ArgPtr (  )  [inline, virtual]

return pointer to argument (when applicable, i.e., with univariate functions)

Reimplemented from Couenne::expression.

Definition at line 68 of file CouenneExprUnary.hpp.

References argument_.

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

print this expression to iostream

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprInv, and Couenne::exprOpp.

Definition at line 21 of file exprUnary.cpp.

References argument_, Couenne::POST, Couenne::PRE, printOp(), and printPos().

virtual enum pos Couenne::exprUnary::printPos (  )  const [inline, virtual]

print position (PRE, INSIDE, POST)

Definition at line 75 of file CouenneExprUnary.hpp.

References Couenne::PRE.

Referenced by print().

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

print operator

Reimplemented in Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprExp, Couenne::exprFloor, Couenne::exprLog, and Couenne::exprSin.

Definition at line 79 of file CouenneExprUnary.hpp.

Referenced by print().

virtual CouNumber Couenne::exprUnary::operator() (  )  [inline, virtual]

compute value of unary operator

Implements Couenne::expression.

Definition at line 83 of file CouenneExprUnary.hpp.

References F().

virtual int Couenne::exprUnary::DepList ( std::set< int > &  deplist,
enum dig_type  type = ORIG_ONLY 
) [inline, virtual]

fill in the set with all indices of variables appearing in the expression

Reimplemented from Couenne::expression.

Definition at line 88 of file CouenneExprUnary.hpp.

References argument_.

expression * exprUnary::simplify (  )  [virtual]

simplification

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprOpp.

Definition at line 40 of file simplify.cpp.

References argument_, Couenne::CONST, and Type().

Referenced by Couenne::exprOpp::simplify().

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

get a measure of "how linear" the expression is (see CouenneTypes.h) for general univariate functions, return nonlinear.

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprInv, and Couenne::exprOpp.

Definition at line 96 of file CouenneExprUnary.hpp.

References Couenne::NONLINEAR.

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

reduce expression in standard form, creating additional aux variables (and constraints)

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprOpp.

Definition at line 50 of file exprUnary.cpp.

References argument_, Couenne::AUX, Type(), and Couenne::VAR.

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

type of operator

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprExp, Couenne::exprFloor, Couenne::exprInv, Couenne::exprLog, Couenne::exprOpp, and Couenne::exprSin.

Definition at line 104 of file CouenneExprUnary.hpp.

References Couenne::COU_EXPRUNARY.

Referenced by compare().

bool exprUnary::isInteger (  )  [virtual]

is this expression integer?

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprAbs, and Couenne::exprOpp.

Definition at line 78 of file exprUnary.cpp.

References argument_, COUENNE_EPS, COUENNE_INFINITY, COUENNE_round, F(), and Couenne::expression::getBounds().

Referenced by Couenne::exprLog::impliedBound(), Couenne::exprInv::impliedBound(), Couenne::exprExp::impliedBound(), Couenne::exprSin::impliedBound(), and Couenne::exprCos::impliedBound().

int exprUnary::compare ( exprUnary  )  [virtual]

compare two unary functions

Definition at line 33 of file exprUnary.cpp.

References argument_, and code().

virtual int Couenne::exprUnary::rank (  )  [inline, virtual]

used in rank-based branching variable choice

Reimplemented from Couenne::expression.

Definition at line 114 of file CouenneExprUnary.hpp.

References argument_.

virtual void Couenne::exprUnary::fillDepSet ( std::set< DepNode *, compNode > *  dep,
DepGraph g 
) [inline, virtual]

fill in dependence structure

Reimplemented from Couenne::expression.

Definition at line 118 of file CouenneExprUnary.hpp.

References argument_, and g.

void exprUnary::replace ( exprVar ,
exprVar  
) [virtual]

replace variable with other

Reimplemented from Couenne::expression.

Definition at line 66 of file exprUnary.cpp.

References argument_, Couenne::expression::Index(), Type(), Couenne::VAR, w, and x.

virtual void Couenne::exprUnary::realign ( const CouenneProblem p  )  [inline, virtual]

empty function to redirect variables to proper variable vector

Reimplemented from Couenne::expression.

Definition at line 125 of file CouenneExprUnary.hpp.

References argument_.


Member Data Documentation

expression* Couenne::exprUnary::argument_ [protected]

single argument taken by this expression

Definition at line 38 of file CouenneExprUnary.hpp.

Referenced by ArgPtr(), Argument(), Couenne::exprSin::clone(), Couenne::exprOpp::clone(), Couenne::exprLog::clone(), Couenne::exprInv::clone(), Couenne::exprFloor::clone(), Couenne::exprExp::clone(), Couenne::exprCos::clone(), Couenne::exprCeil::clone(), Couenne::exprAbs::clone(), compare(), DepList(), Couenne::exprSin::differentiate(), Couenne::exprOpp::differentiate(), Couenne::exprLog::differentiate(), Couenne::exprInv::differentiate(), Couenne::exprExp::differentiate(), Couenne::exprCos::differentiate(), Couenne::exprAbs::differentiate(), fillDepSet(), Couenne::exprOpp::generateCuts(), Couenne::exprLog::generateCuts(), Couenne::exprInv::generateCuts(), Couenne::exprExp::generateCuts(), Couenne::exprAbs::generateCuts(), Couenne::exprSin::getBounds(), Couenne::exprOpp::getBounds(), Couenne::exprLog::getBounds(), Couenne::exprExp::getBounds(), Couenne::exprCos::getBounds(), Couenne::exprAbs::getBounds(), Couenne::exprInv::getBounds(), Couenne::exprLog::gradientNorm(), Couenne::exprInv::gradientNorm(), Couenne::exprSin::gradientNorm(), Couenne::exprOpp::gradientNorm(), Couenne::exprFloor::gradientNorm(), Couenne::exprExp::gradientNorm(), Couenne::exprCos::gradientNorm(), Couenne::exprCeil::gradientNorm(), Couenne::exprAbs::gradientNorm(), Couenne::exprOpp::impliedBound(), Couenne::exprLog::impliedBound(), Couenne::exprInv::impliedBound(), Couenne::exprExp::impliedBound(), Couenne::exprAbs::impliedBound(), Couenne::exprSin::impliedBound(), Couenne::exprCos::impliedBound(), Couenne::exprLog::isCuttable(), Couenne::exprInv::isCuttable(), Couenne::exprExp::isCuttable(), Couenne::exprAbs::isCuttable(), Couenne::exprOpp::isInteger(), Couenne::exprAbs::isInteger(), isInteger(), Couenne::exprOpp::Linearity(), Couenne::exprInv::Linearity(), Couenne::exprOpp::print(), Couenne::exprInv::print(), print(), rank(), realign(), replace(), Couenne::exprLog::selectBranch(), Couenne::exprInv::selectBranch(), Couenne::exprExp::selectBranch(), Couenne::exprAbs::selectBranch(), simplify(), Couenne::exprOpp::simplify(), Couenne::exprOpp::standardize(), standardize(), and ~exprUnary().


The documentation for this class was generated from the following files:
Generated on Thu Nov 10 03:13:58 2011 by  doxygen 1.4.7