11 #ifndef COUENNE_EXPROP_HPP
12 #define COUENNE_EXPROP_HPP
21 #define MAX_ARG_LINE 10
78 virtual void print (std::ostream &out = std::cout,
100 for (
register int i=0; i<
nargs_; i++)
virtual void ArgList(expression **al)
set arglist (used in deleting nodes without deleting children)
virtual expression * clone(Domain *d=NULL) const
Cloning method.
pos
position where the operator should be printed when printing the expression
virtual void replace(exprVar *, exprVar *)
replace variable with other
virtual enum pos printPos() const
print position (PRE, INSIDE, POST)
exprOp(const exprOp &e, Domain *d=NULL)
Copy constructor: only allocate space for argument list, which will be copied with clonearglist() ...
int shrink_arglist(CouNumber, CouNumber)
compress argument list
virtual exprAux * standardize(CouenneProblem *, bool addAux=true)
generate auxiliary variable
int nArgs() const
return number of arguments
virtual enum nodeType Type() const
Node type.
virtual void realign(const CouenneProblem *p)
empty function to redirect variables to proper variable vector
virtual int Linearity()
get a measure of "how linear" the expression is (see CouenneTypes.h)
expression ** clonearglist(Domain *d=NULL) const
clone argument list (for use with clone method)
virtual ~exprOp()
Destructor.
Class for MINLP problems with symbolic information.
virtual int compare(exprOp &)
compare with other generic exprOp
exprOp(expression *arg0, expression *arg1)
Constructor with two arguments (for convenience)
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 enum expr_type code()
return code to classify type of expression
expression ** ArgList() const
return argument list
expression ** arglist_
argument list is an array of pointers to other expressions
double CouNumber
main number type in Couenne
int nargs_
number of arguments (cardinality of arglist)
exprOp(expression **arglist, int nargs)
Constructor.
general n-ary operator-type expression: requires argument list.
nodeType
type of a node in an expression tree
dig_type
type of digging when filling the dependence list
virtual std::string printOp() const
print operator
expr_type
code returned by the method expression::code()
virtual bool isInteger()
is this expression integer?
virtual expression * simplify()
simplification
virtual void print(std::ostream &out=std::cout, bool=false) const
I/O.
virtual void fillDepSet(std::set< DepNode *, compNode > *dep, DepGraph *g)
fill in dependence structure update dependence set with index of this variable
virtual int rank()
used in rank-based branching variable choice
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...