11 #ifndef COUENNE_EXPRSUM_H
12 #define COUENNE_EXPRSUM_H
109 std::vector <CouNumber> &xl,
110 std::vector <CouNumber> &xu,
111 std::vector <std::pair <int, CouNumber> > &nl,
112 std::vector <std::pair <int, CouNumber> > &
nu);
Cut Generator for linear convexifications.
virtual CouNumber operator()()
Function for the evaluation of the expression.
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
std::string printOp() const
Print operator.
exprSum(expression **=NULL, int=0)
Constructors, destructor.
virtual expression * differentiate(int index)
Differentiation.
auxSign
"sign" of the constraint defining an auxiliary.
exprAux * createQuadratic(CouenneProblem *)
Checks for quadratic terms in the expression and returns an exprQuad if there are enough to create so...
expression ** clonearglist(Domain *d=NULL) const
clone argument list (for use with clone method)
virtual void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
Class for MINLP problems with symbolic information.
virtual void generateCuts(expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
Special version for linear constraints.
virtual ~exprSum()
Empty destructor.
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()
int impliedBoundSum(CouNumber wl, CouNumber wu, std::vector< CouNumber > &xl, std::vector< CouNumber > &xu, std::vector< std::pair< int, CouNumber > > &nl, std::vector< std::pair< int, CouNumber > > &nu)
inferring bounds on factors of a product
virtual 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) ...
virtual bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
Implied bound.
virtual enum expr_type code()
Code for comparison.
virtual expression * simplify()
Simplification.
virtual int Linearity()
Get a measure of "how linear" the expression is:
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...