11 #ifndef COUENNE_EXPROPP_HPP 12 #define COUENNE_EXPROPP_HPP 44 void print (std::ostream &out,
expression * clone(Domain *d=NULL) const
cloning method
virtual void generateCuts(expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
special version for linear constraints
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
virtual enum expr_type code()
code for comparisons
unary_function F()
the operator's function
expr_type
code returned by the method expression::code()
bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
implied bound processing
CouNumber(* unary_function)(CouNumber)
unary function, used in all exprUnary
void print(std::ostream &out, bool descend) const
Output.
Cut Generator for linear convexifications.
auxSign
"sign" of the constraint defining an auxiliary.
double CouNumber
main number type in Couenne
expression class for unary functions (sin, log, etc.)
expression * differentiate(int index)
differentiation
bool isInteger()
is this expression integer?
virtual expression * simplify()
simplification
int Linearity()
get a measure of "how linear" the expression is (see CouenneTypes.h)
Class for MINLP problems with symbolic information.
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
exprOpp(expression *al)
Constructors, destructor.
expression * argument_
single argument taken by this expression
exprAux * standardize(CouenneProblem *, bool addAux=true)
standardization (to deal with complex arguments)
CouNumber gradientNorm(const double *x)
return l-2 norm of gradient at given point
status of lower/upper bound of a variable, to be checked/modified in bound tightening
CouNumber opp(register CouNumber arg)
operator opp: returns the opposite of a number
general include file for different compilers