17 using namespace Couenne;
41 if (arg0 ->
compare (*arg1) > 0) {
65 bool found_one =
false;
67 for (
register int i=0; i<
nargs_; i++) {
103 register int nonconst = 0;
105 for (
int i = 0; i <
nargs_; i++)
113 else return new exprSum (arglist, nonconst);
123 for (
int i=0; i<
nargs_; i++)
126 lb =
new exprSum (all, nargs_);
127 ub =
new exprSum (alu, nargs_);
138 for (
int i=0; i<
nargs_; i++) {
151 for (
register int i=1; i<
nargs_; i++) {
153 if (lin > linmax) linmax = lin;
virtual int dependsOn(int *ind, int n, enum dig_type type=STOP_AT_AUX)
dependence on variable set: return cardinality of subset of the set of indices in first argument whic...
int compareExpr(const void *e0, const void *e1)
independent comparison
int shrink_arglist(CouNumber, CouNumber)
compress argument list
exprSum(expression **=NULL, int=0)
Constructors, destructor.
virtual expression * differentiate(int index)
Differentiation.
virtual enum nodeType Type() const
Node type.
virtual void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
virtual expression * simplify()
simplification
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)
general n-ary operator-type expression: requires argument list.
virtual expression * simplify()
Simplification.
virtual CouNumber Value() const
value (empty)
virtual int compare(exprOp &)
compare with other generic exprOp
virtual int Linearity()
Get a measure of "how linear" the expression is: