CouenneThreeWayBranchObj Class Reference

Spatial, three-way branching object. More...

#include <CouenneThreeWayBranchObj.hpp>

Collaboration diagram for CouenneThreeWayBranchObj:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CouenneThreeWayBranchObj (JnlstPtr jnlst, expression *, CouNumber, CouNumber, int=THREE_CENTER)
 Constructor.
 CouenneThreeWayBranchObj (const CouenneThreeWayBranchObj &src)
 Copy constructor.
virtual OsiBranchingObject * clone () const
 Cloning method.
virtual double branch (OsiSolverInterface *solver=NULL)
 Execute the actions required to branch, as specified by the current state of the branching object, and advance the object's state.

Protected Attributes

expressionbrVar_
 The variable this branching object refers to.
CouNumber lcrop_
 left divider
CouNumber rcrop_
 right divider
int firstBranch_
 First branch to be performed: 0 is left, 1 is central, 2 is right.
JnlstPtr jnlst_
 SmartPointer to the Journalist.

Detailed Description

Spatial, three-way branching object.

Branching is performed on continuous variables but a better convexification is sought around the current point by dividing the interval in three parts

Definition at line 28 of file CouenneThreeWayBranchObj.hpp.


Constructor & Destructor Documentation

CouenneThreeWayBranchObj::CouenneThreeWayBranchObj ( JnlstPtr  jnlst,
expression brVar,
CouNumber  lcrop,
CouNumber  rcrop,
int  way = THREE_CENTER 
)

Constructor.

Get a variable as an argument and set value_ through a call to operator () of that exprAux.

Definition at line 19 of file CouenneThreeWayBranchObj.cpp.

References firstBranch_, THREE_CENTER, THREE_LEFT, THREE_RAND, and THREE_RIGHT.

Referenced by clone().

CouenneThreeWayBranchObj::CouenneThreeWayBranchObj ( const CouenneThreeWayBranchObj src  )  [inline]

Copy constructor.

Definition at line 42 of file CouenneThreeWayBranchObj.hpp.


Member Function Documentation

virtual OsiBranchingObject* CouenneThreeWayBranchObj::clone (  )  const [inline, virtual]

Cloning method.

Definition at line 51 of file CouenneThreeWayBranchObj.hpp.

References CouenneThreeWayBranchObj().

double CouenneThreeWayBranchObj::branch ( OsiSolverInterface *  solver = NULL  )  [virtual]

Execute the actions required to branch, as specified by the current state of the branching object, and advance the object's state.

Returns change in guessed objective on next (what does "next" mean here?) branch

Definition at line 51 of file CouenneThreeWayBranchObj.cpp.

References brVar_, firstBranch_, isInteger(), J_BRANCHING(), jnlst_, lcrop_, and rcrop_.


Member Data Documentation

expression* CouenneThreeWayBranchObj::brVar_ [protected]

The variable this branching object refers to.

If the corresponding CouenneObject was created on w=f(x,y), it is either x or y.

Definition at line 67 of file CouenneThreeWayBranchObj.hpp.

Referenced by branch().

CouNumber CouenneThreeWayBranchObj::lcrop_ [protected]

left divider

Definition at line 69 of file CouenneThreeWayBranchObj.hpp.

Referenced by branch().

CouNumber CouenneThreeWayBranchObj::rcrop_ [protected]

right divider

Definition at line 70 of file CouenneThreeWayBranchObj.hpp.

Referenced by branch().

int CouenneThreeWayBranchObj::firstBranch_ [protected]

First branch to be performed: 0 is left, 1 is central, 2 is right.

Definition at line 73 of file CouenneThreeWayBranchObj.hpp.

Referenced by branch(), and CouenneThreeWayBranchObj().

JnlstPtr CouenneThreeWayBranchObj::jnlst_ [protected]

SmartPointer to the Journalist.

Definition at line 79 of file CouenneThreeWayBranchObj.hpp.

Referenced by branch().


The documentation for this class was generated from the following files:
Generated on Thu Oct 8 03:07:53 2009 by  doxygen 1.4.7