#include <exprOp.hpp>
Inheritance diagram for exprOp:
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 expression * | simplify () |
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 exprAux * | standardize (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) |
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.
exprOp::exprOp | ( | expression ** | arglist, | |
int | nargs | |||
) | [inline] |
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.
Copy constructor: only allocate space for argument list, which will be copied with clonearglist().
Definition at line 59 of file exprOp.hpp.
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] |
virtual enum pos exprOp::printPos | ( | ) | const [inline, virtual] |
virtual std::string exprOp::printOp | ( | ) | const [inline, virtual] |
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.
virtual expression* exprOp::simplify | ( | ) | [virtual] |
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().
virtual int exprOp::Linearity | ( | ) | [inline, virtual] |
virtual exprAux* exprOp::standardize | ( | CouenneProblem * | , | |
bool | addAux = true | |||
) | [virtual] |
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] |
virtual int exprOp::rank | ( | ) | [virtual] |
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.
virtual void exprOp::realign | ( | const CouenneProblem * | p | ) | [virtual] |
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()().