Loading...
Searching...
No Matches
AbcMatrix Class Reference

`#include <AbcMatrix.hpp>`

Collaboration diagram for AbcMatrix:
[legend]

## 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() [1/5]

AbcMatrix::AbcMatrix | ( |  | ) |

Default constructor.

## ~AbcMatrix()

AbcMatrix::~AbcMatrix | ( |  | ) |

Destructor.

## AbcMatrix() [2/5]

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

The copy constructor.

## AbcMatrix() [3/5]

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

The copy constructor from an CoinPackedMatrix.

## AbcMatrix() [4/5]

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() [5/5]

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

## Member Function Documentation

## getPackedMatrix()

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

inline

Return a complete CoinPackedMatrix.

Definition at line 28 of file AbcMatrix.hpp.

## isColOrdered()

bool AbcMatrix::isColOrdered | ( |  | ) | const

inline

Whether the packed matrix is column major ordered or not.

Definition at line 33 of file AbcMatrix.hpp.

## getNumElements()

CoinBigIndex AbcMatrix::getNumElements | ( |  | ) | const

inline

Number of entries in the packed matrix.

Definition at line 38 of file AbcMatrix.hpp.

## getNumCols()

int AbcMatrix::getNumCols | ( |  | ) | const

inline

Number of columns.

Definition at line 43 of file AbcMatrix.hpp.

## getNumRows()

int AbcMatrix::getNumRows | ( |  | ) | const

inline

Number of rows.

Definition at line 49 of file AbcMatrix.hpp.

## setModel()

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

Sets model.

## getElements()

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

inline

A vector containing the elements in the packed matrix.

Definition at line 57 of file AbcMatrix.hpp.

## getMutableElements()

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

inline

Mutable elements.

Definition at line 62 of file AbcMatrix.hpp.

## getIndices()

const int * AbcMatrix::getIndices | ( |  | ) | const

inline

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

Definition at line 67 of file AbcMatrix.hpp.

## getMutableIndices()

int * AbcMatrix::getMutableIndices | ( |  | ) | const

inline

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

Definition at line 72 of file AbcMatrix.hpp.

## getVectorStarts()

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

inline

Starts.

Definition at line 77 of file AbcMatrix.hpp.

## getMutableVectorStarts()

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

inline

Definition at line 81 of file AbcMatrix.hpp.

## getVectorLengths()

const int * AbcMatrix::getVectorLengths | ( |  | ) | const

inline

The lengths of the major-dimension vectors.

Definition at line 86 of file AbcMatrix.hpp.

## getMutableVectorLengths()

int * AbcMatrix::getMutableVectorLengths | ( |  | ) | const

inline

The lengths of the major-dimension vectors.

Definition at line 91 of file AbcMatrix.hpp.

## rowStart()

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

Row starts.

## rowEnd()

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

Row ends.

## rowElements()

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

Row elements.

## rowColumns()

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

Row columns.

## reverseOrderedCopy()

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

Returns a new matrix in reverse order without gaps.

## countBasis()

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

Returns number of elements in column part of basis.

## fillBasis() [1/2]

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

Fills in column part of basis.

## fillBasis() [2/2]

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.

## scale()

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

Scales and creates row copy.

## createRowCopy()

void AbcMatrix::createRowCopy | ( |  | ) |

Creates row copy.

## takeOutOfUseful()

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

Take out of useful.

## putIntofUseful()

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

Put into useful.

## inOutUseful()

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

Put in and out for useful.

## makeAllUseful()

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

Make all useful.

## sortUseful()

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

Sort into useful.

## moveLargestToStart()

void AbcMatrix::moveLargestToStart | ( |  | ) |

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

## unpack()

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

Unpacks a column into an CoinIndexedVector.

## add()

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.

## timesModifyExcludingSlacks()

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()`

## timesModifyIncludingSlacks()

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()`

## timesIncludingSlacks()

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()`

## transposeTimesNonBasic() [1/2]

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()`

## transposeTimesAll()

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()`

## transposeTimesBasic()

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()`

## transposeTimesNonBasic() [2/2]

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

## dualColumn1()

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

gets sorted tableau row and a possible value of theta

## dualColumn1Row()

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

## dualColumn1RowFew()

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

## dualColumn1Row2()

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

## dualColumn1Row1()

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

## dualColumn1Part()

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

## rebalance()

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

rebalance for parallel

## pivotColumnDantzig() [1/2]

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

Get sequenceIn when Dantzig.

## pivotColumnDantzig() [2/2]

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

Get sequenceIn when Dantzig (One block).

## primalColumnRow()

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

gets tableau row - returns number of slacks in block

## primalColumnRowAndDjs()

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

## chooseBestDj()

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

Chooses best weighted dj.

## primalColumnDouble() [1/2]

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

## primalColumnSparseDouble()

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

## primalColumnDouble() [2/2]

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

## primalColumnSubset()

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

gets subset updates

## partialPricing()

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

Partial pricing.

## subsetTransposeTimes()

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

## transposeTimes()

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

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

## matrix()

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

inline

Returns CoinPackedMatrix (non const).

Definition at line 304 of file AbcMatrix.hpp.

## minimumObjectsScan()

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 310 of file AbcMatrix.hpp.

## setMinimumObjectsScan()

void AbcMatrix::setMinimumObjectsScan | ( | int | value | ) |

inline

Definition at line 314 of file AbcMatrix.hpp.

## minimumGoodReducedCosts()

int AbcMatrix::minimumGoodReducedCosts | ( |  | ) | const

inline

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

Definition at line 319 of file AbcMatrix.hpp.

## setMinimumGoodReducedCosts()

void AbcMatrix::setMinimumGoodReducedCosts | ( | int | value | ) |

inline

Definition at line 323 of file AbcMatrix.hpp.

## startFraction()

double AbcMatrix::startFraction | ( |  | ) | const

inline

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

Definition at line 328 of file AbcMatrix.hpp.

## setStartFraction()

void AbcMatrix::setStartFraction | ( | double | value | ) |

inline

Definition at line 332 of file AbcMatrix.hpp.

## endFraction()

double AbcMatrix::endFraction | ( |  | ) | const

inline

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

Definition at line 337 of file AbcMatrix.hpp.

## setEndFraction()

void AbcMatrix::setEndFraction | ( | double | value | ) |

inline

Definition at line 341 of file AbcMatrix.hpp.

## savedBestDj()

double AbcMatrix::savedBestDj | ( |  | ) | const

inline

Current best reduced cost.

Definition at line 346 of file AbcMatrix.hpp.

## setSavedBestDj()

void AbcMatrix::setSavedBestDj | ( | double | value | ) |

inline

Definition at line 350 of file AbcMatrix.hpp.

## originalWanted()

int AbcMatrix::originalWanted | ( |  | ) | const

inline

Initial number of negative reduced costs wanted.

Definition at line 355 of file AbcMatrix.hpp.

## setOriginalWanted()

void AbcMatrix::setOriginalWanted | ( | int | value | ) |

inline

Definition at line 359 of file AbcMatrix.hpp.

## currentWanted()

int AbcMatrix::currentWanted | ( |  | ) | const

inline

Current number of negative reduced costs which we still need.

Definition at line 364 of file AbcMatrix.hpp.

## setCurrentWanted()

void AbcMatrix::setCurrentWanted | ( | int | value | ) |

inline

Definition at line 368 of file AbcMatrix.hpp.

## savedBestSequence()

int AbcMatrix::savedBestSequence | ( |  | ) | const

inline

Current best sequence.

Definition at line 373 of file AbcMatrix.hpp.

## setSavedBestSequence()

void AbcMatrix::setSavedBestSequence | ( | int | value | ) |

inline

Definition at line 377 of file AbcMatrix.hpp.

## startColumnBlock()

int * AbcMatrix::startColumnBlock | ( |  | ) | const

inline

Start of each column block.

Definition at line 382 of file AbcMatrix.hpp.

## blockStart() [1/2]

const int * AbcMatrix::blockStart | ( |  | ) | const

inline

Start of each block (in stored).

Definition at line 387 of file AbcMatrix.hpp.

## gotRowCopy()

bool AbcMatrix::gotRowCopy | ( |  | ) | const

inline

Definition at line 391 of file AbcMatrix.hpp.

## blockStart() [2/2]

int AbcMatrix::blockStart | ( | int | block | ) | const

inline

Start of each block (in stored).

Definition at line 396 of file AbcMatrix.hpp.

## numberColumnBlocks()

int AbcMatrix::numberColumnBlocks | ( |  | ) | const

inline

Number of actual column blocks.

Definition at line 401 of file AbcMatrix.hpp.

## numberRowBlocks()

int AbcMatrix::numberRowBlocks | ( |  | ) | const

inline

Number of actual row blocks.

Definition at line 406 of file AbcMatrix.hpp.

## operator=()

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

## copy()

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

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

## Member Data Documentation

## matrix_

CoinPackedMatrix* AbcMatrix::matrix_

protected

Data.

Definition at line 445 of file AbcMatrix.hpp.

## model_

AbcSimplex* AbcMatrix::model_

mutable protected

Model.

Definition at line 447 of file AbcMatrix.hpp.

## rowStart_

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 461 of file AbcMatrix.hpp.

## element_

double* AbcMatrix::element_

protected

Values by row.

Definition at line 463 of file AbcMatrix.hpp.

## column_

int* AbcMatrix::column_

protected

Columns.

Definition at line 465 of file AbcMatrix.hpp.

## startColumnBlock_

int AbcMatrix::startColumnBlock_[NUMBER_COLUMN_BLOCKS+1]

mutable protected

Start of each column block.

Definition at line 467 of file AbcMatrix.hpp.

## blockStart_

int AbcMatrix::blockStart_[NUMBER_ROW_BLOCKS+1]

protected

Start of each block (in stored).

Definition at line 469 of file AbcMatrix.hpp.

## numberColumnBlocks_

int AbcMatrix::numberColumnBlocks_

mutable protected

Number of actual column blocks.

Definition at line 471 of file AbcMatrix.hpp.

## numberRowBlocks_

int AbcMatrix::numberRowBlocks_

protected

Number of actual row blocks.

Definition at line 473 of file AbcMatrix.hpp.

## startFraction_

double AbcMatrix::startFraction_

protected

Special row copy.

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

Definition at line 495 of file AbcMatrix.hpp.

## endFraction_

double AbcMatrix::endFraction_

protected

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

Definition at line 497 of file AbcMatrix.hpp.

## savedBestDj_

double AbcMatrix::savedBestDj_

protected

Best reduced cost so far.

Definition at line 499 of file AbcMatrix.hpp.

## originalWanted_

int AbcMatrix::originalWanted_

protected

Initial number of negative reduced costs wanted.

Definition at line 501 of file AbcMatrix.hpp.

## currentWanted_

int AbcMatrix::currentWanted_

protected

Current number of negative reduced costs which we still need.

Definition at line 503 of file AbcMatrix.hpp.

## savedBestSequence_

int AbcMatrix::savedBestSequence_

protected

Saved best sequence in pricing.

Definition at line 505 of file AbcMatrix.hpp.

## minimumObjectsScan_

int AbcMatrix::minimumObjectsScan_

protected

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

Definition at line 507 of file AbcMatrix.hpp.

## minimumGoodReducedCosts_

int AbcMatrix::minimumGoodReducedCosts_

protected

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

Definition at line 509 of file AbcMatrix.hpp.

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

- Clp/src/AbcMatrix.hpp