# ClpGubDynamicMatrix Class Reference

This implements Gub rows plus a ClpPackedMatrix. More...

`#include <ClpGubDynamicMatrix.hpp>`

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

List of all members.

## Public Member Functions
Main functions provided
virtual void | partialPricing (ClpSimplex *model, double start, double end, int &bestSequence, int &numberWanted)
| Partial pricing.
virtual int | synchronize (ClpSimplex *model, int mode)
| This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming.
virtual void | useEffectiveRhs (ClpSimplex *model, bool cheapest=true)
| Sets up an effective RHS and does gub crash if needed.
virtual int | updatePivot (ClpSimplex *model, double oldInValue, double oldOutValue)
| update information for a pivot (and effective rhs)
void | insertNonBasic (int sequence, int iSet)
| Add a new variable to a set.
virtual double * | rhsOffset (ClpSimplex *model, bool forceRefresh=false, bool check=false)
| Returns effective RHS offset if it is being used.
virtual void | times (double scalar, const double *x, double *y) const
| Return `y + A * scalar *x` in `y`.
virtual int | checkFeasible (ClpSimplex *model, double &sum) const
| Just for debug Returns sum and number of primal infeasibilities.
void | cleanData (ClpSimplex *model)
| Cleans data after setWarmStart.
Constructors, destructor
| ClpGubDynamicMatrix ()
| Default constructor.
virtual | ~ClpGubDynamicMatrix ()
| Destructor.
Copy method
| ClpGubDynamicMatrix (const ClpGubDynamicMatrix &)
| The copy constructor.
| ClpGubDynamicMatrix (ClpSimplex *model, int numberSets, int numberColumns, const int *starts, const double *lower, const double *upper, const int *startColumn, const int *row, const double *element, const double *cost, const double *lowerColumn=NULL, const double *upperColumn=NULL, const unsigned char *status=NULL)
| This is the real constructor.
ClpGubDynamicMatrix & | operator= (const ClpGubDynamicMatrix &)
| The copy constructor.
virtual ClpMatrixBase * | clone () const
| Clone.
## Protected Attributes
Data members
The data members are protected to allow access for derived classes.
double | objectiveOffset_
| Saved value of objective offset.
CoinBigIndex * | startColumn_
| Starts of each column.
int * | row_
| rows
double * | element_
| elements
double * | cost_
| costs
int * | fullStart_
| full starts
int * | id_
| ids of active columns (just index here)
unsigned char * | dynamicStatus_
| for status and which bound
double * | lowerColumn_
| Optional lower bounds on columns.
double * | upperColumn_
| Optional upper bounds on columns.
double * | lowerSet_
| Optional true lower bounds on sets.
double * | upperSet_
| Optional true upper bounds on sets.
int | numberGubColumns_
| size
int | firstAvailable_
| first free
int | savedFirstAvailable_
| saved first free
int | firstDynamic_
| first dynamic
int | lastDynamic_
| number of columns in dynamic model
int | numberElements_
| size of working matrix (max)
## gets and sets
enum | DynamicStatus { inSmall = 0x01, atUpperBound = 0x02, atLowerBound = 0x03 }
| enums for status of various sorts More...
bool | flagged (int i) const
| Whether flagged.
void | setFlagged (int i)
| enums for status of various sorts
void | unsetFlagged (int i)
| enums for status of various sorts
void | setDynamicStatus (int sequence, DynamicStatus status)
| enums for status of various sorts
DynamicStatus | getDynamicStatus (int sequence) const
| enums for status of various sorts
double | objectiveOffset () const
| Saved value of objective offset.
CoinBigIndex * | startColumn () const
| Starts of each column.
int * | row () const
| rows
double * | element () const
| elements
double * | cost () const
| costs
int * | fullStart () const
| full starts
int * | id () const
| ids of active columns (just index here)
double * | lowerColumn () const
| Optional lower bounds on columns.
double * | upperColumn () const
| Optional upper bounds on columns.
double * | lowerSet () const
| Optional true lower bounds on sets.
double * | upperSet () const
| Optional true upper bounds on sets.
int | numberGubColumns () const
| size
int | firstAvailable () const
| first free
void | setFirstAvailable (int value)
| set first free
int | firstDynamic () const
| first dynamic
int | lastDynamic () const
| number of columns in dynamic model
int | numberElements () const
| size of working matrix (max)
unsigned char * | gubRowStatus () const
| Status region for gub slacks.
unsigned char * | dynamicStatus () const
| Status region for gub variables.
int | whichSet (int sequence) const
| Returns which set a variable is in.

## Detailed Description

This implements Gub rows plus a ClpPackedMatrix.

This a dynamic version which stores the gub part and dynamically creates matrix. All bounds are assumed to be zero and infinity

This is just a simple example for real column generation

Definition at line 20 of file ClpGubDynamicMatrix.hpp.

## Member Enumeration Documentation

enum ClpGubDynamicMatrix::DynamicStatus

enums for status of various sorts

Enumerator:

  inSmall |
  atUpperBound |
  atLowerBound |

Definition at line 100 of file ClpGubDynamicMatrix.hpp.

## Constructor & Destructor Documentation

ClpGubDynamicMatrix::ClpGubDynamicMatrix | ( |  | ) |

Default constructor.

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

Destructor.

ClpGubDynamicMatrix::ClpGubDynamicMatrix | ( | const ClpGubDynamicMatrix & |  | ) |

The copy constructor.

ClpGubDynamicMatrix::ClpGubDynamicMatrix | ( | ClpSimplex * | model,
|  | int | numberSets,
|  | int | numberColumns,
|  | const int * | starts,
|  | const double * | lower,
|  | const double * | upper,
|  | const int * | startColumn,
|  | const int * | row,
|  | const double * | element,
|  | const double * | cost,
|  | const double * | lowerColumn = `NULL`,
|  | const double * | upperColumn = `NULL`,
|  | const unsigned char * | status = `NULL` |
| ) |  |  |

This is the real constructor.

It assumes factorization frequency will not be changed. This resizes model !!!!

## Member Function Documentation

virtual void ClpGubDynamicMatrix::partialPricing | ( | ClpSimplex * | model,
|  | double | start,
|  | double | end,
|  | int & | bestSequence,
|  | int & | numberWanted |
| ) |  |  | `[virtual]`

Partial pricing.

Reimplemented from ClpGubMatrix.

virtual int ClpGubDynamicMatrix::synchronize | ( | ClpSimplex * | model,
|  | int | mode |
| ) |  |  | `[virtual]`

This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming.

Reimplemented from ClpGubMatrix.

virtual void ClpGubDynamicMatrix::useEffectiveRhs | ( | ClpSimplex * | model,
|  | bool | cheapest = `true` |
| ) |  |  | `[virtual]`

Sets up an effective RHS and does gub crash if needed.

Reimplemented from ClpGubMatrix.

virtual int ClpGubDynamicMatrix::updatePivot | ( | ClpSimplex * | model,
|  | double | oldInValue,
|  | double | oldOutValue |
| ) |  |  | `[virtual]`

update information for a pivot (and effective rhs)

Reimplemented from ClpGubMatrix.

void ClpGubDynamicMatrix::insertNonBasic | ( | int | sequence,
|  | int | iSet |
| ) |  |  |

Add a new variable to a set.

virtual double* ClpGubDynamicMatrix::rhsOffset | ( | ClpSimplex * | model,
|  | bool | forceRefresh = `false`,
|  | bool | check = `false` |
| ) |  |  | `[virtual]`

Returns effective RHS offset if it is being used.

This is used for long problems or big gub or anywhere where going through full columns is expensive. This may re-compute

Reimplemented from ClpGubMatrix.

virtual void ClpGubDynamicMatrix::times | ( | double | scalar,
|  | const double * | x,
|  | double * | y |
| ) |  |  | const`[virtual]`

Return `y + A * scalar *x` in `y`.

Precondition:
  `x` must be of size `numColumns()`
  `y` must be of size `numRows()`

Reimplemented from ClpPackedMatrix.

virtual int ClpGubDynamicMatrix::checkFeasible | ( | ClpSimplex * | model,
|  | double & | sum |
| ) |  |  | const`[virtual]`

Just for debug Returns sum and number of primal infeasibilities.

Recomputes keys

Reimplemented from ClpMatrixBase.

void ClpGubDynamicMatrix::cleanData | ( | ClpSimplex * | model | ) |

Cleans data after setWarmStart.

ClpGubDynamicMatrix& ClpGubDynamicMatrix::operator= | ( | const ClpGubDynamicMatrix & |  | ) |

The copy constructor.

Reimplemented from ClpGubMatrix.

virtual ClpMatrixBase* ClpGubDynamicMatrix::clone | ( |  | ) | const`[virtual]`

Clone.

Reimplemented from ClpGubMatrix.

bool ClpGubDynamicMatrix::flagged | ( | int | i | ) | const`[inline]`

Whether flagged.

Reimplemented from ClpGubMatrix.

Definition at line 106 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::setFlagged | ( | int | i | ) | `[inline]`

enums for status of various sorts

Reimplemented from ClpGubMatrix.

Definition at line 109 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::unsetFlagged | ( | int | i | ) | `[inline]`

enums for status of various sorts

Definition at line 112 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::setDynamicStatus | ( | int | sequence,
|  | DynamicStatus | status |
| ) |  |  | `[inline]`

enums for status of various sorts

Definition at line 115 of file ClpGubDynamicMatrix.hpp.

DynamicStatus ClpGubDynamicMatrix::getDynamicStatus | ( | int | sequence | ) | const`[inline]`

enums for status of various sorts

Definition at line 120 of file ClpGubDynamicMatrix.hpp.

double ClpGubDynamicMatrix::objectiveOffset | ( |  | ) | const`[inline]`

Saved value of objective offset.

Definition at line 124 of file ClpGubDynamicMatrix.hpp.

CoinBigIndex* ClpGubDynamicMatrix::startColumn | ( |  | ) | const`[inline]`

Starts of each column.

Definition at line 128 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::row | ( |  | ) | const`[inline]`

rows

Definition at line 132 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::element | ( |  | ) | const`[inline]`

elements

Definition at line 136 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::cost | ( |  | ) | const`[inline]`

costs

Definition at line 140 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::fullStart | ( |  | ) | const`[inline]`

full starts

Definition at line 144 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::id | ( |  | ) | const`[inline]`

ids of active columns (just index here)

Definition at line 148 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerColumn | ( |  | ) | const`[inline]`

Optional lower bounds on columns.

Definition at line 152 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperColumn | ( |  | ) | const`[inline]`

Optional upper bounds on columns.

Definition at line 156 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerSet | ( |  | ) | const`[inline]`

Optional true lower bounds on sets.

Definition at line 160 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperSet | ( |  | ) | const`[inline]`

Optional true upper bounds on sets.

Definition at line 164 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberGubColumns | ( |  | ) | const`[inline]`

size

Definition at line 168 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstAvailable | ( |  | ) | const`[inline]`

first free

Definition at line 172 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::setFirstAvailable | ( | int | value | ) | `[inline]`

set first free

Definition at line 176 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstDynamic | ( |  | ) | const`[inline]`

first dynamic

Definition at line 180 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::lastDynamic | ( |  | ) | const`[inline]`

number of columns in dynamic model

Definition at line 184 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberElements | ( |  | ) | const`[inline]`

size of working matrix (max)

Definition at line 188 of file ClpGubDynamicMatrix.hpp.

unsigned char* ClpGubDynamicMatrix::gubRowStatus | ( |  | ) | const`[inline]`

Status region for gub slacks.

Definition at line 192 of file ClpGubDynamicMatrix.hpp.

unsigned char* ClpGubDynamicMatrix::dynamicStatus | ( |  | ) | const`[inline]`

Status region for gub variables.

Definition at line 196 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::whichSet | ( | int | sequence | ) | const

Returns which set a variable is in.

## Member Data Documentation

double ClpGubDynamicMatrix::objectiveOffset_`[protected]`

Saved value of objective offset.

Definition at line 209 of file ClpGubDynamicMatrix.hpp.

CoinBigIndex* ClpGubDynamicMatrix::startColumn_`[protected]`

Starts of each column.

Definition at line 211 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::row_`[protected]`

rows

Definition at line 213 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::element_`[protected]`

elements

Definition at line 215 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::cost_`[protected]`

costs

Definition at line 217 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::fullStart_`[protected]`

full starts

Definition at line 219 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::id_`[protected]`

ids of active columns (just index here)

Definition at line 221 of file ClpGubDynamicMatrix.hpp.

unsigned char* ClpGubDynamicMatrix::dynamicStatus_`[protected]`

for status and which bound

Definition at line 223 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerColumn_`[protected]`

Optional lower bounds on columns.

Definition at line 225 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperColumn_`[protected]`

Optional upper bounds on columns.

Definition at line 227 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerSet_`[protected]`

Optional true lower bounds on sets.

Definition at line 229 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperSet_`[protected]`

Optional true upper bounds on sets.

Definition at line 231 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberGubColumns_`[protected]`

size

Definition at line 233 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstAvailable_`[protected]`

first free

Definition at line 235 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::savedFirstAvailable_`[protected]`

saved first free

Definition at line 237 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstDynamic_`[protected]`

first dynamic

Definition at line 239 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::lastDynamic_`[protected]`

number of columns in dynamic model

Definition at line 241 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberElements_`[protected]`

size of working matrix (max)

Definition at line 243 of file ClpGubDynamicMatrix.hpp.

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

- /home/coin/svn-release/Blis-0.94.1/Clp/src/ClpGubDynamicMatrix.hpp