20 using namespace Couenne;
38 printf (
"#### invalid index for exprOpp::gencuts()\n");
42 OsiColCut *cut =
new OsiColCut;
45 &xlb = cg -> Problem () -> Lb (xind),
46 &xub = cg -> Problem () -> Ub (xind);
48 if (-ub > xlb) xlb = -ub;
49 if (-lb < xub) xub = -lb;
51 cut -> setLbs (1, &xind, &xlb);
52 cut -> setUbs (1, &xind, &xub);
60 if (cg -> isFirst ()) {
62 int wi = w ->
Index ();
63 cg -> createCut (cs, 0., cg -> Problem () -> Var (wi) -> sign (), wi, 1.,
argument_->
Index (), 1.);
Cut Generator for linear convexifications.
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
virtual void generateCuts(expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
special version for linear constraints
expression * argument_
single argument taken by this expression
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
double CouNumber
main number type in Couenne
void fint fint fint real fint real real real real real real real real * w