Go to the documentation of this file.
11 #ifndef COUENNE_EXPRCOS_HPP
12 #define COUENNE_EXPRCOS_HPP
status of lower/upper bound of a variable, to be checked/modified in bound tightening
CouNumber(* unary_function)(CouNumber)
unary function, used in all exprUnary
CouExpr & sin(CouExpr &e)
virtual void closestFeasible(expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
closest feasible points in function in both directions
std::string printOp() const
print operator
expression * argument_
single argument taken by this expression
expr_type
code returned by the method expression::code()
exprCos(expression *al)
constructor, destructor
expression class for unary functions (sin, log, etc.)
virtual bool isInteger()
is this expression integer?
Cut Generator for linear convexifications.
virtual enum expr_type code()
code for comparisons
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
general include file for different compilers
bool trigImpliedBound(enum cou_trig, int, int, CouNumber *, CouNumber *, t_chg_bounds *)
generalized implied bound procedure for sine/cosine
OsiObject for auxiliary variables $w=f(x)$.
bool impliedBound(int index, CouNumber *l, CouNumber *u, t_chg_bounds *chg, enum auxSign=expression::AUX_EQ)
implied bound processing
double CouNumber
main number type in Couenne
CouNumber trigNewton(CouNumber, CouNumber, CouNumber)
common convexification method used by both cos and sin
auxSign
"sign" of the constraint defining an auxiliary.
CouNumber trigSelBranch(const CouenneObject *obj, const OsiBranchingInformation *info, expression *&var, double *&brpts, double *&brDist, int &way, enum cou_trig type)
generalized procedure for both sine and cosine
expression * differentiate(int index)
obtain derivative of expression
void getBounds(CouNumber &lb, CouNumber &ub)
Get value of lower and upper bound of an expression.
CouExpr & cos(CouExpr &e)
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.
unary_function F()
the operator itself (e.g. sin, log...)
CouNumber gradientNorm(const double *x)
return l-2 norm of gradient at given point
expression * clone(Domain *d=NULL) const
cloning method
virtual bool isCuttable(CouenneProblem *problem, int index) const
can this expression be further linearized or are we on its concave ("bad") side
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
Class for MINLP problems with symbolic information.
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...