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