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


Constructor & Destructor Documentation

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

Constructor.

Definition at line 60 of file CouenneExprVar.hpp.

Referenced by clone().

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

destructor

Definition at line 65 of file CouenneExprVar.hpp.

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

Copy constructor.

Definition at line 68 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 56 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 73 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 77 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 85 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 86 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 89 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 94 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 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.

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 107 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 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.

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 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.

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 157 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 172 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 179 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 186 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 190 of file CouenneExprVar.hpp.

References domain_.

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

return pointer to variable domain

Definition at line 194 of file CouenneExprVar.hpp.

References domain_.

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.

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 218 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 19 Dec 2013 for Couenne by  doxygen 1.6.1