# CbcBranchUserDecision Class Reference

Branching decision user class. More...

`#include <CbcBranchUser.hpp>`

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

List of all members.

## Public Member Functions
| CbcBranchUserDecision ()
| CbcBranchUserDecision (const CbcBranchUserDecision &)
virtual | ~CbcBranchUserDecision ()
virtual CbcBranchDecision * | clone () const
| Clone.
virtual void | initialize (CbcModel *model)
| Initialize i.e. before start of choosing at a node.
virtual int | betterBranch (CbcBranchingObject *thisOne, CbcBranchingObject *bestSoFar, double changeUp, int numberInfeasibilitiesUp, double changeDown, int numberInfeasibilitiesDown)
| Returns nonzero if branching on first object is "better" than on second (if second NULL first wins).
virtual int | bestBranch (CbcBranchingObject **objects, int numberObjects, int numberUnsatisfied, double *changeUp, int *numberInfeasibilitiesUp, double *changeDown, int *numberInfeasibilitiesDown, double objectiveValue)
| Compare N branching objects.
## Private Member Functions
CbcBranchUserDecision & | operator= (const CbcBranchUserDecision &rhs)
| Illegal Assignment operator.

## Detailed Description

Branching decision user class.

Definition at line 14 of file CbcBranchUser.hpp.

## Constructor & Destructor Documentation

CbcBranchUserDecision::CbcBranchUserDecision | ( |  | ) |

CbcBranchUserDecision::CbcBranchUserDecision | ( | const CbcBranchUserDecision & |  | ) |

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

## Member Function Documentation

virtual CbcBranchDecision* CbcBranchUserDecision::clone | ( |  | ) | const`[virtual]`

Clone.

Implements CbcBranchDecision.

virtual void CbcBranchUserDecision::initialize | ( | CbcModel * | model | ) | `[virtual]`

Initialize i.e. before start of choosing at a node.

Implements CbcBranchDecision.

virtual int CbcBranchUserDecision::betterBranch | ( | CbcBranchingObject * | thisOne,
|  | CbcBranchingObject * | bestSoFar,
|  | double | changeUp,
|  | int | numberInfeasibilitiesUp,
|  | double | changeDown,
|  | int | numberInfeasibilitiesDown |
| ) |  |  | `[virtual]`

Returns nonzero if branching on first object is "better" than on second (if second NULL first wins).

This is only used after strong branching. The initial selection is done by infeasibility() for each CbcObject return code +1 for up branch preferred, -1 for down

Implements CbcBranchDecision.

virtual int CbcBranchUserDecision::bestBranch | ( | CbcBranchingObject ** | objects,
|  | int | numberObjects,
|  | int | numberUnsatisfied,
|  | double * | changeUp,
|  | int * | numberInfeasibilitiesUp,
|  | double * | changeDown,
|  | int * | numberInfeasibilitiesDown,
|  | double | objectiveValue |
| ) |  |  | `[virtual]`

Compare N branching objects.

Return index of best and sets way of branching in chosen object.

This routine is used only after strong branching. This is reccommended version as it can be more sophisticated

Reimplemented from CbcBranchDecision.

CbcBranchUserDecision& CbcBranchUserDecision::operator= | ( | const CbcBranchUserDecision & | rhs | ) | `[private]`

Illegal Assignment operator.

Reimplemented from CbcBranchDecision.

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

- /home/coin/svn-release/Cbc-2.7.8/Cbc/examples/CbcBranchUser.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines