variable-type operator More...
#include <CouenneExprVar.hpp>
Public Member Functions | |
virtual enum nodeType | Type () const |
Node type. | |
exprVar (int varIndex, Domain *d=NULL) | |
Constructor. | |
virtual | ~exprVar () |
destructor | |
exprVar (const exprVar &e, Domain *d=NULL) | |
Copy constructor. | |
virtual exprVar * | clone (Domain *d=NULL) const |
Cloning method. | |
int | Index () const |
Get variable index in problem. | |
virtual expression * | Lb () |
Get lower bound expression. | |
virtual expression * | Ub () |
Get upper bound expression. | |
virtual CouNumber & | lb () |
Get/set lower bound value. | |
virtual CouNumber & | ub () |
Get/set upper bound value. | |
virtual void | print (std::ostream &out=std::cout, bool=false) const |
print | |
virtual CouNumber | operator() () |
return the value of the variable | |
virtual CouNumber | gradientNorm (const double *x) |
return l-2 norm of gradient at given point | |
virtual expression * | differentiate (int index) |
differentiation | |
virtual int | DepList (std::set< int > &deplist, enum dig_type type=ORIG_ONLY) |
fill in the set with all indices of variables appearing in the expression | |
virtual void | crossBounds () |
set bounds depending on both branching rules and propagated bounds. | |
virtual expression * | simplify () |
simplify | |
virtual int | Linearity () |
get a measure of "how linear" the expression is (see CouenneTypes.hpp) | |
virtual bool | isDefinedInteger () |
is this expression defined as an integer? | |
virtual bool | isInteger () |
is this variable integer? | |
virtual void | getBounds (expression *&, expression *&) |
Get expressions of lower and upper bound of an expression (if any). | |
virtual void | getBounds (CouNumber &lb, CouNumber &ub) |
Get value of lower and upper bound of an expression (if any). | |
virtual void | generateCuts (OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY) |
Get values of lower and upper bound of an expression (if any). | |
virtual void | generateCuts (expression *w, OsiCuts &cs, const CouenneCutGenerator *cg, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY) |
generate convexification cut for constraint w = this | |
virtual enum expr_type | code () |
code for comparison | |
virtual bool | impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ) |
implied bound processing | |
virtual int | rank () |
rank of an original variable is always one | |
virtual void | fillDepSet (std::set< DepNode *, compNode > *, DepGraph *) |
update dependence set with index of this variable | |
virtual bool | isFixed () |
is this variable fixed? | |
virtual void | linkDomain (Domain *d) |
link this variable to a domain | |
virtual Domain * | domain () |
return pointer to variable domain | |
virtual void | decreaseMult () |
virtual void | zeroMult () |
Disable variable (empty for compatibility with exprAux). | |
virtual void | setInteger (bool value) |
Set this variable as integer (empty for compatibility with exprAux). | |
virtual enum convexity | convexity () const |
either CONVEX, CONCAVE, AFFINE, or NONCONVEX | |
virtual CouenneObject * | properObject (CouenneCutGenerator *c, CouenneProblem *p, Bonmin::BabSetupBase *base, JnlstPtr jnlst_) |
return proper object to handle expression associated with this variable (NULL if this is not an auxiliary) | |
virtual enum auxSign | sign () const |
return its sign in the definition constraint | |
Protected Attributes | |
int | varIndex_ |
The index of the variable. | |
Domain * | domain_ |
Pointer to a descriptor of the current point/bounds. |
variable-type operator
All variables of the expression must be objects of this class or of the derived exprAux class
Definition at line 46 of file CouenneExprVar.hpp.
Couenne::exprVar::exprVar | ( | int | varIndex, | |
Domain * | d = NULL | |||
) | [inline] |
Constructor.
Definition at line 60 of file CouenneExprVar.hpp.
virtual Couenne::exprVar::~exprVar | ( | ) | [inline, virtual] |
destructor
Definition at line 65 of file CouenneExprVar.hpp.
Copy constructor.
Definition at line 68 of file CouenneExprVar.hpp.
virtual enum nodeType Couenne::exprVar::Type | ( | ) | const [inline, virtual] |
Node type.
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, Couenne::exprLowerBound, and Couenne::exprUpperBound.
Definition at line 56 of file CouenneExprVar.hpp.
Cloning method.
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, Couenne::exprLowerBound, Couenne::exprUpperBound, and Couenne::exprIVar.
Definition at line 73 of file CouenneExprVar.hpp.
int Couenne::exprVar::Index | ( | ) | const [inline, virtual] |
Get variable index in problem.
Reimplemented from Couenne::expression.
Definition at line 77 of file CouenneExprVar.hpp.
expression * exprVar::Lb | ( | ) | [virtual] |
Get lower bound expression.
lower bound
Reimplemented in Couenne::exprAux.
Definition at line 65 of file exprVar.cpp.
expression * exprVar::Ub | ( | ) | [virtual] |
Get upper bound expression.
upper bound
Reimplemented in Couenne::exprAux.
Definition at line 66 of file exprVar.cpp.
virtual CouNumber& Couenne::exprVar::lb | ( | ) | [inline, virtual] |
Get/set lower bound value.
Definition at line 85 of file CouenneExprVar.hpp.
virtual CouNumber& Couenne::exprVar::ub | ( | ) | [inline, virtual] |
Get/set upper bound value.
Definition at line 86 of file CouenneExprVar.hpp.
virtual void Couenne::exprVar::print | ( | std::ostream & | out = std::cout , |
|
bool | = false | |||
) | const [inline, virtual] |
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, Couenne::exprLowerBound, Couenne::exprUpperBound, and Couenne::exprIVar.
Definition at line 89 of file CouenneExprVar.hpp.
virtual CouNumber Couenne::exprVar::operator() | ( | ) | [inline, virtual] |
return the value of the variable
Implements Couenne::expression.
Reimplemented in Couenne::exprAux, Couenne::exprLowerBound, and Couenne::exprUpperBound.
Definition at line 94 of file CouenneExprVar.hpp.
virtual CouNumber Couenne::exprVar::gradientNorm | ( | const double * | x | ) | [inline, virtual] |
return l-2 norm of gradient at given point
Reimplemented from Couenne::expression.
Definition at line 98 of file CouenneExprVar.hpp.
virtual expression* Couenne::exprVar::differentiate | ( | int | index | ) | [inline, virtual] |
differentiation
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprLowerBound, and Couenne::exprUpperBound.
Definition at line 102 of file CouenneExprVar.hpp.
virtual int Couenne::exprVar::DepList | ( | std::set< int > & | deplist, | |
enum dig_type | type = ORIG_ONLY | |||
) | [inline, virtual] |
fill in the set with all indices of variables appearing in the expression
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 107 of file CouenneExprVar.hpp.
virtual void Couenne::exprVar::crossBounds | ( | ) | [inline, virtual] |
set bounds depending on both branching rules and propagated bounds.
To be used after standardization
Reimplemented in Couenne::exprAux.
Definition at line 119 of file CouenneExprVar.hpp.
virtual expression* Couenne::exprVar::simplify | ( | ) | [inline, virtual] |
simplify
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 122 of file CouenneExprVar.hpp.
virtual int Couenne::exprVar::Linearity | ( | ) | [inline, virtual] |
get a measure of "how linear" the expression is (see CouenneTypes.hpp)
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, Couenne::exprLowerBound, and Couenne::exprUpperBound.
Definition at line 126 of file CouenneExprVar.hpp.
virtual bool Couenne::exprVar::isDefinedInteger | ( | ) | [inline, virtual] |
is this expression defined as an integer?
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, and Couenne::exprIVar.
Definition at line 130 of file CouenneExprVar.hpp.
virtual bool Couenne::exprVar::isInteger | ( | ) | [inline, virtual] |
is this variable integer?
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, and Couenne::exprIVar.
Definition at line 134 of file CouenneExprVar.hpp.
void exprVar::getBounds | ( | expression *& | lb, | |
expression *& | ub | |||
) | [virtual] |
Get expressions of lower and upper bound of an expression (if any).
Definition at line 22 of file exprVar.cpp.
Get value of lower and upper bound of an expression (if any).
Reimplemented from Couenne::expression.
Definition at line 30 of file exprVar.cpp.
virtual void Couenne::exprVar::generateCuts | ( | OsiCuts & | , | |
const CouenneCutGenerator * | , | |||
t_chg_bounds * | = NULL , |
|||
int | = -1 , |
|||
CouNumber | = -COUENNE_INFINITY , |
|||
CouNumber | = COUENNE_INFINITY | |||
) | [inline, virtual] |
Get values of lower and upper bound of an expression (if any).
generate cuts for expression associated with this auxiliary
Reimplemented in Couenne::exprAux.
Definition at line 157 of file CouenneExprVar.hpp.
void exprVar::generateCuts | ( | expression * | w, | |
OsiCuts & | cs, | |||
const CouenneCutGenerator * | cg, | |||
t_chg_bounds * | chg = NULL , |
|||
int | = -1 , |
|||
CouNumber | = -COUENNE_INFINITY , |
|||
CouNumber | = COUENNE_INFINITY | |||
) | [virtual] |
generate convexification cut for constraint w = this
Definition at line 38 of file exprVar.cpp.
virtual enum expr_type Couenne::exprVar::code | ( | ) | [inline, virtual] |
code for comparison
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprLowerBound, and Couenne::exprUpperBound.
Definition at line 172 of file CouenneExprVar.hpp.
bool exprVar::impliedBound | ( | int | wind, | |
CouNumber * | l, | |||
CouNumber * | u, | |||
t_chg_bounds * | chg, | |||
enum auxSign | sign = expression::AUX_EQ | |||
) | [virtual] |
implied bound processing
implied bound processing.
Expression w = x, upon change in lower or upper bound of w, whose index is wind
Reimplemented from Couenne::expression.
Definition at line 49 of file exprVar.cpp.
virtual int Couenne::exprVar::rank | ( | ) | [inline, virtual] |
rank of an original variable is always one
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 179 of file CouenneExprVar.hpp.
update dependence set with index of this variable
Reimplemented from Couenne::expression.
Definition at line 61 of file exprVar.cpp.
virtual bool Couenne::exprVar::isFixed | ( | ) | [inline, virtual] |
is this variable fixed?
Definition at line 186 of file CouenneExprVar.hpp.
virtual void Couenne::exprVar::linkDomain | ( | Domain * | d | ) | [inline, virtual] |
link this variable to a domain
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 190 of file CouenneExprVar.hpp.
virtual Domain* Couenne::exprVar::domain | ( | ) | [inline, virtual] |
return pointer to variable domain
Definition at line 194 of file CouenneExprVar.hpp.
virtual void Couenne::exprVar::decreaseMult | ( | ) | [inline, virtual] |
Reimplemented in Couenne::exprAux.
Definition at line 198 of file CouenneExprVar.hpp.
virtual void Couenne::exprVar::zeroMult | ( | ) | [inline, virtual] |
Disable variable (empty for compatibility with exprAux).
Reimplemented in Couenne::exprAux.
Definition at line 201 of file CouenneExprVar.hpp.
virtual void Couenne::exprVar::setInteger | ( | bool | value | ) | [inline, virtual] |
Set this variable as integer (empty for compatibility with exprAux).
Reimplemented in Couenne::exprAux.
Definition at line 204 of file CouenneExprVar.hpp.
virtual enum convexity Couenne::exprVar::convexity | ( | ) | const [inline, virtual] |
either CONVEX, CONCAVE, AFFINE, or NONCONVEX
Reimplemented from Couenne::expression.
Definition at line 207 of file CouenneExprVar.hpp.
CouenneObject * exprVar::properObject | ( | CouenneCutGenerator * | c, | |
CouenneProblem * | p, | |||
Bonmin::BabSetupBase * | base, | |||
JnlstPtr | jnlst_ | |||
) | [virtual] |
return proper object to handle expression associated with this variable (NULL if this is not an auxiliary)
Reimplemented in Couenne::exprAux.
Definition at line 71 of file exprVar.cpp.
virtual enum auxSign Couenne::exprVar::sign | ( | ) | const [inline, virtual] |
return its sign in the definition constraint
Reimplemented in Couenne::exprAux.
Definition at line 218 of file CouenneExprVar.hpp.
int Couenne::exprVar::varIndex_ [protected] |
The index of the variable.
Definition at line 50 of file CouenneExprVar.hpp.
Domain* Couenne::exprVar::domain_ [protected] |
Pointer to a descriptor of the current point/bounds.
Definition at line 51 of file CouenneExprVar.hpp.