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