16 #include "CoinFinite.hpp"
18 using namespace Couenne;
54 bool resU, resL = resU =
false;
79 return (resL || resU);
89 y = problem -> X (index);
91 return (y <=
exp (x));
bool updateBound(register int sign, register CouNumber *dst, register CouNumber src)
updates maximum violation.
virtual bool isInteger()
is this expression integer?
CouExpr & log(CouExpr &e)
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
void setLower(ChangeStatus lower)
expression * argument_
single argument taken by this expression
void setUpper(ChangeStatus upper)
virtual int Index() const
Return index of variable (only valid for exprVar and exprAux)
CouExpr & exp(CouExpr &e)
auxSign
"sign" of the constraint defining an auxiliary.
expression * differentiate(int index)
Differentiation.
exprExp(expression *al)
Constructor.
virtual bool isCuttable(CouenneProblem *problem, int index) const
can this expression be further linearized or are we on its concave ("bad") side
Class for MINLP problems with symbolic information.
expression clone (points to another expression)
double CouNumber
main number type in Couenne
void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
class for the exponential,
bool impliedBound(int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
Implied bound processing.
virtual bool isInteger()
is this expression integer?
void fint fint fint real fint real * x
class for multiplications,