# CbcLotsizeBranchingObject Class Reference

Lotsize branching object. More...

`#include <CbcBranchLotsize.hpp>`

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

List of all members.

## Public Member Functions
| CbcLotsizeBranchingObject ()
| Default constructor.
| CbcLotsizeBranchingObject (CbcModel *model, int variable, int way, double value, const CbcLotsize *lotsize)
| Create a lotsize floor/ceiling branch object.
| CbcLotsizeBranchingObject (CbcModel *model, int variable, int way, double lowerValue, double upperValue)
| Create a degenerate branch object.
| CbcLotsizeBranchingObject (const CbcLotsizeBranchingObject &)
| Copy constructor.
CbcLotsizeBranchingObject & | operator= (const CbcLotsizeBranchingObject &rhs)
| Assignment operator.
virtual CbcBranchingObject * | clone () const
| Clone.
virtual | ~CbcLotsizeBranchingObject ()
| Destructor.
virtual double | branch ()
| Sets the bounds for the variable according to the current arm of the branch and advances the object state to the next arm.
virtual void | print ()
| Print something about branch - only if log level high.
virtual CbcBranchObjType | type () const
| Return the type (an integer identifier) of `this`.
virtual CbcRangeCompare | compareBranchingObject (const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
| Compare the `this` with `brObj`.
## Protected Attributes
double | down_ [2]
| Lower [0] and upper [1] bounds for the down arm (way_ = -1).
double | up_ [2]
| Lower [0] and upper [1] bounds for the up arm (way_ = 1).

## Detailed Description

Lotsize branching object.

This object can specify a two-way branch on an integer variable. For each arm of the branch, the upper and lower bounds on the variable can be independently specified.

Variable_ holds the index of the integer variable in the integerVariable_ array of the model.

Definition at line 166 of file CbcBranchLotsize.hpp.

## Constructor & Destructor Documentation

CbcLotsizeBranchingObject::CbcLotsizeBranchingObject | ( |  | ) |

Default constructor.

CbcLotsizeBranchingObject::CbcLotsizeBranchingObject | ( | CbcModel * | model,
|  | int | variable,
|  | int | way,
|  | double | value,
|  | const CbcLotsize * | lotsize |
| ) |  |  |

Create a lotsize floor/ceiling branch object.

Specifies a simple two-way branch. Let `value` = x*. One arm of the branch will be is lb <= x <= valid range below(x*), the other valid range above(x*) <= x <= ub. Specify way = -1 to set the object state to perform the down arm first, way = 1 for the up arm.

CbcLotsizeBranchingObject::CbcLotsizeBranchingObject | ( | CbcModel * | model,
|  | int | variable,
|  | int | way,
|  | double | lowerValue,
|  | double | upperValue |
| ) |  |  |

Create a degenerate branch object.

Specifies a `one-way branch'. Calling branch() for this object will always result in lowerValue <= x <= upperValue. Used to fix in valid range

CbcLotsizeBranchingObject::CbcLotsizeBranchingObject | ( | const CbcLotsizeBranchingObject & |  | ) |

Copy constructor.

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

Destructor.

## Member Function Documentation

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

Assignment operator.

Reimplemented from CbcBranchingObject.

virtual CbcBranchingObject* CbcLotsizeBranchingObject::clone | ( |  | ) | const`[virtual]`

Clone.

Implements CbcBranchingObject.

virtual double CbcLotsizeBranchingObject::branch | ( |  | ) | `[virtual]`

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

Implements CbcBranchingObject.

virtual void CbcLotsizeBranchingObject::print | ( |  | ) | `[virtual]`

Print something about branch - only if log level high.

virtual CbcBranchObjType CbcLotsizeBranchingObject::type | ( |  | ) | const`[inline, virtual]`

Return the type (an integer identifier) of `this`.

Implements CbcBranchingObject.

Definition at line 216 of file CbcBranchLotsize.hpp.

virtual CbcRangeCompare CbcLotsizeBranchingObject::compareBranchingObject | ( | const CbcBranchingObject * | brObj,
|  | const bool | replaceIfOverlap = `false` |
| ) |  |  | `[virtual]`

Compare the `this` with `brObj`.

`this` and `brObj` must be os the same type and must have the same original object, but they may have different feasible regions. Return the appropriate CbcRangeCompare value (first argument being the sub/superset if that's the case). In case of overlap (and if `replaceIfOverlap` is true) replace the current branching object with one whose feasible region is the overlap.

## Member Data Documentation

double CbcLotsizeBranchingObject::down_[2]`[protected]`

Lower [0] and upper [1] bounds for the down arm (way_ = -1).

Definition at line 236 of file CbcBranchLotsize.hpp.

double CbcLotsizeBranchingObject::up_[2]`[protected]`

Lower [0] and upper [1] bounds for the up arm (way_ = 1).

Definition at line 238 of file CbcBranchLotsize.hpp.

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

- /home/coin/svn-release/Cbc-2.7.8/Cbc/src/CbcBranchLotsize.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines