28 using namespace Couenne;
71 #define MIN_DENOMINATOR 1e-6
89 int wi = aux ->
Index (),
98 enum auxSign sign = cg -> Problem () -> Var (wi) -> sign ();
104 cg -> createCut (cs, 2/x0, sign, wi, 1., xi, 1/(x0*x0));
120 int ns = cg -> nSamples ();
132 (cs, (l > 0) ? +1 : -1,
Cut Generator for linear convexifications.
CouNumber powNewton(CouNumber xc, CouNumber yc, unary_function f, unary_function fp, unary_function fpp)
find proper tangent point to add deepest tangent cut
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
exprInv(expression *al)
Constructors, destructor.
CouNumber oppInvSqr(register CouNumber x)
derivative of inv (x)
CouNumber inv_dblprime(register CouNumber x)
inv_dblprime, second derivative of inv (x)
expression * argument_
single argument taken by this expression
CouNumber inv(register CouNumber arg)
the operator itself
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
auxSign
"sign" of the constraint defining an auxiliary.
expression clone (points to another expression)
double CouNumber
main number type in Couenne
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)