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.