11 #ifndef COUENNE_EXPRSUB_HPP 
   12 #define COUENNE_EXPRSUB_HPP 
   57     if (lin1 < lin2) 
return lin2;
 
Cut Generator for linear convexifications. 
expression * differentiate(int index)
Differentiation. 
exprSub(expression *arg0, expression *arg1)
Constructor with two explicit elements. 
exprSub(expression **al, int n=2)
Constructor. 
expression * simplify()
Simplification. 
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
virtual int Linearity()
Get a measure of "how linear" the expression is (see CouenneTypes.h) 
std::string printOp() const 
print operator 
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any) 
virtual void generateCuts(expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
Special version for linear constraints. 
CouNumber operator()()
Function for the evaluation of the difference. 
auxSign
"sign" of the constraint defining an auxiliary. 
expression ** clonearglist(Domain *d=NULL) const 
clone argument list (for use with clone method) 
expression * clone(Domain *d=NULL) const 
Cloning method. 
virtual exprAux * standardize(CouenneProblem *p, bool addAux=true)
Reduce expression in standard form, creating additional aux variables (and constraints) ...
Class for MINLP problems with symbolic information. 
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. 
expr_type
code returned by the method expression::code() 
virtual enum expr_type code()
Code for comparisons. 
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
Implied bound processing.