Couenne::exprVar Class Reference

variable-type operator More...

#include <CouenneExprVar.hpp>

Inheritance diagram for Couenne::exprVar:
Couenne::expression Couenne::exprAux Couenne::exprIVar Couenne::exprLowerBound Couenne::exprUpperBound

List of all members.

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 exprVarclone (Domain *d=NULL) const
 Cloning method.
int Index () const
 Get variable index in problem.
virtual expressionLb ()
 Get lower bound expression.
virtual expressionUb ()
 Get upper bound expression.
virtual CouNumberlb ()
 Get/set lower bound value.
virtual CouNumberub ()
 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 expressiondifferentiate (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 expressionsimplify ()
 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 Domaindomain ()
 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 CouenneObjectproperObject (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.
Domaindomain_
 Pointer to a descriptor of the current point/bounds.

Detailed Description

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 & Destructor Documentation

Couenne::exprVar::exprVar ( int  varIndex,
Domain d = NULL 
) [inline]

Constructor.

Definition at line 59 of file CouenneExprVar.hpp.

Referenced by clone().

virtual Couenne::exprVar::~exprVar (  )  [inline, virtual]

destructor

Definition at line 64 of file CouenneExprVar.hpp.

Couenne::exprVar::exprVar ( const exprVar e,
Domain d = NULL 
) [inline]

Copy constructor.

Definition at line 67 of file CouenneExprVar.hpp.


Member Function Documentation

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 55 of file CouenneExprVar.hpp.

References Couenne::VAR.

virtual exprVar* Couenne::exprVar::clone ( Domain d = NULL  )  const [inline, virtual]

Cloning method.

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprAux, Couenne::exprLowerBound, Couenne::exprUpperBound, and Couenne::exprIVar.

Definition at line 72 of file CouenneExprVar.hpp.

References exprVar().

int Couenne::exprVar::Index (  )  const [inline, virtual]

Get variable index in problem.

Reimplemented from Couenne::expression.

Definition at line 76 of file CouenneExprVar.hpp.

References varIndex_.

virtual expression* Couenne::exprVar::Lb (  )  [virtual]

Get lower bound expression.

Reimplemented in Couenne::exprAux.

virtual expression* Couenne::exprVar::Ub (  )  [virtual]

Get upper bound expression.

Reimplemented in Couenne::exprAux.

virtual CouNumber& Couenne::exprVar::lb (  )  [inline, virtual]

Get/set lower bound value.

Definition at line 84 of file CouenneExprVar.hpp.

References domain_, lb(), and varIndex_.

Referenced by isFixed(), isInteger(), Couenne::exprAux::isInteger(), lb(), and Couenne::exprLowerBound::operator()().

virtual CouNumber& Couenne::exprVar::ub (  )  [inline, virtual]

Get/set upper bound value.

Definition at line 85 of file CouenneExprVar.hpp.

References domain_, ub(), and varIndex_.

Referenced by isFixed(), isInteger(), Couenne::exprAux::isInteger(), Couenne::exprUpperBound::operator()(), and ub().

virtual void Couenne::exprVar::print ( std::ostream &  out = std::cout,
bool  = false 
) const [inline, virtual]

print

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprAux, Couenne::exprLowerBound, Couenne::exprUpperBound, and Couenne::exprIVar.

Definition at line 88 of file CouenneExprVar.hpp.

References varIndex_.

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 93 of file CouenneExprVar.hpp.

References domain_, and varIndex_.

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 97 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 101 of file CouenneExprVar.hpp.

References varIndex_.

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 106 of file CouenneExprVar.hpp.

References varIndex_.

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 118 of file CouenneExprVar.hpp.

virtual expression* Couenne::exprVar::simplify (  )  [inline, virtual]

simplify

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprAux.

Definition at line 121 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 125 of file CouenneExprVar.hpp.

References Couenne::LINEAR.

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 129 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 133 of file CouenneExprVar.hpp.

References COUENNE_round, domain_, lb(), ub(), and varIndex_.

virtual void Couenne::exprVar::getBounds ( expression *&  ,
expression *&   
) [virtual]

Get expressions of lower and upper bound of an expression (if any).

virtual void Couenne::exprVar::getBounds ( CouNumber lb,
CouNumber ub 
) [virtual]

Get value of lower and upper bound of an expression (if any).

Reimplemented from Couenne::expression.

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 156 of file CouenneExprVar.hpp.

virtual void Couenne::exprVar::generateCuts ( expression w,
OsiCuts &  cs,
const CouenneCutGenerator cg,
t_chg_bounds = NULL,
int  = -1,
CouNumber  = -COUENNE_INFINITY,
CouNumber  = COUENNE_INFINITY 
) [virtual]

generate convexification cut for constraint w = this

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 171 of file CouenneExprVar.hpp.

References Couenne::COU_EXPRVAR.

virtual bool Couenne::exprVar::impliedBound ( int  ,
CouNumber ,
CouNumber ,
t_chg_bounds ,
enum  auxSign = expression::AUX_EQ 
) [virtual]

implied bound processing

Reimplemented from Couenne::expression.

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 178 of file CouenneExprVar.hpp.

virtual void Couenne::exprVar::fillDepSet ( std::set< DepNode *, compNode > *  ,
DepGraph  
) [virtual]

update dependence set with index of this variable

Reimplemented from Couenne::expression.

virtual bool Couenne::exprVar::isFixed (  )  [inline, virtual]

is this variable fixed?

Definition at line 185 of file CouenneExprVar.hpp.

References COUENNE_EPS, lb(), and ub().

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 189 of file CouenneExprVar.hpp.

References domain_.

virtual Domain* Couenne::exprVar::domain (  )  [inline, virtual]

return pointer to variable domain

Definition at line 193 of file CouenneExprVar.hpp.

References domain_.

virtual void Couenne::exprVar::decreaseMult (  )  [inline, virtual]

Reimplemented in Couenne::exprAux.

Definition at line 197 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 200 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 203 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 206 of file CouenneExprVar.hpp.

References Couenne::AFFINE.

virtual CouenneObject* Couenne::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.

virtual enum auxSign Couenne::exprVar::sign (  )  const [inline, virtual]

return its sign in the definition constraint

Reimplemented in Couenne::exprAux.

Definition at line 217 of file CouenneExprVar.hpp.

References Couenne::expression::AUX_UNDEF.


Member Data Documentation

int Couenne::exprVar::varIndex_ [protected]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 23 Jan 2015 for Couenne by  doxygen 1.6.1