Clp  1.17.8
List of all members
AbcMatrix Class Reference

#include <AbcMatrix.hpp>

+ Collaboration diagram for AbcMatrix:

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...
 
CoinSimplexIntrowColumns () 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)
 
AbcMatrixoperator= (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...
 
AbcSimplexmodel_
 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() [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_
mutableprotected

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]
mutableprotected

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_
mutableprotected

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: