11 #ifndef COUENNE_EXPRCEIL_HPP
12 #define COUENNE_EXPRCEIL_HPP
76 const OsiBranchingInformation *
info,
Cut Generator for linear convexifications.
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)$.
exprCeil(expression *arg)
constructor, destructor
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
expression * argument_
single argument taken by this expression
expression * differentiate(int index)
obtain derivative of expression
expression class for unary functions (sin, log, etc.)
bool impliedBound(int index, CouNumber *l, CouNumber *u, t_chg_bounds *chg, enum auxSign=expression::AUX_EQ)
implied bound processing
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
virtual bool isCuttable(CouenneProblem *problem, int index) const
can this expression be further linearized or are we on its concave ("bad") side?
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
auxSign
"sign" of the constraint defining an auxiliary.
CouNumber(* unary_function)(CouNumber)
unary function, used in all exprUnary
Class for MINLP problems with symbolic information.
unary_function F()
the operator itself (e.g. sin, log...)
std::string printOp() const
print operator
virtual void closestFeasible(expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
closest feasible points in function in both directions
CouNumber gradientNorm(const double *x)
return l-2 norm of gradient at given point
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
expr_type
code returned by the method expression::code()
expression * clone(Domain *d=NULL) const
cloning method
virtual enum expr_type code()
code for comparisons
void fint fint fint real fint real real real real real real real real * w
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...
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
void fint fint fint real fint real * x