10 #ifndef COUENNE_EXPRBINPROD_H
11 #define COUENNE_EXPRBINPROD_H
70 const OsiBranchingInformation *
info,
Cut Generator for linear convexifications.
virtual bool isCuttable(CouenneProblem *problem, int index) const
can this expression be further linearized or are we on its concave ("bad") side
void fint fint fint real fint real real real real real real real real real fint real fint fint fint real fint fint fint fint * info
OsiObject for auxiliary variables $w=f(x)$.
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
virtual void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
virtual enum expr_type code()
code for comparison
exprBinProd(expression **, int)
Constructor.
bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum Couenne::expression::auxSign=Couenne::expression::AUX_EQ)
implied bound processing
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
auxSign
"sign" of the constraint defining an auxiliary.
expression * differentiate(int index)
differentiation
Class for MINLP problems with symbolic information.
class for with all binary
virtual CouNumber selectBranch(const CouenneObject *obj, const OsiBranchingInformation *info, expression *&var, double *&brpts, double *&brDist, int &way)
set up branching object by evaluating many branching points for each expression's arguments ...
virtual void closestFeasible(expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
compute and for Violation Transfer algorithm
double CouNumber
main number type in Couenne
expression * simplify()
simplification
expr_type
code returned by the method expression::code()
CouNumber gradientNorm(const double *x)
return l-2 norm of gradient at given point
void fint fint fint real fint real real real real real real real real * w
virtual int Linearity()
get a measure of "how linear" the expression is:
virtual exprAux * standardize(CouenneProblem *p, bool addAux=true)
reduce expression in standard form, creating additional aux variables (and constraints) ...
CouNumber balancedMul(const OsiBranchingInformation *info, int index, int wind)
balanced strategy for branching point selection in products
void fint fint fint real fint real * x
class for multiplications,