11 #ifndef COUENNE_EXPRODDPOW_HPP 12 #define COUENNE_EXPRODDPOW_HPP virtual enum expr_type code()
code for comparison
bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
implied bound processing
expression ** arglist_
argument list is an array of pointers to other expressions
expr_type
code returned by the method expression::code()
expression * getFixVar()
return an index to the variable's argument that is better fixed in a branching rule for solving a non...
virtual bool isCuttable(CouenneProblem *problem, int index) const
can this expression be further linearized or are we on its concave ("bad") side
Cut Generator for linear convexifications.
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
auxSign
"sign" of the constraint defining an auxiliary.
CouNumber operator()()
function for the evaluation of the expression
int nargs_
number of arguments (cardinality of arglist)
general n-ary operator-type expression: requires argument list.
double CouNumber
main number type in Couenne
Class for MINLP problems with symbolic information.
expression ** clonearglist(Domain *d=NULL) const
clone argument list (for use with clone method)
exprAux * standardize(CouenneProblem *p, bool addAux=true)
reduce expression in standard form, creating additional aux variables (and constraints)
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
std::string printOp() const
print operator
Power of an expression (binary operator), with constant.
CouNumber safe_pow(CouNumber base, CouNumber exponent, bool signpower=false)
compute power and check for integer-and-odd inverse exponent
exprOddPow(expression **al, int n=2)
Constructor.
OsiObject for auxiliary variables $w=f(x)$.
Power of an expression (binary operator), with constant.
exprOddPow(expression *arg0, expression *arg1)
Constructor with only two arguments.
status of lower/upper bound of a variable, to be checked/modified in bound tightening
expression * clone(Domain *d=NULL) const
cloning method
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
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
general include file for different compilers