variable-type operator More...
#include <CouenneExprVar.hpp>
Public Member Functions | |
virtual enum nodeType | Type () const |
Node type. More... | |
exprVar (int varIndex, Domain *d=NULL) | |
Constructor. More... | |
virtual | ~exprVar () |
destructor More... | |
exprVar (const exprVar &e, Domain *d=NULL) | |
Copy constructor. More... | |
virtual exprVar * | clone (Domain *d=NULL) const |
Cloning method. More... | |
int | Index () const |
Get variable index in problem. More... | |
virtual expression * | Lb () |
Get lower bound expression. More... | |
virtual expression * | Ub () |
Get upper bound expression. More... | |
virtual CouNumber & | lb () |
Get/set lower bound value. More... | |
virtual CouNumber & | ub () |
Get/set upper bound value. More... | |
virtual void | print (std::ostream &out=std::cout, bool=false) const |
print More... | |
virtual CouNumber | operator() () |
return the value of the variable More... | |
virtual CouNumber | gradientNorm (const double *x) |
return l-2 norm of gradient at given point More... | |
virtual expression * | differentiate (int index) |
differentiation More... | |
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 More... | |
virtual void | crossBounds () |
set bounds depending on both branching rules and propagated bounds. More... | |
virtual expression * | simplify () |
simplify More... | |
virtual int | Linearity () |
get a measure of "how linear" the expression is (see CouenneTypes.hpp) More... | |
virtual bool | isDefinedInteger () |
is this expression defined as an integer? More... | |
virtual bool | isInteger () |
is this variable integer? More... | |
virtual void | getBounds (expression *&, expression *&) |
Get expressions of lower and upper bound of an expression (if any) More... | |
virtual void | getBounds (CouNumber &lb, CouNumber &ub) |
Get value of lower and upper bound of an expression (if any) More... | |
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) More... | |
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 More... | |
virtual enum expr_type | code () |
code for comparison More... | |
virtual bool | impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ) |
implied bound processing More... | |
virtual int | rank () |
rank of an original variable is always one More... | |
virtual void | fillDepSet (std::set< DepNode *, compNode > *, DepGraph *) |
update dependence set with index of this variable More... | |
virtual bool | isFixed () |
is this variable fixed? More... | |
virtual void | linkDomain (Domain *d) |
link this variable to a domain More... | |
virtual Domain * | domain () |
return pointer to variable domain More... | |
virtual void | decreaseMult () |
virtual void | zeroMult () |
Disable variable (empty for compatibility with exprAux) More... | |
virtual void | setInteger (bool value) |
Set this variable as integer (empty for compatibility with exprAux) More... | |
virtual enum convexity | convexity () const |
either CONVEX, CONCAVE, AFFINE, or NONCONVEX More... | |
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) More... | |
virtual enum auxSign | sign () const |
return its sign in the definition constraint More... | |
![]() | |
expression () | |
Constructor. More... | |
expression (const expression &e, Domain *d=NULL) | |
Copy constructor. More... | |
virtual | ~expression () |
Destructor. More... | |
virtual int | nArgs () const |
return number of arguments (when applicable, that is, with N-ary functions) More... | |
virtual expression ** | ArgList () const |
return arglist (when applicable, that is, with N-ary functions) More... | |
virtual void | ArgList (expression **al) |
set arglist (used in deleting nodes without deleting children) More... | |
virtual expression * | Argument () const |
return argument (when applicable, i.e., with univariate functions) More... | |
virtual expression ** | ArgPtr () |
return pointer to argument (when applicable, i.e., with univariate functions) More... | |
virtual expression * | Image () const |
return pointer to corresponding expression (for auxiliary variables only) More... | |
virtual void | Image (expression *image) |
set expression associated with this auxiliary variable (for compatibility with exprAux) More... | |
virtual CouNumber | Value () const |
value (empty) More... | |
virtual const expression * | Original () const |
If this is an exprClone of a exprClone of an expr???, point to the original expr??? instead of an exprClone – improve computing efficiency. More... | |
virtual int | dependsOn (int *ind, int n, enum dig_type type=STOP_AT_AUX) |
dependence on variable set: return cardinality of subset of the set of indices in first argument which occur in expression. More... | |
int | dependsOn (int singleton, enum dig_type type=STOP_AT_AUX) |
version with one index only More... | |
virtual exprAux * | standardize (CouenneProblem *p, bool addAux=true) |
Create standard form of this expression, by: More... | |
virtual int | compare (expression &) |
compare expressions More... | |
virtual int | compare (exprCopy &) |
compare copies of expressions More... | |
virtual int | Multiplicity () |
multiplicity of a variable More... | |
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. More... | |
virtual void | replace (exprVar *, exprVar *) |
replace expression with another More... | |
virtual void | realign (const CouenneProblem *p) |
empty function to redirect variables to proper variable vector More... | |
virtual bool | isBijective () const |
indicating if function is monotonically increasing More... | |
virtual CouNumber | inverse (expression *vardep) const |
compute the inverse function More... | |
virtual void | closestFeasible (expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const |
closest feasible points in function in both directions More... | |
virtual bool | isCuttable (CouenneProblem *problem, int index) const |
can this expression be further linearized or are we on its concave ("bad") side More... | |
virtual bool | isaCopy () const |
return true if this is a copy of something (i.e. an exprCopy) More... | |
virtual expression * | Copy () const |
return copy of this expression (only makes sense in exprCopy) More... | |
Protected Attributes | |
int | varIndex_ |
The index of the variable. More... | |
Domain * | domain_ |
Pointer to a descriptor of the current point/bounds. More... | |
Additional Inherited Members | |
![]() | |
enum | auxSign { AUX_UNDEF =-2, AUX_LEQ =-1, AUX_EQ, AUX_GEQ } |
"sign" of the constraint defining an auxiliary. More... | |
variable-type operator
All variables of the expression must be objects of this class or of the derived exprAux class
Definition at line 45 of file CouenneExprVar.hpp.
Constructor.
Definition at line 59 of file CouenneExprVar.hpp.
|
inlinevirtual |
destructor
Definition at line 64 of file CouenneExprVar.hpp.
Copy constructor.
Definition at line 67 of file CouenneExprVar.hpp.
|
inlinevirtual |
Node type.
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprLowerBound, Couenne::exprUpperBound, and Couenne::exprAux.
Definition at line 55 of file CouenneExprVar.hpp.
Cloning method.
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprUpperBound, Couenne::exprAux, Couenne::exprLowerBound, and Couenne::exprIVar.
Definition at line 72 of file CouenneExprVar.hpp.
|
inlinevirtual |
Get variable index in problem.
Reimplemented from Couenne::expression.
Definition at line 76 of file CouenneExprVar.hpp.
|
virtual |
Get lower bound expression.
lower bound
Reimplemented in Couenne::exprAux.
Definition at line 65 of file exprVar.cpp.
|
virtual |
Get upper bound expression.
upper bound
Reimplemented in Couenne::exprAux.
Definition at line 66 of file exprVar.cpp.
|
inlinevirtual |
Get/set lower bound value.
Definition at line 84 of file CouenneExprVar.hpp.
|
inlinevirtual |
Get/set upper bound value.
Definition at line 85 of file CouenneExprVar.hpp.
|
inlinevirtual |
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprUpperBound, Couenne::exprAux, Couenne::exprLowerBound, and Couenne::exprIVar.
Definition at line 88 of file CouenneExprVar.hpp.
|
inlinevirtual |
return the value of the variable
Implements Couenne::expression.
Reimplemented in Couenne::exprUpperBound, Couenne::exprAux, and Couenne::exprLowerBound.
Definition at line 93 of file CouenneExprVar.hpp.
|
inlinevirtual |
return l-2 norm of gradient at given point
Reimplemented from Couenne::expression.
Definition at line 97 of file CouenneExprVar.hpp.
|
inlinevirtual |
differentiation
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprUpperBound, and Couenne::exprLowerBound.
Definition at line 101 of file CouenneExprVar.hpp.
|
inlinevirtual |
fill in the set with all indices of variables appearing in the expression
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 106 of file CouenneExprVar.hpp.
|
inlinevirtual |
set bounds depending on both branching rules and propagated bounds.
To be used after standardization
Reimplemented in Couenne::exprAux.
Definition at line 118 of file CouenneExprVar.hpp.
|
inlinevirtual |
simplify
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 121 of file CouenneExprVar.hpp.
|
inlinevirtual |
get a measure of "how linear" the expression is (see CouenneTypes.hpp)
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprUpperBound, Couenne::exprAux, and Couenne::exprLowerBound.
Definition at line 125 of file CouenneExprVar.hpp.
|
inlinevirtual |
is this expression defined as an integer?
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, and Couenne::exprIVar.
Definition at line 129 of file CouenneExprVar.hpp.
|
inlinevirtual |
is this variable integer?
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux, and Couenne::exprIVar.
Definition at line 133 of file CouenneExprVar.hpp.
|
virtual |
Get expressions of lower and upper bound of an expression (if any)
Reimplemented from Couenne::expression.
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.
|
inlinevirtual |
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 156 of file CouenneExprVar.hpp.
|
virtual |
generate convexification cut for constraint w = this
Reimplemented from Couenne::expression.
Definition at line 38 of file exprVar.cpp.
|
inlinevirtual |
code for comparison
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprUpperBound, and Couenne::exprLowerBound.
Definition at line 171 of file CouenneExprVar.hpp.
|
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.
|
inlinevirtual |
rank of an original variable is always one
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 178 of file CouenneExprVar.hpp.
update dependence set with index of this variable
Reimplemented from Couenne::expression.
Definition at line 61 of file exprVar.cpp.
|
inlinevirtual |
is this variable fixed?
Definition at line 185 of file CouenneExprVar.hpp.
link this variable to a domain
Reimplemented from Couenne::expression.
Reimplemented in Couenne::exprAux.
Definition at line 189 of file CouenneExprVar.hpp.
|
inlinevirtual |
return pointer to variable domain
Definition at line 193 of file CouenneExprVar.hpp.
|
inlinevirtual |
Reimplemented in Couenne::exprAux.
Definition at line 197 of file CouenneExprVar.hpp.
|
inlinevirtual |
Disable variable (empty for compatibility with exprAux)
Reimplemented in Couenne::exprAux.
Definition at line 200 of file CouenneExprVar.hpp.
|
inlinevirtual |
Set this variable as integer (empty for compatibility with exprAux)
Reimplemented in Couenne::exprAux.
Definition at line 203 of file CouenneExprVar.hpp.
|
inlinevirtual |
either CONVEX, CONCAVE, AFFINE, or NONCONVEX
Reimplemented from Couenne::expression.
Definition at line 206 of file CouenneExprVar.hpp.
|
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.
|
inlinevirtual |
return its sign in the definition constraint
Reimplemented in Couenne::exprAux.
Definition at line 217 of file CouenneExprVar.hpp.
|
protected |
The index of the variable.
Definition at line 49 of file CouenneExprVar.hpp.
|
protected |
Pointer to a descriptor of the current point/bounds.
Definition at line 50 of file CouenneExprVar.hpp.