21 using namespace Couenne;
28 if (!(cg -> isFirst ()))
32 int *index =
new int [
nargs_ + 1];
33 OsiRowCut *cut =
new OsiRowCut;
53 if (wind < 0 && !uselessAux) {
54 coeff [0] = -1.; index [0] = w ->
Index ();
63 for (
int i=0; i<
nargs_; i++) {
78 cut -> setRow (nv, index, coeff);
83 enum auxSign sign = cg -> Problem () -> Var (w ->
Index ()) -> sign ();
89 cut -> setGloballyValid ();
Cut Generator for linear convexifications.
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
virtual enum nodeType Type() const
Node type.
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
auxSign
"sign" of the constraint defining an auxiliary.
virtual void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
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 ** 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)
void fint fint fint real fint real real real real real real real real * w
virtual CouNumber Value() const
value (empty)