# Couenne::CouenneThreeWayBranchObj Class Reference

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

`#include <CouenneThreeWayBranchObj.hpp>`

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
expression * | brVar_
| 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_
| True if the associated variable is integer.

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

Couenne::CouenneThreeWayBranchObj::CouenneThreeWayBranchObj | ( | JnlstPtr | jnlst,
|  | expression * | ,
|  | CouNumber | ,
|  | CouNumber | ,
|  | int | = `THREE_CENTER` |
| ) |  |  |

Constructor.

Referenced by clone().

Couenne::CouenneThreeWayBranchObj::CouenneThreeWayBranchObj | ( | const CouenneThreeWayBranchObj & | src | ) | `[inline]`

Copy constructor.

Definition at line 42 of file CouenneThreeWayBranchObj.hpp.

## Member Function Documentation

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

Cloning method.

Definition at line 51 of file CouenneThreeWayBranchObj.hpp.

References CouenneThreeWayBranchObj().

virtual double Couenne::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

## Member Data Documentation

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

CouNumber Couenne::CouenneThreeWayBranchObj::lcrop_`[protected]`

left divider

Definition at line 69 of file CouenneThreeWayBranchObj.hpp.

CouNumber Couenne::CouenneThreeWayBranchObj::rcrop_`[protected]`

right divider

Definition at line 70 of file CouenneThreeWayBranchObj.hpp.

int Couenne::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.

JnlstPtr Couenne::CouenneThreeWayBranchObj::jnlst_`[protected]`

True if the associated variable is integer.

SmartPointer to the Journalist

Definition at line 79 of file CouenneThreeWayBranchObj.hpp.

The documentation for this class was generated from the following file:

- CouenneThreeWayBranchObj.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines