# AbcMatrix Class Reference

`#include <AbcMatrix.hpp>`

Collaboration diagram for AbcMatrix:
[legend]

List of all members.

## Public Member Functions
Useful methods
CoinPackedMatrix * | getPackedMatrix () const
| Return a complete CoinPackedMatrix.
bool | isColOrdered () const
| Whether the packed matrix is column major ordered or not.
CoinBigIndex | getNumElements () const
| Number of entries in the packed matrix.
int | getNumCols () const
| Number of columns.
int | getNumRows () const
| Number of rows.
void | setModel (AbcSimplex *model)
| Sets model.
const double * | getElements () const
| A vector containing the elements in the packed matrix.
double * | getMutableElements () const
| Mutable elements.
const int * | getIndices () const
| A vector containing the minor indices of the elements in the packed matrix.
int * | getMutableIndices () const
| A vector containing the minor indices of the elements in the packed matrix.
const CoinBigIndex * | getVectorStarts () const
| Starts.
CoinBigIndex * | getMutableVectorStarts () const
const int * | getVectorLengths () const
| The lengths of the major-dimension vectors.
int * | getMutableVectorLengths () const
| The lengths of the major-dimension vectors.
CoinBigIndex * | rowStart () const
| Row starts.
CoinBigIndex * | rowEnd () const
| Row ends.
double * | rowElements () const
| Row elements.
CoinSimplexInt * | rowColumns () const
| Row columns.
CoinPackedMatrix * | reverseOrderedCopy () const
| Returns a new matrix in reverse order without gaps.
CoinBigIndex | countBasis (const int *whichColumn, int &numberColumnBasic)
| Returns number of elements in column part of basis.
void | fillBasis (const int *whichColumn, int &numberColumnBasic, int *row, int *start, int *rowCount, int *columnCount, CoinSimplexDouble *element)
| Fills in column part of basis.
void | fillBasis (const int *whichColumn, int &numberColumnBasic, int *row, int *start, int *rowCount, int *columnCount, long double *element)
| Fills in column part of basis.
void | scale (int numberRowsAlreadyScaled)
| Scales and creates row copy.
void | createRowCopy ()
| Creates row copy.
void | takeOutOfUseful (int sequence, CoinIndexedVector &spare)
| Take out of useful.
void | putIntofUseful (int sequence, CoinIndexedVector &spare)
| Put into useful.
void | inOutUseful (int sequenceIn, int sequenceOut)
| Put in and out for useful.
void | makeAllUseful (CoinIndexedVector &spare)
| Make all useful.
void | sortUseful (CoinIndexedVector &spare)
| Sort into useful.
void | moveLargestToStart ()
| Move largest in column to beginning (not used as doesn't help factorization).
void | unpack (CoinIndexedVector &rowArray, int column) const
| Unpacks a column into an CoinIndexedVector.
void | add (CoinIndexedVector &rowArray, int column, double multiplier) const
| Adds multiple of a column (or slack) into an CoinIndexedvector You can use quickAdd to add to vector.
Matrix times vector methods
void | timesModifyExcludingSlacks (double scalar, const double *x, double *y) const
| Return `y + A * scalar *x` in `y`.
void | timesModifyIncludingSlacks (double scalar, const double *x, double *y) const
| Return `y + A * scalar(+-1) *x` in `y`.
void | timesIncludingSlacks (double scalar, const double *x, double *y) const
| Return `A * scalar(+-1) *x` in `y`.
void | transposeTimesNonBasic (double scalar, const double *x, double *y) const
| Return A * scalar(+-1) *x + y in `y`.
void | transposeTimesAll (const double *x, double *y) const
| Return y - A * x in `y`.
void | transposeTimesBasic (double scalar, const double *x, double *y) const
| Return y + A * scalar(+-1) *x in `y`.
int | transposeTimesNonBasic (double scalar, const CoinIndexedVector &x, CoinIndexedVector &z) const
| Return `x * scalar * A/code> in `z`.`
double | dualColumn1 (const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta
double | dualColumn1Row (int iBlock, double upperThetaSlack, int &freeSequence, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta
double | dualColumn1RowFew (int iBlock, double upperThetaSlack, int &freeSequence, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta
double | dualColumn1Row2 (double upperThetaSlack, int &freeSequence, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta
double | dualColumn1Row1 (double upperThetaSlack, int &freeSequence, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta
void | dualColumn1Part (int iBlock, int &sequenceIn, double &upperTheta, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta On input first,last give what to scan On output is number in tableauRow and candidateList
void | rebalance () const
| rebalance for parallel
int | pivotColumnDantzig (const CoinIndexedVector &updates, CoinPartitionedVector &spare) const
| Get sequenceIn when Dantzig.
int | pivotColumnDantzig (int iBlock, bool doByRow, const CoinIndexedVector &updates, CoinPartitionedVector &spare, double &bestValue) const
| Get sequenceIn when Dantzig (One block).
int | primalColumnRow (int iBlock, bool doByRow, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow) const
| gets tableau row - returns number of slacks in block
int | primalColumnRowAndDjs (int iBlock, const CoinIndexedVector &updateTableau, const CoinIndexedVector &updateDjs, CoinPartitionedVector &tableauRow) const
| gets tableau row and dj row - returns number of slacks in block
int | chooseBestDj (int iBlock, const CoinIndexedVector &infeasibilities, const double *weights) const
| Chooses best weighted dj.
int | primalColumnDouble (int iBlock, CoinPartitionedVector &updateForTableauRow, CoinPartitionedVector &updateForDjs, const CoinIndexedVector &updateForWeights, CoinPartitionedVector &spareColumn1, double *infeasibilities, double referenceIn, double devex, unsigned int *reference, double *weights, double scaleFactor) const
| does steepest edge double or triple update If scaleFactor!=0 then use with tableau row to update djs otherwise use updateForDjs Returns best sequence
int | primalColumnSparseDouble (int iBlock, CoinPartitionedVector &updateForTableauRow, CoinPartitionedVector &updateForDjs, const CoinIndexedVector &updateForWeights, CoinPartitionedVector &spareColumn1, double *infeasibilities, double referenceIn, double devex, unsigned int *reference, double *weights, double scaleFactor) const
| does steepest edge double or triple update If scaleFactor!=0 then use with tableau row to update djs otherwise use updateForDjs Returns best sequence
int | primalColumnDouble (CoinPartitionedVector &updateForTableauRow, CoinPartitionedVector &updateForDjs, const CoinIndexedVector &updateForWeights, CoinPartitionedVector &spareColumn1, CoinIndexedVector &infeasible, double referenceIn, double devex, unsigned int *reference, double *weights, double scaleFactor) const
| does steepest edge double or triple update If scaleFactor!=0 then use with tableau row to update djs otherwise use updateForDjs Returns best sequence
void | primalColumnSubset (int iBlock, const CoinIndexedVector &update, const CoinPartitionedVector &tableauRow, CoinPartitionedVector &weights) const
| gets subset updates
void | partialPricing (double startFraction, double endFraction, int &bestSequence, int &numberWanted)
| Partial pricing.
void | subsetTransposeTimes (const CoinIndexedVector &x, CoinIndexedVector &z) const
| Return `x *A` in `z` but just for indices Already in z.
void | transposeTimes (const CoinIndexedVector &x, CoinIndexedVector &z) const
| Return `-x *A` in `z`.
Other
CoinPackedMatrix * | matrix () const
| Returns CoinPackedMatrix (non const).
int | minimumObjectsScan () const
| Partial pricing tuning parameter - minimum number of "objects" to scan.
void | setMinimumObjectsScan (int value)
int | minimumGoodReducedCosts () const
| Partial pricing tuning parameter - minimum number of negative reduced costs to get.
void | setMinimumGoodReducedCosts (int value)
double | startFraction () const
| Current start of search space in matrix (as fraction).
void | setStartFraction (double value)
double | endFraction () const
| Current end of search space in matrix (as fraction).
void | setEndFraction (double value)
double | savedBestDj () const
| Current best reduced cost.
void | setSavedBestDj (double value)
int | originalWanted () const
| Initial number of negative reduced costs wanted.
void | setOriginalWanted (int value)
int | currentWanted () const
| Current number of negative reduced costs which we still need.
void | setCurrentWanted (int value)
int | savedBestSequence () const
| Current best sequence.
void | setSavedBestSequence (int value)
int * | startColumnBlock () const
| Start of each column block.
const int * | blockStart () const
| Start of each block (in stored).
bool | gotRowCopy () const
int | blockStart (int block) const
| Start of each block (in stored).
int | numberColumnBlocks () const
| Number of actual column blocks.
int | numberRowBlocks () const
| Number of actual row blocks.
Constructors, destructor
| AbcMatrix ()
| Default constructor.
| ~AbcMatrix ()
| Destructor.
Copy method
| AbcMatrix (const AbcMatrix &)
| The copy constructor.
| AbcMatrix (const CoinPackedMatrix &)
| The copy constructor from an CoinPackedMatrix.
| AbcMatrix (const AbcMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns)
| Subset constructor (without gaps).
| AbcMatrix (const CoinPackedMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns)
AbcMatrix & | operator= (const AbcMatrix &)
void | copy (const AbcMatrix *from)
| Copy contents - resizing if necessary - otherwise re-use memory.
## Protected Attributes
Data members
The data members are protected to allow access for derived classes.
CoinPackedMatrix * | matrix_
| Data.
AbcSimplex * | model_
| Model.
CoinBigIndex * | rowStart_
| Start of each row (per block) - last lot are useless first all row starts for block 0, then for block2 so NUMBER_ROW_BLOCKS+2 times number rows.
double * | element_
| Values by row.
int * | column_
| Columns.
int | startColumnBlock_ [NUMBER_COLUMN_BLOCKS+1]
| Start of each column block.
int | blockStart_ [NUMBER_ROW_BLOCKS+1]
| Start of each block (in stored).
int | numberColumnBlocks_
| Number of actual column blocks.
int | numberRowBlocks_
| Number of actual row blocks.
double | startFraction_
| Special row copy.
double | endFraction_
| Current end of search space in matrix (as fraction).
double | savedBestDj_
| Best reduced cost so far.
int | originalWanted_
| Initial number of negative reduced costs wanted.
int | currentWanted_
| Current number of negative reduced costs which we still need.
int | savedBestSequence_
| Saved best sequence in pricing.
int | minimumObjectsScan_
| Partial pricing tuning parameter - minimum number of "objects" to scan.
int | minimumGoodReducedCosts_
| Partial pricing tuning parameter - minimum number of negative reduced costs to get.

## Detailed Description

Definition at line 22 of file AbcMatrix.hpp.

## Constructor & Destructor Documentation

AbcMatrix::AbcMatrix | ( |  | ) |

Default constructor.

AbcMatrix::~AbcMatrix | ( |  | ) |

Destructor.

AbcMatrix::AbcMatrix | ( | const AbcMatrix & |  | ) |

The copy constructor.

AbcMatrix::AbcMatrix | ( | const CoinPackedMatrix & |  | ) |

The copy constructor from an CoinPackedMatrix.

AbcMatrix::AbcMatrix | ( | const AbcMatrix & | wholeModel,
|  | int | numberRows,
|  | const int * | whichRows,
|  | int | numberColumns,
|  | const int * | whichColumns |
| ) |  |  |

Subset constructor (without gaps).

Duplicates are allowed and order is as given

AbcMatrix::AbcMatrix | ( | const CoinPackedMatrix & | wholeModel,
|  | int | numberRows,
|  | const int * | whichRows,
|  | int | numberColumns,
|  | const int * | whichColumns |
| ) |  |  |

## Member Function Documentation

CoinPackedMatrix* AbcMatrix::getPackedMatrix | ( |  | ) | const`[inline]`

Return a complete CoinPackedMatrix.

Definition at line 28 of file AbcMatrix.hpp.

bool AbcMatrix::isColOrdered | ( |  | ) | const`[inline]`

Whether the packed matrix is column major ordered or not.

Definition at line 32 of file AbcMatrix.hpp.

CoinBigIndex AbcMatrix::getNumElements | ( |  | ) | const`[inline]`

Number of entries in the packed matrix.

Definition at line 36 of file AbcMatrix.hpp.

int AbcMatrix::getNumCols | ( |  | ) | const`[inline]`

Number of columns.

Definition at line 40 of file AbcMatrix.hpp.

int AbcMatrix::getNumRows | ( |  | ) | const`[inline]`

Number of rows.

Definition at line 44 of file AbcMatrix.hpp.

void AbcMatrix::setModel | ( | AbcSimplex * | model | ) |

Sets model.

const double* AbcMatrix::getElements | ( |  | ) | const`[inline]`

A vector containing the elements in the packed matrix.

Definition at line 50 of file AbcMatrix.hpp.

double* AbcMatrix::getMutableElements | ( |  | ) | const`[inline]`

Mutable elements.

Definition at line 54 of file AbcMatrix.hpp.

const int* AbcMatrix::getIndices | ( |  | ) | const`[inline]`

A vector containing the minor indices of the elements in the packed matrix.

Definition at line 58 of file AbcMatrix.hpp.

int* AbcMatrix::getMutableIndices | ( |  | ) | const`[inline]`

A vector containing the minor indices of the elements in the packed matrix.

Definition at line 62 of file AbcMatrix.hpp.

const CoinBigIndex* AbcMatrix::getVectorStarts | ( |  | ) | const`[inline]`

Starts.

Definition at line 66 of file AbcMatrix.hpp.

CoinBigIndex* AbcMatrix::getMutableVectorStarts | ( |  | ) | const`[inline]`

Definition at line 69 of file AbcMatrix.hpp.

const int* AbcMatrix::getVectorLengths | ( |  | ) | const`[inline]`

The lengths of the major-dimension vectors.

Definition at line 73 of file AbcMatrix.hpp.

int* AbcMatrix::getMutableVectorLengths | ( |  | ) | const`[inline]`

The lengths of the major-dimension vectors.

Definition at line 77 of file AbcMatrix.hpp.

CoinBigIndex* AbcMatrix::rowStart | ( |  | ) | const

Row starts.

CoinBigIndex* AbcMatrix::rowEnd | ( |  | ) | const

Row ends.

double* AbcMatrix::rowElements | ( |  | ) | const

Row elements.

CoinSimplexInt* AbcMatrix::rowColumns | ( |  | ) | const

Row columns.

CoinPackedMatrix* AbcMatrix::reverseOrderedCopy | ( |  | ) | const

Returns a new matrix in reverse order without gaps.

CoinBigIndex AbcMatrix::countBasis | ( | const int * | whichColumn,
|  | int & | numberColumnBasic |
| ) |  |  |

Returns number of elements in column part of basis.

void AbcMatrix::fillBasis | ( | const int * | whichColumn,
|  | int & | numberColumnBasic,
|  | int * | row,
|  | int * | start,
|  | int * | rowCount,
|  | int * | columnCount,
|  | CoinSimplexDouble * | element |
| ) |  |  |

Fills in column part of basis.

void AbcMatrix::fillBasis | ( | const int * | whichColumn,
|  | int & | numberColumnBasic,
|  | int * | row,
|  | int * | start,
|  | int * | rowCount,
|  | int * | columnCount,
|  | long double * | element |
| ) |  |  |

Fills in column part of basis.

void AbcMatrix::scale | ( | int | numberRowsAlreadyScaled | ) |

Scales and creates row copy.

void AbcMatrix::createRowCopy | ( |  | ) |

Creates row copy.

void AbcMatrix::takeOutOfUseful | ( | int | sequence,
|  | CoinIndexedVector & | spare |
| ) |  |  |

Take out of useful.

void AbcMatrix::putIntofUseful | ( | int | sequence,
|  | CoinIndexedVector & | spare |
| ) |  |  |

Put into useful.

void AbcMatrix::inOutUseful | ( | int | sequenceIn,
|  | int | sequenceOut |
| ) |  |  |

Put in and out for useful.

void AbcMatrix::makeAllUseful | ( | CoinIndexedVector & | spare | ) |

Make all useful.

void AbcMatrix::sortUseful | ( | CoinIndexedVector & | spare | ) |

Sort into useful.

void AbcMatrix::moveLargestToStart | ( |  | ) |

Move largest in column to beginning (not used as doesn't help factorization).

void AbcMatrix::unpack | ( | CoinIndexedVector & | rowArray,
|  | int | column |
| ) |  |  | const

Unpacks a column into an CoinIndexedVector.

void AbcMatrix::add | ( | CoinIndexedVector & | rowArray,
|  | int | column,
|  | double | multiplier |
| ) |  |  | const

Adds multiple of a column (or slack) into an CoinIndexedvector You can use quickAdd to add to vector.

void AbcMatrix::timesModifyExcludingSlacks | ( | double | scalar,
|  | const double * | x,
|  | double * | y |
| ) |  |  | const

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

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

void AbcMatrix::timesModifyIncludingSlacks | ( | double | scalar,
|  | const double * | x,
|  | double * | y |
| ) |  |  | const

Return `y + A * scalar(+-1) *x` in `y`.

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

void AbcMatrix::timesIncludingSlacks | ( | double | scalar,
|  | const double * | x,
|  | double * | y |
| ) |  |  | const

Return `A * scalar(+-1) *x` in `y`.

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

void AbcMatrix::transposeTimesNonBasic | ( | double | scalar,
|  | const double * | x,
|  | double * | y |
| ) |  |  | const

Return A * scalar(+-1) *x + y in `y`.

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

void AbcMatrix::transposeTimesAll | ( | const double * | x,
|  | double * | y |
| ) |  |  | const

Return y - A * x in `y`.

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

void AbcMatrix::transposeTimesBasic | ( | double | scalar,
|  | const double * | x,
|  | double * | y |
| ) |  |  | const

Return y + A * scalar(+-1) *x in `y`.

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

int AbcMatrix::transposeTimesNonBasic | ( | double | scalar,
|  | const CoinIndexedVector & | x,
|  | CoinIndexedVector & | z |
| ) |  |  | const

Return `x * scalar * A/code> in `z`.`

Note - x unpacked mode - z packed mode including slacks All these return atLo/atUp first then free/superbasic number of first set returned pivotVariable is extended to have that order reversePivotVariable used to update that list free/superbasic only stored in normal format can use spare array to get this effect may put djs alongside atLo/atUp Squashes small elements and knows about AbcSimplex

double AbcMatrix::dualColumn1 | ( | const CoinIndexedVector & | update,
|  | CoinPartitionedVector & | tableauRow,
|  | CoinPartitionedVector & | candidateList |
| ) |  |  | const

gets sorted tableau row and a possible value of theta

double AbcMatrix::dualColumn1Row | ( | int | iBlock,
|  | double | upperThetaSlack,
|  | int & | freeSequence,
|  | const CoinIndexedVector & | update,
|  | CoinPartitionedVector & | tableauRow,
|  | CoinPartitionedVector & | candidateList |
| ) |  |  | const

gets sorted tableau row and a possible value of theta

double AbcMatrix::dualColumn1RowFew | ( | int | iBlock,
|  | double | upperThetaSlack,
|  | int & | freeSequence,
|  | const CoinIndexedVector & | update,
|  | CoinPartitionedVector & | tableauRow,
|  | CoinPartitionedVector & | candidateList |
| ) |  |  | const

gets sorted tableau row and a possible value of theta

double AbcMatrix::dualColumn1Row2 | ( | double | upperThetaSlack,
|  | int & | freeSequence,
|  | const CoinIndexedVector & | update,
|  | CoinPartitionedVector & | tableauRow,
|  | CoinPartitionedVector & | candidateList |
| ) |  |  | const

gets sorted tableau row and a possible value of theta

double AbcMatrix::dualColumn1Row1 | ( | double | upperThetaSlack,
|  | int & | freeSequence,
|  | const CoinIndexedVector & | update,
|  | CoinPartitionedVector & | tableauRow,
|  | CoinPartitionedVector & | candidateList |
| ) |  |  | const

gets sorted tableau row and a possible value of theta

void AbcMatrix::dualColumn1Part | ( | int | iBlock,
|  | int & | sequenceIn,
|  | double & | upperTheta,
|  | const CoinIndexedVector & | update,
|  | CoinPartitionedVector & | tableauRow,
|  | CoinPartitionedVector & | candidateList |
| ) |  |  | const

gets sorted tableau row and a possible value of theta On input first,last give what to scan On output is number in tableauRow and candidateList

void AbcMatrix::rebalance | ( |  | ) | const

rebalance for parallel

int AbcMatrix::pivotColumnDantzig | ( | const CoinIndexedVector & | updates,
|  | CoinPartitionedVector & | spare |
| ) |  |  | const

Get sequenceIn when Dantzig.

int AbcMatrix::pivotColumnDantzig | ( | int | iBlock,
|  | bool | doByRow,
|  | const CoinIndexedVector & | updates,
|  | CoinPartitionedVector & | spare,
|  | double & | bestValue |
| ) |  |  | const

Get sequenceIn when Dantzig (One block).

int AbcMatrix::primalColumnRow | ( | int | iBlock,
|  | bool | doByRow,
|  | const CoinIndexedVector & | update,
|  | CoinPartitionedVector & | tableauRow |
| ) |  |  | const

gets tableau row - returns number of slacks in block

int AbcMatrix::primalColumnRowAndDjs | ( | int | iBlock,
|  | const CoinIndexedVector & | updateTableau,
|  | const CoinIndexedVector & | updateDjs,
|  | CoinPartitionedVector & | tableauRow |
| ) |  |  | const

gets tableau row and dj row - returns number of slacks in block

int AbcMatrix::chooseBestDj | ( | int | iBlock,
|  | const CoinIndexedVector & | infeasibilities,
|  | const double * | weights |
| ) |  |  | const

Chooses best weighted dj.

int AbcMatrix::primalColumnDouble | ( | int | iBlock,
|  | CoinPartitionedVector & | updateForTableauRow,
|  | CoinPartitionedVector & | updateForDjs,
|  | const CoinIndexedVector & | updateForWeights,
|  | CoinPartitionedVector & | spareColumn1,
|  | double * | infeasibilities,
|  | double | referenceIn,
|  | double | devex,
|  | unsigned int * | reference,
|  | double * | weights,
|  | double | scaleFactor |
| ) |  |  | const

does steepest edge double or triple update If scaleFactor!=0 then use with tableau row to update djs otherwise use updateForDjs Returns best sequence

int AbcMatrix::primalColumnSparseDouble | ( | int | iBlock,
|  | CoinPartitionedVector & | updateForTableauRow,
|  | CoinPartitionedVector & | updateForDjs,
|  | const CoinIndexedVector & | updateForWeights,
|  | CoinPartitionedVector & | spareColumn1,
|  | double * | infeasibilities,
|  | double | referenceIn,
|  | double | devex,
|  | unsigned int * | reference,
|  | double * | weights,
|  | double | scaleFactor |
| ) |  |  | const

does steepest edge double or triple update If scaleFactor!=0 then use with tableau row to update djs otherwise use updateForDjs Returns best sequence

int AbcMatrix::primalColumnDouble | ( | CoinPartitionedVector & | updateForTableauRow,
|  | CoinPartitionedVector & | updateForDjs,
|  | const CoinIndexedVector & | updateForWeights,
|  | CoinPartitionedVector & | spareColumn1,
|  | CoinIndexedVector & | infeasible,
|  | double | referenceIn,
|  | double | devex,
|  | unsigned int * | reference,
|  | double * | weights,
|  | double | scaleFactor |
| ) |  |  | const

does steepest edge double or triple update If scaleFactor!=0 then use with tableau row to update djs otherwise use updateForDjs Returns best sequence

void AbcMatrix::primalColumnSubset | ( | int | iBlock,
|  | const CoinIndexedVector & | update,
|  | const CoinPartitionedVector & | tableauRow,
|  | CoinPartitionedVector & | weights |
| ) |  |  | const

gets subset updates

void AbcMatrix::partialPricing | ( | double | startFraction,
|  | double | endFraction,
|  | int & | bestSequence,
|  | int & | numberWanted |
| ) |  |  |

Partial pricing.

void AbcMatrix::subsetTransposeTimes | ( | const CoinIndexedVector & | x,
|  | CoinIndexedVector & | z |
| ) |  |  | const

Return `x *A` in `z` but just for indices Already in z.

Note - z always packed mode

void AbcMatrix::transposeTimes | ( | const CoinIndexedVector & | x,
|  | CoinIndexedVector & | z |
| ) |  |  | const

Return `-x *A` in `z`.

CoinPackedMatrix* AbcMatrix::matrix | ( |  | ) | const`[inline]`

Returns CoinPackedMatrix (non const).

Definition at line 289 of file AbcMatrix.hpp.

int AbcMatrix::minimumObjectsScan | ( |  | ) | const`[inline]`

Partial pricing tuning parameter - minimum number of "objects" to scan.

e.g. number of Gub sets but could be number of variables

Definition at line 294 of file AbcMatrix.hpp.

void AbcMatrix::setMinimumObjectsScan | ( | int | value | ) | `[inline]`

Definition at line 297 of file AbcMatrix.hpp.

int AbcMatrix::minimumGoodReducedCosts | ( |  | ) | const`[inline]`

Partial pricing tuning parameter - minimum number of negative reduced costs to get.

Definition at line 301 of file AbcMatrix.hpp.

void AbcMatrix::setMinimumGoodReducedCosts | ( | int | value | ) | `[inline]`

Definition at line 304 of file AbcMatrix.hpp.

double AbcMatrix::startFraction | ( |  | ) | const`[inline]`

Current start of search space in matrix (as fraction).

Definition at line 308 of file AbcMatrix.hpp.

void AbcMatrix::setStartFraction | ( | double | value | ) | `[inline]`

Definition at line 311 of file AbcMatrix.hpp.

double AbcMatrix::endFraction | ( |  | ) | const`[inline]`

Current end of search space in matrix (as fraction).

Definition at line 315 of file AbcMatrix.hpp.

void AbcMatrix::setEndFraction | ( | double | value | ) | `[inline]`

Definition at line 318 of file AbcMatrix.hpp.

double AbcMatrix::savedBestDj | ( |  | ) | const`[inline]`

Current best reduced cost.

Definition at line 322 of file AbcMatrix.hpp.

void AbcMatrix::setSavedBestDj | ( | double | value | ) | `[inline]`

Definition at line 325 of file AbcMatrix.hpp.

int AbcMatrix::originalWanted | ( |  | ) | const`[inline]`

Initial number of negative reduced costs wanted.

Definition at line 329 of file AbcMatrix.hpp.

void AbcMatrix::setOriginalWanted | ( | int | value | ) | `[inline]`

Definition at line 332 of file AbcMatrix.hpp.

int AbcMatrix::currentWanted | ( |  | ) | const`[inline]`

Current number of negative reduced costs which we still need.

Definition at line 336 of file AbcMatrix.hpp.

void AbcMatrix::setCurrentWanted | ( | int | value | ) | `[inline]`

Definition at line 339 of file AbcMatrix.hpp.

int AbcMatrix::savedBestSequence | ( |  | ) | const`[inline]`

Current best sequence.

Definition at line 343 of file AbcMatrix.hpp.

void AbcMatrix::setSavedBestSequence | ( | int | value | ) | `[inline]`

Definition at line 346 of file AbcMatrix.hpp.

int* AbcMatrix::startColumnBlock | ( |  | ) | const`[inline]`

Start of each column block.

Definition at line 350 of file AbcMatrix.hpp.

const int* AbcMatrix::blockStart | ( |  | ) | const`[inline]`

Start of each block (in stored).

Definition at line 353 of file AbcMatrix.hpp.

bool AbcMatrix::gotRowCopy | ( |  | ) | const`[inline]`

Definition at line 355 of file AbcMatrix.hpp.

int AbcMatrix::blockStart | ( | int | block | ) | const`[inline]`

Start of each block (in stored).

Definition at line 358 of file AbcMatrix.hpp.

int AbcMatrix::numberColumnBlocks | ( |  | ) | const`[inline]`

Number of actual column blocks.

Definition at line 361 of file AbcMatrix.hpp.

int AbcMatrix::numberRowBlocks | ( |  | ) | const`[inline]`

Number of actual row blocks.

Definition at line 364 of file AbcMatrix.hpp.

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

void AbcMatrix::copy | ( | const AbcMatrix * | from | ) |

Copy contents - resizing if necessary - otherwise re-use memory.

## Member Data Documentation

CoinPackedMatrix* AbcMatrix::matrix_`[protected]`

Data.

Definition at line 403 of file AbcMatrix.hpp.

AbcSimplex* AbcMatrix::model_`[mutable, protected]`

Model.

Definition at line 405 of file AbcMatrix.hpp.

CoinBigIndex* AbcMatrix::rowStart_`[protected]`

Start of each row (per block) - last lot are useless first all row starts for block 0, then for block2 so NUMBER_ROW_BLOCKS+2 times number rows.

Definition at line 419 of file AbcMatrix.hpp.

double* AbcMatrix::element_`[protected]`

Values by row.

Definition at line 421 of file AbcMatrix.hpp.

int* AbcMatrix::column_`[protected]`

Columns.

Definition at line 423 of file AbcMatrix.hpp.

int AbcMatrix::startColumnBlock_[NUMBER_COLUMN_BLOCKS+1]`[mutable, protected]`

Start of each column block.

Definition at line 425 of file AbcMatrix.hpp.

int AbcMatrix::blockStart_[NUMBER_ROW_BLOCKS+1]`[protected]`

Start of each block (in stored).

Definition at line 427 of file AbcMatrix.hpp.

int AbcMatrix::numberColumnBlocks_`[mutable, protected]`

Number of actual column blocks.

Definition at line 429 of file AbcMatrix.hpp.

int AbcMatrix::numberRowBlocks_`[protected]`

Number of actual row blocks.

Definition at line 431 of file AbcMatrix.hpp.

double AbcMatrix::startFraction_`[protected]`

Special row copy.

Special column copy Current start of search space in matrix (as fraction)

Definition at line 453 of file AbcMatrix.hpp.

double AbcMatrix::endFraction_`[protected]`

Current end of search space in matrix (as fraction).

Definition at line 455 of file AbcMatrix.hpp.

double AbcMatrix::savedBestDj_`[protected]`

Best reduced cost so far.

Definition at line 457 of file AbcMatrix.hpp.

int AbcMatrix::originalWanted_`[protected]`

Initial number of negative reduced costs wanted.

Definition at line 459 of file AbcMatrix.hpp.

int AbcMatrix::currentWanted_`[protected]`

Current number of negative reduced costs which we still need.

Definition at line 461 of file AbcMatrix.hpp.

int AbcMatrix::savedBestSequence_`[protected]`

Saved best sequence in pricing.

Definition at line 463 of file AbcMatrix.hpp.

int AbcMatrix::minimumObjectsScan_`[protected]`

Partial pricing tuning parameter - minimum number of "objects" to scan.

Definition at line 465 of file AbcMatrix.hpp.

int AbcMatrix::minimumGoodReducedCosts_`[protected]`

Partial pricing tuning parameter - minimum number of negative reduced costs to get.

Definition at line 467 of file AbcMatrix.hpp.

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

- /home/coin/svn-release/Clp-1.15.11/Clp/src/AbcMatrix.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines