# CbcSimpleInteger Class Reference

Define a single integer class. More...

`#include <CbcSimpleInteger.hpp>`

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

List of all members.

## Public Member Functions
| CbcSimpleInteger ()
| CbcSimpleInteger (CbcModel *model, int iColumn, double breakEven=0.5)
| CbcSimpleInteger (CbcModel *model, const OsiSimpleInteger *object)
| CbcSimpleInteger (const CbcSimpleInteger &)
virtual CbcObject * | clone () const
| Clone.
CbcSimpleInteger & | operator= (const CbcSimpleInteger &rhs)
virtual | ~CbcSimpleInteger ()
OsiSimpleInteger * | osiObject () const
| Construct an OsiSimpleInteger object.
virtual double | infeasibility (const OsiBranchingInformation *info, int &preferredWay) const
| Infeasibility - large is 0.5.
virtual double | feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
| Set bounds to fix the variable at the current (integer) value.
virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
| Create a branching object and indicate which way to branch first.
void | fillCreateBranch (CbcIntegerBranchingObject *branching, const OsiBranchingInformation *info, int way)
| Fills in a created branching object.
virtual OsiSolverBranch * | solverBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
| Create an OsiSolverBranch object.
virtual void | feasibleRegion ()
| Set bounds to fix the variable at the current (integer) value.
virtual int | columnNumber () const
| Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.
void | setColumnNumber (int value)
| Set column number.
virtual void | resetBounds (const OsiSolverInterface *solver)
| Reset variable bounds to their original values.
virtual void | resetSequenceEtc (int numberColumns, const int *originalColumns)
| Change column numbers after preprocessing.
double | originalLowerBound () const
| Original bounds.
void | setOriginalLowerBound (double value)
double | originalUpperBound () const
void | setOriginalUpperBound (double value)
double | breakEven () const
| Breakeven e.g 0.7 -> >= 0.7 go up first.
void | setBreakEven (double value)
| Set breakeven e.g 0.7 -> >= 0.7 go up first.
## Protected Attributes
double | originalLower_
| data
double | originalUpper_
| Original upper bound.
double | breakEven_
| Breakeven i.e. >= this preferred is up.
int | columnNumber_
| Column number in model.
int | preferredWay_
| If -1 down always chosen first, +1 up always, 0 normal.

## Detailed Description

Define a single integer class.

Definition at line 167 of file CbcSimpleInteger.hpp.

## Constructor & Destructor Documentation

CbcSimpleInteger::CbcSimpleInteger | ( |  | ) |

CbcSimpleInteger::CbcSimpleInteger | ( | CbcModel * | model,
|  | int | iColumn,
|  | double | breakEven = `0.5` |
| ) |  |  |

CbcSimpleInteger::CbcSimpleInteger | ( | CbcModel * | model,
|  | const OsiSimpleInteger * | object |
| ) |  |  |

CbcSimpleInteger::CbcSimpleInteger | ( | const CbcSimpleInteger & |  | ) |

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

## Member Function Documentation

virtual CbcObject* CbcSimpleInteger::clone | ( |  | ) | const`[virtual]`

Clone.

Implements CbcObject.

Reimplemented in CbcSimpleIntegerFixed, CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

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

Reimplemented from CbcObject.

Reimplemented in CbcSimpleIntegerFixed, CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

OsiSimpleInteger* CbcSimpleInteger::osiObject | ( |  | ) | const

Construct an OsiSimpleInteger object.

virtual double CbcSimpleInteger::infeasibility | ( | const OsiBranchingInformation * | info,
|  | int & | preferredWay |
| ) |  |  | const`[virtual]`

Infeasibility - large is 0.5.

Reimplemented from CbcObject.

Reimplemented in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

virtual double CbcSimpleInteger::feasibleRegion | ( | OsiSolverInterface * | solver,
|  | const OsiBranchingInformation * | info |
| ) |  |  | const`[virtual]`

Set bounds to fix the variable at the current (integer) value.

Given an integer value, set the lower and upper bounds to fix the variable. Returns amount it had to move variable.

Reimplemented from CbcObject.

virtual CbcBranchingObject* CbcSimpleInteger::createCbcBranch | ( | OsiSolverInterface * | solver,
|  | const OsiBranchingInformation * | info,
|  | int | way |
| ) |  |  | `[virtual]`

Create a branching object and indicate which way to branch first.

The branching object has to know how to create branches (fix variables, etc.)

Reimplemented from CbcObject.

Reimplemented in CbcSimpleIntegerDynamicPseudoCost, and CbcSimpleIntegerPseudoCost.

void CbcSimpleInteger::fillCreateBranch | ( | CbcIntegerBranchingObject * | branching,
|  | const OsiBranchingInformation * | info,
|  | int | way |
| ) |  |  |

Fills in a created branching object.

Reimplemented in CbcSimpleIntegerDynamicPseudoCost.

virtual OsiSolverBranch* CbcSimpleInteger::solverBranch | ( | OsiSolverInterface * | solver,
|  | const OsiBranchingInformation * | info |
| ) |  |  | const`[virtual]`

Create an OsiSolverBranch object.

This returns NULL if branch not represented by bound changes

virtual void CbcSimpleInteger::feasibleRegion | ( |  | ) | `[virtual]`

Set bounds to fix the variable at the current (integer) value.

Given an integer value, set the lower and upper bounds to fix the variable. The algorithm takes a bit of care in order to compensate for minor numerical inaccuracy.

Implements CbcObject.

virtual int CbcSimpleInteger::columnNumber | ( |  | ) | const`[virtual]`

Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.

Reimplemented from OsiObject.

void CbcSimpleInteger::setColumnNumber | ( | int | value | ) | `[inline]`

Set column number.

Definition at line 235 of file CbcSimpleInteger.hpp.

virtual void CbcSimpleInteger::resetBounds | ( | const OsiSolverInterface * | solver | ) | `[virtual]`

Reset variable bounds to their original values.

Bounds may be tightened, so it may be good to be able to set this info in object.

Reimplemented from CbcObject.

virtual void CbcSimpleInteger::resetSequenceEtc | ( | int | numberColumns,
|  | const int * | originalColumns |
| ) |  |  | `[virtual]`

Change column numbers after preprocessing.

Reimplemented from OsiObject.

double CbcSimpleInteger::originalLowerBound | ( |  | ) | const`[inline]`

Original bounds.

Definition at line 249 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalLowerBound | ( | double | value | ) | `[inline]`

Definition at line 252 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::originalUpperBound | ( |  | ) | const`[inline]`

Definition at line 255 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setOriginalUpperBound | ( | double | value | ) | `[inline]`

Definition at line 258 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::breakEven | ( |  | ) | const`[inline]`

Breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 262 of file CbcSimpleInteger.hpp.

void CbcSimpleInteger::setBreakEven | ( | double | value | ) | `[inline]`

Set breakeven e.g 0.7 -> >= 0.7 go up first.

Definition at line 266 of file CbcSimpleInteger.hpp.

## Member Data Documentation

double CbcSimpleInteger::originalLower_`[protected]`

data

Original lower bound

Definition at line 275 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::originalUpper_`[protected]`

Original upper bound.

Definition at line 277 of file CbcSimpleInteger.hpp.

double CbcSimpleInteger::breakEven_`[protected]`

Breakeven i.e. >= this preferred is up.

Definition at line 279 of file CbcSimpleInteger.hpp.

int CbcSimpleInteger::columnNumber_`[protected]`

Column number in model.

Definition at line 281 of file CbcSimpleInteger.hpp.

int CbcSimpleInteger::preferredWay_`[protected]`

If -1 down always chosen first, +1 up always, 0 normal.

Reimplemented from CbcObject.

Definition at line 283 of file CbcSimpleInteger.hpp.

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

- /home/coin/svn-release/Cbc-2.8.0/Cbc/src/CbcSimpleInteger.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines