14 #include "CoinFinite.hpp"
15 #include "CoinHelperFunctions.hpp"
17 using namespace Couenne;
33 bool resL, resU = resL =
false;
94 bound = (k>0) ? wl : wu;
124 (ub > 0 || k > 0.) &&
135 if ((resL || resU) && xInt) {
142 return (resL || resU);
virtual bool isInteger()
is this expression integer?
bool updateBound(register int sign, register CouNumber *dst, register CouNumber src)
updates maximum violation.
virtual bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
implied bound processing
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
void setLower(ChangeStatus lower)
void setUpper(ChangeStatus upper)
virtual enum nodeType Type() const
Node type.
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
auxSign
"sign" of the constraint defining an auxiliary.
void invPowImplBounds(int, int, CouNumber *, CouNumber *, CouNumber, bool &, bool &, enum expression::auxSign)
set implied bounds for function w = x^k, k negative, integer or inverse integer, and odd ...
bool issignpower_
do we mean a signed power function: sign(arg0) * |arg0|^arg1 (assumes that arg1 is constant) ...
expression ** arglist_
argument list is an array of pointers to other expressions
double CouNumber
main number type in Couenne
CouNumber safe_pow(CouNumber base, CouNumber exponent, bool signpower=false)
compute power and check for integer-and-odd inverse exponent
virtual CouNumber Value() const
value (empty)