# OsiTwoWayBranchingObject Class Reference

This just adds two-wayness to a branching object. More...

`#include <OsiBranchingObject.hpp>`

Inheritance diagram for OsiTwoWayBranchingObject:
[legend]
Collaboration diagram for OsiTwoWayBranchingObject:
[legend]

List of all members.

## Public Member Functions
| OsiTwoWayBranchingObject ()
| Default constructor.
| OsiTwoWayBranchingObject (OsiSolverInterface *solver, const OsiObject *originalObject, int way, double value)
| Create a standard tw0-way branch object.
| OsiTwoWayBranchingObject (const OsiTwoWayBranchingObject &)
| Copy constructor.
OsiTwoWayBranchingObject & | operator= (const OsiTwoWayBranchingObject &rhs)
| Assignment operator.
virtual | ~OsiTwoWayBranchingObject ()
| Destructor.
virtual double | branch (OsiSolverInterface *solver)=0
| Sets the bounds for the variable according to the current arm of the branch and advances the object state to the next arm.
int | firstBranch () const
int | way () const
| Way returns -1 on down +1 on up.
## Protected Attributes
int | firstBranch_
| Which way was first branch -1 = down, +1 = up.

## Detailed Description

This just adds two-wayness to a branching object.

Definition at line 467 of file OsiBranchingObject.hpp.

## Constructor & Destructor Documentation

OsiTwoWayBranchingObject::OsiTwoWayBranchingObject | ( |  | ) |

Default constructor.

OsiTwoWayBranchingObject::OsiTwoWayBranchingObject | ( | OsiSolverInterface * | solver,
|  | const OsiObject * | originalObject,
|  | int | way,
|  | double | value |
| ) |  |  |

Create a standard tw0-way branch object.

Specifies a simple two-way branch. Specify way = -1 to set the object state to perform the down arm first, way = 1 for the up arm.

OsiTwoWayBranchingObject::OsiTwoWayBranchingObject | ( | const OsiTwoWayBranchingObject & |  | ) |

Copy constructor.

virtual OsiTwoWayBranchingObject::~OsiTwoWayBranchingObject | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

OsiTwoWayBranchingObject& OsiTwoWayBranchingObject::operator= | ( | const OsiTwoWayBranchingObject & | rhs | ) |

Assignment operator.

Reimplemented from OsiBranchingObject.

Reimplemented in OsiIntegerBranchingObject, OsiSOSBranchingObject, and OsiLotsizeBranchingObject.

virtual double OsiTwoWayBranchingObject::branch | ( | OsiSolverInterface * | solver | ) | `[pure virtual]`

Sets the bounds for the variable according to the current arm of the branch and advances the object state to the next arm.

state. Returns change in guessed objective on next branch

Implements OsiBranchingObject.

Implemented in OsiIntegerBranchingObject, OsiSOSBranchingObject, and OsiLotsizeBranchingObject.

int OsiTwoWayBranchingObject::firstBranch | ( |  | ) | const`[inline]`

Definition at line 500 of file OsiBranchingObject.hpp.

int OsiTwoWayBranchingObject::way | ( |  | ) | const`[inline]`

Way returns -1 on down +1 on up.

Definition at line 502 of file OsiBranchingObject.hpp.

## Member Data Documentation

int OsiTwoWayBranchingObject::firstBranch_`[protected]`

Which way was first branch -1 = down, +1 = up.

Definition at line 506 of file OsiBranchingObject.hpp.

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

- /home/coin/svn-release/Alps-1.4.5/Osi/src/Osi/OsiBranchingObject.hpp