11#ifndef COUENNE_EXPRMIN_H
12#define COUENNE_EXPRMIN_H
99 for (
int ind = 2; ind <
nargs_; ind += 2) {
103 if (val < best_val) {
109 return (*(
arglist_ [best_ind + 1])) ();
Cut Generator for linear convexifications.
Class for MINLP problems with symbolic information.
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
std::string printOp() const
Print operator.
virtual int Linearity()
get a measure of "how linear" the expression is (see CouenneTypes.h)
CouNumber operator()()
Function for the evaluation of the expression.
enum pos printPos() const
Print operator.
expression * simplify()
Simplification.
exprMin(expression *el0, expression *el1)
Constructor with only two arguments.
virtual enum expr_type code()
Code for comparisons.
exprMin(expression **al, int n)
Constructor.
expression * differentiate(int)
Differentiation.
virtual exprAux * standardize(CouenneProblem *, bool addAux=true)
Reduce expression in standard form, creating additional aux variables (and constraints)
exprMin * clone(Domain *d=NULL) const
Cloning method.
void generateCuts(expression *w, OsiCuts &cs, const CouenneCutGenerator *cg, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
Generate equality between *this and *w.
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
general n-ary operator-type expression: requires argument list.
int nargs_
number of arguments (cardinality of arglist)
expression ** arglist_
argument list is an array of pointers to other expressions
expression ** clonearglist(Domain *d=NULL) const
clone argument list (for use with clone method)
storage class for previously evaluated expressions
status of lower/upper bound of a variable, to be checked/modified in bound tightening
general include file for different compilers
pos
position where the operator should be printed when printing the expression
double CouNumber
main number type in Couenne
expr_type
code returned by the method expression::code()