21 using namespace Couenne;
27 return (addAux ? (p -> addAuxiliary (
this)) :
new exprAux (
this, p -> domain ()));
45 bool cLW, cRW, cLY, cRY =
46 cLW = cRW = cLY =
true;
48 if (!(cg -> isFirst ()) && chg) {
63 enum auxSign sign = cg -> Problem () -> Var (wi) -> sign ();
70 cg -> createCut (cs, 0., sign, wi, 1., xi, -1./k);
77 if (lbw > wl) wl = lbw;
78 if (ubw < wu) wu = ubw;
90 if (sign==
expression::AUX_EQ || (yl > 0.)) cg -> createCut (cs, 0., sign, yi, k, xi, -1.);
91 else cg -> createCut (cs, 0., sign, yi, -k, xi, 1.);
118 ineqFullOrthantF ? -COIN_DBL_MAX : xl,
119 ineqFullOrthantB ? COIN_DBL_MAX : xu,
Cut Generator for linear convexifications.
void unifiedProdCuts(const CouenneCutGenerator *, OsiCuts &, int, CouNumber, CouNumber, CouNumber, int, CouNumber, CouNumber, CouNumber, int, CouNumber, CouNumber, CouNumber, t_chg_bounds *, enum expression::auxSign)
unified convexification of products and divisions
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
const char & lower() const
virtual exprAux * standardize(CouenneProblem *, bool addAux=true)
generate auxiliary variable
const char & upper() const
void getBounds(expression *&lb, expression *&ub)
Get lower and upper bound of an expression (if any)
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
auxSign
"sign" of the constraint defining an auxiliary.
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
exprAux * standardize(CouenneProblem *p, bool addAux=true)
Reduce expression in standard form, creating additional aux variables (and constraints) ...
void fint fint fint real fint real real real real real real real real * w
void fint fint fint real fint real * x
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.