24 using namespace Couenne;
66 register int c0 =
code (),
69 if (c0 < c1)
return -1;
70 else if (c0 > c1)
return 1;
77 exprUnary *ne1 = dynamic_cast <exprUnary *> (const_cast <
expression *> (e1.
Original()));
97 if (i0 < i1)
return -1;
98 if (i0 > i1)
return 1;
99 if (i0 >= 0)
return 0;
108 if (v0 < v1)
return -1;
109 if (v0 > v1)
return 1;
150 if ((copyType ==
VAR) ||
175 indlist (ind, ind + n),
190 for (std::set <int>::iterator
191 i = deplist.begin (),
192 j = indlist.begin ();
193 (i != deplist.end ()) &&
194 (
j != indlist.end ());) {
196 if (*i == *
j)
return 1;
Cut Generator for linear convexifications.
void replace(exprVar *, exprVar *)
replace occurrence of a variable with another variable
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...
CouNumber value_
saved value to be used by exprStore expressions
virtual int compare(expression &)
compare expressions
const expression * Original() const
If this is an exprClone of a exprClone of an expr???, point to the original expr??? instead of an exprClone – improves computing efficiency.
virtual void closestFeasible(expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
closest feasible points in function in both directions
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
virtual expression * clone(Domain *d=NULL) const
Cloning method.
virtual void print(std::ostream &out=std::cout, bool descend=false) const
Printing.
virtual bool isBijective() const
indicating if function is monotonically increasing
virtual void print(std::ostream &out=std::cout, bool descend=false) const
I/O.
virtual expression * differentiate(int)
differentiation
void generateCuts(expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
generate convexification cut for constraint w = this
exprCopy(expression *copy)
Empty constructor - used in cloning method of exprClone.
bool isaCopy() const
return true if this is a copy of something, i.e.
expression class for unary functions (sin, log, etc.)
CouNumber inv(register CouNumber arg)
the operator itself
void fint fint fint real fint real real real real real real real real real * e
int Index() const
Get variable index in problem.
virtual CouNumber inverse(expression *vardep) const
compute the inverse function
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
virtual void print(std::ostream &out=std::cout, bool descend=false) const
Printing.
virtual enum expr_type code()
return integer for comparing expressions (used to recognize common expression)
Class for MINLP problems with symbolic information.
CouNumber value_
the value of this constant
expression * copy_
the expression this object is a (reference) copy of
double CouNumber
main number type in Couenne
general n-ary operator-type expression: requires argument list.
virtual void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
nodeType
type of a node in an expression tree
enum nodeType Type() const
node type
virtual int DepList(std::set< int > &deplist, enum dig_type type=ORIG_ONLY)
fill std::set with indices of variables on which this expression depends.
dig_type
type of digging when filling the dependence list
void realign(const CouenneProblem *p)
redirect variables to proper variable vector
void fint fint fint real fint real real real real real real real real * w
virtual CouNumber Value() const
value (empty)
virtual const expression * Original() const
If this is an exprClone of a exprClone of an expr???, point to the original expr??? instead of an exprClone – improve computing efficiency.
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...