10 #ifndef COUENNE_EXPRMULTILIN_H
11 #define COUENNE_EXPRMULTILIN_H
70 const OsiBranchingInformation *
info,
87 std::vector <CouNumber> &xl,
88 std::vector <CouNumber> &xu,
89 std::vector <std::pair <int, CouNumber> > &nl,
90 std::vector <std::pair <int, CouNumber> > &
nu);
Cut Generator for linear convexifications.
bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum Couenne::expression::auxSign=Couenne::expression::AUX_EQ)
implied bound processing
virtual 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 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 ...
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
CouNumber gradientNorm(const double *x)
return l-2 norm of gradient at given point
virtual int Linearity()
get a measure of "how linear" the expression is:
CouNumber balancedMul(const OsiBranchingInformation *info, int index, int wind)
balanced strategy for branching point selection in products
virtual void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
auxSign
"sign" of the constraint defining an auxiliary.
Class for MINLP problems with symbolic information.
virtual bool isCuttable(CouenneProblem *problem, int index) const
can this expression be further linearized or are we on its concave ("bad") side
double CouNumber
main number type in Couenne
virtual void closestFeasible(expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
compute and for Violation Transfer algorithm
expression * differentiate(int index)
differentiation
expr_type
code returned by the method expression::code()
int impliedBoundMul(CouNumber wl, CouNumber wu, std::vector< CouNumber > &xl, std::vector< CouNumber > &xu, std::vector< std::pair< int, CouNumber > > &nl, std::vector< std::pair< int, CouNumber > > &nu)
inferring bounds on factors of a product
exprMultiLin(expression **, int)
Constructor.
void fint fint fint real fint real real real real real real real real * w
another class for multiplications,
virtual enum expr_type code()
code for comparison
expression * simplify()
simplification
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 ...
void fint fint fint real fint real * x
class for multiplications,