exprOp Class Reference

general n-ary operator-type expression: requires argument list. More...

#include <exprOp.hpp>

Inheritance diagram for exprOp:

Inheritance graph
[legend]
Collaboration diagram for exprOp:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual enum nodeType Type () const
 Node type.
 exprOp (expression **arglist, int nargs)
 Constructor.
 exprOp (expression *arg0, expression *arg1)
 Constructor with two arguments (for convenience).
virtual ~exprOp ()
 Destructor.
 exprOp (const exprOp &e, Domain *d=NULL)
 Copy constructor: only allocate space for argument list, which will be copied with clonearglist().
expression ** ArgList () const
 return argument list
virtual void ArgList (expression **al)
 set arglist (used in deleting nodes without deleting children)
int nArgs () const
 return number of arguments
virtual void print (std::ostream &out=std::cout, bool=false) const
 I/O.
virtual enum pos printPos () const
 print position (PRE, INSIDE, POST)
virtual std::string printOp () const
 print 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
virtual expressionsimplify ()
 simplification
expression ** clonearglist (Domain *d=NULL) const
 clone argument list (for use with clone method)
int shrink_arglist (CouNumber, CouNumber)
 compress argument list
virtual int Linearity ()
 get a measure of "how linear" the expression is (see CouenneTypes.h)
virtual exprAuxstandardize (CouenneProblem *, bool addAux=true)
 generate auxiliary variable
virtual enum expr_type code ()
 return code to classify type of expression
virtual bool isInteger ()
 is this expression integer?
virtual int compare (exprOp &)
 compare with other generic exprOp
virtual int rank ()
 used in rank-based branching variable choice
virtual void fillDepSet (std::set< DepNode *, compNode > *dep, DepGraph *g)
 fill in dependence structure update dependence set with index of this variable
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

expression ** arglist_
 argument list is an array of pointers to other expressions
int nargs_
 number of arguments (cardinality of arglist)

Detailed Description

general n-ary operator-type expression: requires argument list.

All non-unary and non-leaf operators, i.e., sum, subtraction, multiplication, power, division, max, min, etc. are derived from this class.

Definition at line 29 of file exprOp.hpp.


Constructor & Destructor Documentation

exprOp::exprOp ( expression **  arglist,
int  nargs 
) [inline]

Constructor.

Definition at line 43 of file exprOp.hpp.

exprOp::exprOp ( expression arg0,
expression arg1 
) [inline]

Constructor with two arguments (for convenience).

Definition at line 49 of file exprOp.hpp.

References arglist_.

virtual exprOp::~exprOp (  )  [virtual]

Destructor.

exprOp::exprOp ( const exprOp e,
Domain d = NULL 
) [inline]

Copy constructor: only allocate space for argument list, which will be copied with clonearglist().

Definition at line 59 of file exprOp.hpp.


Member Function Documentation

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

Node type.

Reimplemented from expression.

Definition at line 39 of file exprOp.hpp.

References N_ARY.

Referenced by exprDiv::Linearity().

expression** exprOp::ArgList (  )  const [inline, virtual]

return argument list

Reimplemented from expression.

Definition at line 64 of file exprOp.hpp.

References arglist_.

virtual void exprOp::ArgList ( expression **  al  )  [inline, virtual]

set arglist (used in deleting nodes without deleting children)

Reimplemented from expression.

Definition at line 68 of file exprOp.hpp.

References arglist_.

int exprOp::nArgs (  )  const [inline, virtual]

return number of arguments

Reimplemented from expression.

Definition at line 72 of file exprOp.hpp.

References nargs_.

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

I/O.

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

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

print position (PRE, INSIDE, POST)

Reimplemented in exprLBCos, exprUBCos, exprLBDiv, exprUBDiv, exprLBMul, exprUBMul, exprLBSin, exprUBSin, exprMax, and exprMin.

Definition at line 80 of file exprOp.hpp.

References INSIDE.

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

print operator

Reimplemented in exprLBCos, exprUBCos, exprLBDiv, exprUBDiv, exprLBMul, exprUBMul, exprLBSin, exprUBSin, exprDiv, exprMax, exprMin, exprMul, exprPow, exprSub, and exprSum.

Definition at line 84 of file exprOp.hpp.

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

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

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

virtual expression* exprOp::simplify (  )  [virtual]

simplification

Reimplemented from expression.

Reimplemented in exprDiv, exprGroup, exprMax, exprMin, exprMul, exprPow, exprQuad, exprSub, and exprSum.

expression** exprOp::clonearglist ( Domain d = NULL  )  const [inline]

clone argument list (for use with clone method)

Definition at line 95 of file exprOp.hpp.

References arglist_, expression::clone(), and nargs_.

Referenced by exprSum::clone(), exprSub::clone(), exprPow::clone(), exprMul::clone(), exprMin::clone(), exprMax::clone(), exprDiv::clone(), exprUBMul::clone(), exprLBMul::clone(), exprUBDiv::clone(), and exprLBDiv::clone().

int exprOp::shrink_arglist ( CouNumber  ,
CouNumber   
)

compress argument list

virtual int exprOp::Linearity (  )  [inline, virtual]

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

Reimplemented from expression.

Reimplemented in exprDiv, exprGroup, exprMax, exprMin, exprMul, exprPow, exprQuad, exprSub, and exprSum.

Definition at line 108 of file exprOp.hpp.

References NONLINEAR.

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

generate auxiliary variable

Reimplemented from expression.

Reimplemented in exprDiv, exprMax, exprMin, exprMul, exprPow, exprSub, and exprSum.

virtual enum expr_type exprOp::code (  )  [inline, virtual]

return code to classify type of expression

Reimplemented from expression.

Reimplemented in exprDiv, exprGroup, exprMax, exprMin, exprMul, exprPow, exprQuad, exprSub, and exprSum.

Definition at line 115 of file exprOp.hpp.

References COU_EXPROP.

virtual bool exprOp::isInteger (  )  [virtual]

is this expression integer?

Reimplemented from expression.

Reimplemented in exprDiv, exprGroup, exprPow, and exprQuad.

virtual int exprOp::compare ( exprOp  )  [virtual]

compare with other generic exprOp

virtual int exprOp::rank (  )  [virtual]

used in rank-based branching variable choice

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

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

fill in dependence structure update dependence set with index of this variable

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

Definition at line 129 of file exprOp.hpp.

References arglist_, and nargs_.

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

replace variable with other

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.

virtual void exprOp::realign ( const CouenneProblem p  )  [virtual]

empty function to redirect variables to proper variable vector

Reimplemented from expression.

Reimplemented in exprGroup, and exprQuad.


Member Data Documentation

expression** exprOp::arglist_ [protected]

argument list is an array of pointers to other expressions

Definition at line 33 of file exprOp.hpp.

Referenced by ArgList(), exprUBSin::clone(), exprLBSin::clone(), exprUBCos::clone(), exprLBCos::clone(), clonearglist(), exprLBCos::exprLBCos(), exprLBSin::exprLBSin(), exprMax::exprMax(), exprMin::exprMin(), exprOp(), exprUBCos::exprUBCos(), exprUBSin::exprUBSin(), fillDepSet(), exprPow::getFixVar(), exprSub::Linearity(), exprDiv::Linearity(), exprSum::operator()(), exprSub::operator()(), exprPow::operator()(), exprMul::operator()(), exprMin::operator()(), exprMax::operator()(), exprDiv::operator()(), exprUBSin::operator()(), exprLBSin::operator()(), exprUBMul::operator()(), exprLBMul::operator()(), exprUBDiv::operator()(), exprLBDiv::operator()(), exprUBCos::operator()(), and exprLBCos::operator()().

int exprOp::nargs_ [protected]

number of arguments (cardinality of arglist)

Definition at line 34 of file exprOp.hpp.

Referenced by exprSum::clone(), exprSub::clone(), exprPow::clone(), exprMul::clone(), exprMin::clone(), exprMax::clone(), exprDiv::clone(), exprUBMul::clone(), exprLBMul::clone(), exprUBDiv::clone(), exprLBDiv::clone(), clonearglist(), fillDepSet(), nArgs(), exprSum::operator()(), exprMul::operator()(), exprMin::operator()(), and exprMax::operator()().


The documentation for this class was generated from the following file:
Generated on Wed Jul 8 03:08:18 2009 for Couenne by  doxygen 1.4.7