Cgl 0.60.2

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
AbcMatrix Class Reference

`#include <AbcMatrix.hpp>`

Collaboration diagram for AbcMatrix:
[legend]

## Public Member Functions
Useful methods
CoinPackedMatrix * | getPackedMatrix () const
| Return a complete CoinPackedMatrix. More...
bool | isColOrdered () const
| Whether the packed matrix is column major ordered or not. More...
CoinBigIndex | getNumElements () const
| Number of entries in the packed matrix. More...
int | getNumCols () const
| Number of columns. More...
int | getNumRows () const
| Number of rows. More...
void | setModel (AbcSimplex *model)
| Sets model. More...
const double * | getElements () const
| A vector containing the elements in the packed matrix. More...
double * | getMutableElements () const
| Mutable elements. More...
const int * | getIndices () const
| A vector containing the minor indices of the elements in the packed matrix. More...
int * | getMutableIndices () const
| A vector containing the minor indices of the elements in the packed matrix. More...
const CoinBigIndex * | getVectorStarts () const
| Starts. More...
CoinBigIndex * | getMutableVectorStarts () const
const int * | getVectorLengths () const
| The lengths of the major-dimension vectors. More...
int * | getMutableVectorLengths () const
| The lengths of the major-dimension vectors. More...
CoinBigIndex * | rowStart () const
| Row starts. More...
CoinBigIndex * | rowEnd () const
| Row ends. More...
double * | rowElements () const
| Row elements. More...
CoinSimplexInt * | rowColumns () const
| Row columns. More...
CoinPackedMatrix * | reverseOrderedCopy () const
| Returns a new matrix in reverse order without gaps. More...
CoinBigIndex | countBasis (const int *whichColumn, int &numberColumnBasic)
| Returns number of elements in column part of basis. More...
void | fillBasis (const int *whichColumn, int &numberColumnBasic, int *row, int *start, int *rowCount, int *columnCount, CoinSimplexDouble *element)
| Fills in column part of basis. More...
void | fillBasis (const int *whichColumn, int &numberColumnBasic, int *row, int *start, int *rowCount, int *columnCount, long double *element)
| Fills in column part of basis. More...
void | scale (int numberRowsAlreadyScaled)
| Scales and creates row copy. More...
void | createRowCopy ()
| Creates row copy. More...
void | takeOutOfUseful (int sequence, CoinIndexedVector &spare)
| Take out of useful. More...
void | putIntofUseful (int sequence, CoinIndexedVector &spare)
| Put into useful. More...
void | inOutUseful (int sequenceIn, int sequenceOut)
| Put in and out for useful. More...
void | makeAllUseful (CoinIndexedVector &spare)
| Make all useful. More...
void | sortUseful (CoinIndexedVector &spare)
| Sort into useful. More...
void | moveLargestToStart ()
| Move largest in column to beginning (not used as doesn't help factorization) More...
void | unpack (CoinIndexedVector &rowArray, int column) const
| Unpacks a column into an CoinIndexedVector. More...
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. More...
Matrix times vector methods
void | timesModifyExcludingSlacks (double scalar, const double *x, double *y) const
| Return `y + A * scalar *x` in `y`. More...
void | timesModifyIncludingSlacks (double scalar, const double *x, double *y) const
| Return `y + A * scalar(+-1) *x` in `y`. More...
void | timesIncludingSlacks (double scalar, const double *x, double *y) const
| Return `A * scalar(+-1) *x` in `y`. More...
void | transposeTimesNonBasic (double scalar, const double *x, double *y) const
| Return A * scalar(+-1) *x + y in `y`. More...
void | transposeTimesAll (const double *x, double *y) const
| Return y - A * x in `y`. More...
void | transposeTimesBasic (double scalar, const double *x, double *y) const
| Return y + A * scalar(+-1) *x in `y`. More...
int | transposeTimesNonBasic (double scalar, const CoinIndexedVector &x, CoinIndexedVector &z) const
| Return `x * scalar * A/code> in `z`.` More...
double | dualColumn1 (const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta More...
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 More...
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 More...
double | dualColumn1Row2 (double upperThetaSlack, int &freeSequence, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta More...
double | dualColumn1Row1 (double upperThetaSlack, int &freeSequence, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow, CoinPartitionedVector &candidateList) const
| gets sorted tableau row and a possible value of theta More...
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 More...
void | rebalance () const
| rebalance for parallel More...
int | pivotColumnDantzig (const CoinIndexedVector &updates, CoinPartitionedVector &spare) const
| Get sequenceIn when Dantzig. More...
int | pivotColumnDantzig (int iBlock, bool doByRow, const CoinIndexedVector &updates, CoinPartitionedVector &spare, double &bestValue) const
| Get sequenceIn when Dantzig (One block) More...
int | primalColumnRow (int iBlock, bool doByRow, const CoinIndexedVector &update, CoinPartitionedVector &tableauRow) const
| gets tableau row - returns number of slacks in block More...
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 More...
int | chooseBestDj (int iBlock, const CoinIndexedVector &infeasibilities, const double *weights) const
| Chooses best weighted dj. More...
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 More...
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 More...
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 More...
void | primalColumnSubset (int iBlock, const CoinIndexedVector &update, const CoinPartitionedVector &tableauRow, CoinPartitionedVector &weights) const
| gets subset updates More...
void | partialPricing (double startFraction, double endFraction, int &bestSequence, int &numberWanted)
| Partial pricing. More...
void | subsetTransposeTimes (const CoinIndexedVector &x, CoinIndexedVector &z) const
| Return `x *A` in `z` but just for indices Already in z. More...
void | transposeTimes (const CoinIndexedVector &x, CoinIndexedVector &z) const
| Return `-x *A` in `z` More...
Other
CoinPackedMatrix * | matrix () const
| Returns CoinPackedMatrix (non const) More...
int | minimumObjectsScan () const
| Partial pricing tuning parameter - minimum number of "objects" to scan. More...
void | setMinimumObjectsScan (int value)
int | minimumGoodReducedCosts () const
| Partial pricing tuning parameter - minimum number of negative reduced costs to get. More...
void | setMinimumGoodReducedCosts (int value)
double | startFraction () const
| Current start of search space in matrix (as fraction) More...
void | setStartFraction (double value)
double | endFraction () const
| Current end of search space in matrix (as fraction) More...
void | setEndFraction (double value)
double | savedBestDj () const
| Current best reduced cost. More...
void | setSavedBestDj (double value)
int | originalWanted () const
| Initial number of negative reduced costs wanted. More...
void | setOriginalWanted (int value)
int | currentWanted () const
| Current number of negative reduced costs which we still need. More...
void | setCurrentWanted (int value)
int | savedBestSequence () const
| Current best sequence. More...
void | setSavedBestSequence (int value)
int * | startColumnBlock () const
| Start of each column block. More...
const int * | blockStart () const
| Start of each block (in stored) More...
bool | gotRowCopy () const
int | blockStart (int block) const
| Start of each block (in stored) More...
int | numberColumnBlocks () const
| Number of actual column blocks. More...
int | numberRowBlocks () const
| Number of actual row blocks. More...
Constructors, destructor
| AbcMatrix ()
| Default constructor. More...
| ~AbcMatrix ()
| Destructor. More...
Copy method
| AbcMatrix (const AbcMatrix &)
| The copy constructor. More...
| AbcMatrix (const CoinPackedMatrix &)
| The copy constructor from an CoinPackedMatrix. More...
| AbcMatrix (const AbcMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns)
| Subset constructor (without gaps). More...
| 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. More...

## Protected Attributes
Data members
The data members are protected to allow access for derived classes.
CoinPackedMatrix * | matrix_
| Data. More...
AbcSimplex * | model_
| Model. More...
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. More...
double * | element_
| Values by row. More...
int * | column_
| Columns. More...
int | startColumnBlock_ [NUMBER_COLUMN_BLOCKS+1]
| Start of each column block. More...
int | blockStart_ [NUMBER_ROW_BLOCKS+1]
| Start of each block (in stored) More...
int | numberColumnBlocks_
| Number of actual column blocks. More...
int | numberRowBlocks_
| Number of actual row blocks. More...
double | startFraction_
| Special row copy. More...
double | endFraction_
| Current end of search space in matrix (as fraction) More...
double | savedBestDj_
| Best reduced cost so far. More...
int | originalWanted_
| Initial number of negative reduced costs wanted. More...
int | currentWanted_
| Current number of negative reduced costs which we still need. More...
int | savedBestSequence_
| Saved best sequence in pricing. More...
int | minimumObjectsScan_
| Partial pricing tuning parameter - minimum number of "objects" to scan. More...
int | minimumGoodReducedCosts_
| Partial pricing tuning parameter - minimum number of negative reduced costs to get. More...

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

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

Number of entries in the packed matrix.

Definition at line 38 of file AbcMatrix.hpp.

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

Number of columns.

Definition at line 43 of file AbcMatrix.hpp.

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

Number of rows.

Definition at line 49 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 57 of file AbcMatrix.hpp.

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

Mutable elements.

Definition at line 62 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 67 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 72 of file AbcMatrix.hpp.

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

Starts.

Definition at line 77 of file AbcMatrix.hpp.

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

Definition at line 81 of file AbcMatrix.hpp.

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

The lengths of the major-dimension vectors.

Definition at line 86 of file AbcMatrix.hpp.

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

The lengths of the major-dimension vectors.

Definition at line 91 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 304 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 310 of file AbcMatrix.hpp.

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

Definition at line 314 of file AbcMatrix.hpp.

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.

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

Definition at line 323 of file AbcMatrix.hpp.

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

Current start of search space in matrix (as fraction)

Definition at line 328 of file AbcMatrix.hpp.

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

Definition at line 332 of file AbcMatrix.hpp.

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

Current end of search space in matrix (as fraction)

Definition at line 337 of file AbcMatrix.hpp.

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

Definition at line 341 of file AbcMatrix.hpp.

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

Current best reduced cost.

Definition at line 346 of file AbcMatrix.hpp.

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

Definition at line 350 of file AbcMatrix.hpp.

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

Initial number of negative reduced costs wanted.

Definition at line 355 of file AbcMatrix.hpp.

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

Definition at line 359 of file AbcMatrix.hpp.

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

Current number of negative reduced costs which we still need.

Definition at line 364 of file AbcMatrix.hpp.

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

Definition at line 368 of file AbcMatrix.hpp.

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

Current best sequence.

Definition at line 373 of file AbcMatrix.hpp.

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

Definition at line 377 of file AbcMatrix.hpp.

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

Start of each column block.

Definition at line 382 of file AbcMatrix.hpp.

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

Start of each block (in stored)

Definition at line 387 of file AbcMatrix.hpp.

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

Definition at line 391 of file AbcMatrix.hpp.

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

Start of each block (in stored)

Definition at line 396 of file AbcMatrix.hpp.

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

Number of actual column blocks.

Definition at line 401 of file AbcMatrix.hpp.

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

Number of actual row blocks.

Definition at line 406 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 445 of file AbcMatrix.hpp.

AbcSimplex* AbcMatrix::model_
| mutable protected

Model.

Definition at line 447 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 461 of file AbcMatrix.hpp.

double* AbcMatrix::element_
| protected

Values by row.

Definition at line 463 of file AbcMatrix.hpp.

int* AbcMatrix::column_
| protected

Columns.

Definition at line 465 of file AbcMatrix.hpp.

int AbcMatrix::startColumnBlock_[NUMBER_COLUMN_BLOCKS+1]
| mutable protected

Start of each column block.

Definition at line 467 of file AbcMatrix.hpp.

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

Start of each block (in stored)

Definition at line 469 of file AbcMatrix.hpp.

int AbcMatrix::numberColumnBlocks_
| mutable protected

Number of actual column blocks.

Definition at line 471 of file AbcMatrix.hpp.

int AbcMatrix::numberRowBlocks_
| protected

Number of actual row blocks.

Definition at line 473 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 495 of file AbcMatrix.hpp.

double AbcMatrix::endFraction_
| protected

Current end of search space in matrix (as fraction)

Definition at line 497 of file AbcMatrix.hpp.

double AbcMatrix::savedBestDj_
| protected

Best reduced cost so far.

Definition at line 499 of file AbcMatrix.hpp.

int AbcMatrix::originalWanted_
| protected

Initial number of negative reduced costs wanted.

Definition at line 501 of file AbcMatrix.hpp.

int AbcMatrix::currentWanted_
| protected

Current number of negative reduced costs which we still need.

Definition at line 503 of file AbcMatrix.hpp.

int AbcMatrix::savedBestSequence_
| protected

Saved best sequence in pricing.

Definition at line 505 of file AbcMatrix.hpp.

int AbcMatrix::minimumObjectsScan_
| protected

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

Definition at line 507 of file AbcMatrix.hpp.

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:

- /tmp/Cgl-0.60.2/Clp/src/AbcMatrix.hpp