#include <CoinFactorization.hpp>
Inheritance diagram for CoinFactorization:
Public Member Functions | |
Constructors and destructor and copy | |
CoinFactorization () | |
Default constructor. | |
CoinFactorization (const CoinFactorization &other) | |
Copy constructor. | |
~CoinFactorization () | |
Destructor. | |
void | show_self () const |
Debug show object (shows one representation). | |
int | saveFactorization (const char *file) const |
Debug - save on file - 0 if no error. | |
int | restoreFactorization (const char *file, bool factor=false) |
Debug - restore from file - 0 if no error on file. | |
void | sort () const |
Debug - sort so can compare. | |
CoinFactorization & | operator= (const CoinFactorization &other) |
= copy | |
Do factorization | |
int | factorize (const CoinPackedMatrix &matrix, int rowIsBasic[], int columnIsBasic[], double areaFactor=0.0) |
When part of LP - given by basic variables. | |
int | factorize (int numberRows, int numberColumns, CoinBigIndex numberElements, CoinBigIndex maximumL, CoinBigIndex maximumU, const int indicesRow[], const int indicesColumn[], const double elements[], int permutation[], double areaFactor=0.0) |
When given as triplets. | |
int | factorizePart1 (int numberRows, int numberColumns, CoinBigIndex estimateNumberElements, int *indicesRow[], int *indicesColumn[], double *elements[], double areaFactor=0.0) |
Two part version for maximum flexibility This part creates arrays for user to fill. | |
int | factorizePart2 (int permutation[], int exactNumberElements) |
This is part two of factorization Arrays belong to factorization and were returned by part 1 If status okay, permutation has pivot rows - this is only needed If status is singular, then basic variables have pivot row and ones thrown out have -1 returns 0 -okay, -1 singular, -99 memory. | |
general stuff such as permutation or status | |
int | status () const |
Returns status. | |
int | pivots () const |
Returns number of pivots since factorization. | |
int * | permute () const |
Returns address of permute region. | |
int * | pivotColumn () const |
Returns address of pivotColumn region (also used for permuting). | |
int * | permuteBack () const |
Returns address of permuteBack region. | |
int * | pivotColumnBack () const |
Returns address of pivotColumnBack region (also used for permuting). | |
int | numberRowsExtra () const |
Number of Rows after iterating. | |
int | numberRows () const |
Number of Rows after factorization. | |
int | maximumRowsExtra () const |
Maximum of Rows after iterating. | |
int | numberColumns () const |
Total number of columns in factorization. | |
int | numberElements () const |
Total number of elements in factorization. | |
int | numberForrestTomlin () const |
Length of FT vector. | |
int | numberGoodColumns () const |
Number of good columns in factorization. | |
double | areaFactor () const |
Whether larger areas needed. | |
void | areaFactor (double value) |
Returns status. | |
double | adjustedAreaFactor () const |
Returns areaFactor but adjusted for dense. | |
void | relaxAccuracyCheck (double value) |
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed. | |
double | getAccuracyCheck () const |
Returns status. | |
bool | increasingRows () const |
Whether rows increase after pivoting - dummy. | |
void | increasingRows (int value) |
0 - no increasing rows - no nothing (not coded) 1 - no permutation (i.e. | |
int | messageLevel () const |
Level of detail of messages. | |
void | messageLevel (int value) |
Returns status. | |
int | maximumPivots () const |
Maximum number of pivots between factorizations. | |
void | maximumPivots (int value) |
Returns status. | |
int | denseThreshold () const |
Gets dense threshold. | |
void | setDenseThreshold (int value) |
Sets dense threshold. | |
double | pivotTolerance () const |
Pivot tolerance. | |
void | pivotTolerance (double value) |
Returns status. | |
double | zeroTolerance () const |
Zero tolerance. | |
void | zeroTolerance (double value) |
Returns status. | |
double | slackValue () const |
Whether slack value is +1 or -1. | |
void | slackValue (double value) |
Returns status. | |
double | maximumCoefficient () const |
Returns maximum absolute value in factorization. | |
bool | forrestTomlin () const |
true if Forrest Tomlin update, false if PFI | |
void | setForrestTomlin (bool value) |
Returns status. | |
some simple stuff | |
int | numberDense () const |
Returns number of dense rows. | |
CoinBigIndex | numberElementsU () const |
Returns number in U area. | |
CoinBigIndex | lengthAreaU () const |
Returns length of U area. | |
CoinBigIndex | numberElementsL () const |
Returns number in L area. | |
CoinBigIndex | lengthAreaL () const |
Returns length of L area. | |
CoinBigIndex | numberElementsR () const |
Returns number in R area. | |
CoinBigIndex | numberCompressions () const |
Number of compressions done. | |
int | biasLU () const |
L to U bias 0 - U bias, 1 - some U bias, 2 some L bias, 3 L bias. | |
void | setBiasLU (int value) |
Returns number of dense rows. | |
rank one updates which do exist | |
int | replaceColumn (CoinIndexedVector *regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying=false) |
Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room If checkBeforeModifying is true will do all accuracy checks before modifying factorization. | |
various uses of factorization (return code number elements) | |
which user may want to know about | |
int | updateColumnFT (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) |
Updates one column (FTRAN) from regionSparse2 Tries to do FT update number returned is negative if no room regionSparse starts as zero and is zero at end. | |
int | updateColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const |
This version has same effect as above with FTUpdate==false so number returned is always >=0. | |
int | updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const |
Updates one column (BTRAN) from regionSparse2 regionSparse starts as zero and is zero at end Note - if regionSparse2 packed on input - will be packed on output. | |
void | goSparse () |
makes a row copy of L for speed and to allow very sparse problems | |
int | sparseThreshold () const |
get sparse threshold | |
void | sparseThreshold (int value) |
set sparse threshold | |
various uses of factorization (return code number elements) | |
which user may not want to know about (left over from my LP code) | |
void | clearArrays () |
Get rid of all memory. | |
various updates - none of which have been written! | |
int | add (CoinBigIndex numberElements, int indicesRow[], int indicesColumn[], double elements[]) |
Adds given elements to Basis and updates factorization, can increase size of basis. | |
int | addColumn (CoinBigIndex numberElements, int indicesRow[], double elements[]) |
Adds one Column to basis, can increase size of basis. | |
int | addRow (CoinBigIndex numberElements, int indicesColumn[], double elements[]) |
Adds one Row to basis, can increase size of basis. | |
int | deleteColumn (int Row) |
Deletes one Column from basis, returns rank. | |
int | deleteRow (int Row) |
Deletes one Row from basis, returns rank. | |
int | replaceRow (int whichRow, int numberElements, const int indicesColumn[], const double elements[]) |
Replaces one Row in basis, At present assumes just a singleton on row is in basis returns 0=OK, 1=Probably OK, 2=singular, 3 no space. | |
void | emptyRows (int numberToEmpty, const int which[]) |
Takes out all entries for given rows. | |
Protected Member Functions | |
used by factorization | |
void | getAreas (int numberRows, int numberColumns, CoinBigIndex maximumL, CoinBigIndex maximumU) |
Gets space for a factorization, called by constructors. | |
void | preProcess (int state, int possibleDuplicates=-1) |
PreProcesses raw triplet data. | |
int | factor () |
Does most of factorization. | |
int | factorSparse () |
Does sparse phase of factorization return code is <0 error, 0= finished. | |
int | factorDense () |
Does dense phase of factorization return code is <0 error, 0= finished. | |
bool | pivotOneOtherRow (int pivotRow, int pivotColumn) |
Pivots when just one other row so faster? | |
bool | pivotRowSingleton (int pivotRow, int pivotColumn) |
Does one pivot on Row Singleton in factorization. | |
bool | pivotColumnSingleton (int pivotRow, int pivotColumn) |
Does one pivot on Column Singleton in factorization. | |
bool | getColumnSpace (int iColumn, int extraNeeded) |
Gets space for one Column with given length, may have to do compression (returns True if successful), also moves existing vector, extraNeeded is over and above present. | |
bool | getColumnSpaceIterateR (int iColumn, double value, int iRow) |
getColumnSpaceIterateR. | |
CoinBigIndex | getColumnSpaceIterate (int iColumn, double value, int iRow) |
getColumnSpaceIterate. | |
bool | getRowSpace (int iRow, int extraNeeded) |
Gets space for one Row with given length, may have to do compression (returns True if successful), also moves existing vector. | |
bool | getRowSpaceIterate (int iRow, int extraNeeded) |
Gets space for one Row with given length while iterating, may have to do compression (returns True if successful), also moves existing vector. | |
void | checkConsistency () |
Checks that row and column copies look OK. | |
void | addLink (int index, int count) |
Adds a link in chain of equal counts. | |
void | deleteLink (int index) |
Deletes a link in chain of equal counts. | |
void | separateLinks (int count, bool rowsFirst) |
Separate out links with same row/column count. | |
void | cleanup () |
Cleans up at end of factorization. | |
void | updateColumnL (CoinIndexedVector *region, int *indexIn) const |
Updates part of column (FTRANL). | |
void | updateColumnLDensish (CoinIndexedVector *region, int *indexIn) const |
Updates part of column (FTRANL) when densish. | |
void | updateColumnLSparse (CoinIndexedVector *region, int *indexIn) const |
Updates part of column (FTRANL) when sparse. | |
void | updateColumnLSparsish (CoinIndexedVector *region, int *indexIn) const |
Updates part of column (FTRANL) when sparsish. | |
void | updateColumnR (CoinIndexedVector *region) const |
Updates part of column (FTRANR) without FT update. | |
void | updateColumnRFT (CoinIndexedVector *region, int *indexIn) |
Updates part of column (FTRANR) with FT update. | |
void | updateColumnU (CoinIndexedVector *region, int *indexIn) const |
Updates part of column (FTRANU). | |
void | updateColumnUSparse (CoinIndexedVector *regionSparse, int *indexIn) const |
Updates part of column (FTRANU) when sparse. | |
void | updateColumnUSparsish (CoinIndexedVector *regionSparse, int *indexIn) const |
Updates part of column (FTRANU) when sparsish. | |
void | updateColumnUDensish (CoinIndexedVector *regionSparse, int *indexIn) const |
Updates part of column (FTRANU). | |
void | updateColumnPFI (CoinIndexedVector *regionSparse) const |
Updates part of column PFI (FTRAN) (after rest). | |
void | permuteBack (CoinIndexedVector *regionSparse, CoinIndexedVector *outVector) const |
Permutes back at end of updateColumn. | |
void | updateColumnTransposePFI (CoinIndexedVector *region) const |
Updates part of column transpose PFI (BTRAN) (before rest). | |
void | updateColumnTransposeU (CoinIndexedVector *region, int smallestIndex) const |
Updates part of column transpose (BTRANU), assumes index is sorted i.e. | |
void | updateColumnTransposeUSparsish (CoinIndexedVector *region, int smallestIndex) const |
Updates part of column transpose (BTRANU) when sparsish, assumes index is sorted i.e. | |
void | updateColumnTransposeUDensish (CoinIndexedVector *region, int smallestIndex) const |
Updates part of column transpose (BTRANU) when densish, assumes index is sorted i.e. | |
void | updateColumnTransposeUSparse (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANU) when sparse, assumes index is sorted i.e. | |
void | updateColumnTransposeR (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANR). | |
void | updateColumnTransposeRDensish (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANR) when dense. | |
void | updateColumnTransposeRSparse (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANR) when sparse. | |
void | updateColumnTransposeL (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANL). | |
void | updateColumnTransposeLDensish (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANL) when densish by column. | |
void | updateColumnTransposeLByRow (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANL) when densish by row. | |
void | updateColumnTransposeLSparsish (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANL) when sparsish by row. | |
void | updateColumnTransposeLSparse (CoinIndexedVector *region) const |
Updates part of column transpose (BTRANL) when sparse (by Row). | |
int | replaceColumnPFI (CoinIndexedVector *regionSparse, int pivotRow, double alpha) |
Replaces one Column to basis for PFI returns 0=OK, 1=Probably OK, 2=singular, 3=no room. | |
int | checkPivot (double saveFromU, double oldPivot) const |
Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular. | |
void | gutsOfDestructor () |
The real work of constructors etc. | |
void | gutsOfInitialize (int type) |
1 bit - tolerances etc, 2 more, 4 dummy arrays | |
void | gutsOfCopy (const CoinFactorization &other) |
Gets space for a factorization, called by constructors. | |
void | resetStatistics () |
Reset all sparsity etc statistics. | |
template<class T> | |
bool | pivot (int pivotRow, int pivotColumn, CoinBigIndex pivotRowPosition, CoinBigIndex pivotColumnPosition, double work[], unsigned int workArea2[], int increment, int increment2, T markRow[], int largeInteger) |
Gets space for a factorization, called by constructors. | |
Protected Attributes | |
data | |
double | pivotTolerance_ |
Pivot tolerance. | |
double | zeroTolerance_ |
Zero tolerance. | |
double | slackValue_ |
Whether slack value is +1 or -1. | |
double | areaFactor_ |
How much to multiply areas by. | |
double | relaxCheck_ |
Relax check on accuracy in replaceColumn. | |
int | numberRows_ |
Number of Rows in factorization. | |
int | numberRowsExtra_ |
Number of Rows after iterating. | |
int | maximumRowsExtra_ |
Maximum number of Rows after iterating. | |
int | numberColumns_ |
Number of Columns in factorization. | |
int | numberColumnsExtra_ |
Number of Columns after iterating. | |
int | maximumColumnsExtra_ |
Maximum number of Columns after iterating. | |
int | numberGoodU_ |
Number factorized in U (not row singletons). | |
int | numberGoodL_ |
Number factorized in L. | |
int | maximumPivots_ |
Maximum number of pivots before factorization. | |
int | numberPivots_ |
Number pivots since last factorization. | |
CoinBigIndex | totalElements_ |
Number of elements in U (to go) or while iterating total overall. | |
CoinBigIndex | factorElements_ |
Number of elements after factorization. | |
int * | pivotColumn_ |
Pivot order for each Column. | |
int * | permute_ |
Permutation vector for pivot row order. | |
int * | permuteBack_ |
DePermutation vector for pivot row order. | |
int * | pivotColumnBack_ |
Inverse Pivot order for each Column. | |
int | status_ |
Status of factorization. | |
int | messageLevel_ |
Detail in messages. | |
int | numberTrials_ |
Number of trials before rejection. | |
CoinBigIndex * | startRowU_ |
Start of each Row as pointer. | |
int * | numberInRow_ |
Number in each Row. | |
int * | numberInColumn_ |
Number in each Column. | |
int * | numberInColumnPlus_ |
Number in each Column including pivoted. | |
int * | firstCount_ |
First Row/Column with count of k, can tell which by offset - Rows then Columns. | |
int * | nextCount_ |
Next Row/Column with count. | |
int * | lastCount_ |
Previous Row/Column with count. | |
int * | nextColumn_ |
Next Column in memory order. | |
int * | lastColumn_ |
Previous Column in memory order. | |
int * | nextRow_ |
Next Row in memory order. | |
int * | lastRow_ |
Previous Row in memory order. | |
int * | saveColumn_ |
Columns left to do in a single pivot. | |
int * | markRow_ |
Marks rows to be updated. | |
int | biggerDimension_ |
Larger of row and column size. | |
int * | indexColumnU_ |
Base address for U (may change). | |
int * | pivotRowL_ |
Pivots for L. | |
double * | pivotRegion_ |
Inverses of pivot values. | |
int | numberSlacks_ |
Number of slacks at beginning of U. | |
int | numberU_ |
Number in U. | |
CoinBigIndex | maximumU_ |
Maximum space used in U. | |
CoinBigIndex | lengthU_ |
Length of U. | |
CoinBigIndex | lengthAreaU_ |
Length of area reserved for U. | |
double * | elementU_ |
Elements of U. | |
int * | indexRowU_ |
Row indices of U. | |
CoinBigIndex * | startColumnU_ |
Start of each column in U. | |
CoinBigIndex * | convertRowToColumnU_ |
Converts rows to columns in U. | |
int | numberL_ |
Number in L. | |
int | baseL_ |
Base of L. | |
CoinBigIndex | lengthL_ |
Length of L. | |
CoinBigIndex | lengthAreaL_ |
Length of area reserved for L. | |
double * | elementL_ |
Elements of L. | |
int * | indexRowL_ |
Row indices of L. | |
CoinBigIndex * | startColumnL_ |
Start of each column in L. | |
int | numberR_ |
Number in R. | |
CoinBigIndex | lengthR_ |
Length of R stuff. | |
CoinBigIndex | lengthAreaR_ |
length of area reserved for R | |
double * | elementR_ |
Elements of R. | |
int * | indexRowR_ |
Row indices for R. | |
CoinBigIndex * | startColumnR_ |
Start of columns for R. | |
double * | denseArea_ |
Dense area. | |
int * | densePermute_ |
Dense permutation. | |
int | numberDense_ |
Number of dense rows. | |
int | denseThreshold_ |
Dense threshold. | |
CoinBigIndex | numberCompressions_ |
Number of compressions done. | |
bool | doForrestTomlin_ |
true if Forrest Tomlin update, false if PFI | |
bool | collectStatistics_ |
For statistics. | |
double | ftranCountInput_ |
Below are all to collect. | |
double | ftranCountAfterL_ |
Pivot tolerance. | |
double | ftranCountAfterR_ |
Pivot tolerance. | |
double | ftranCountAfterU_ |
Pivot tolerance. | |
double | btranCountInput_ |
Pivot tolerance. | |
double | btranCountAfterU_ |
Pivot tolerance. | |
double | btranCountAfterR_ |
Pivot tolerance. | |
double | btranCountAfterL_ |
Pivot tolerance. | |
int | numberFtranCounts_ |
We can roll over factorizations. | |
int | numberBtranCounts_ |
Pivot tolerance. | |
double | ftranAverageAfterL_ |
While these are average ratios collected over last period. | |
double | ftranAverageAfterR_ |
Pivot tolerance. | |
double | ftranAverageAfterU_ |
Pivot tolerance. | |
double | btranAverageAfterU_ |
Pivot tolerance. | |
double | btranAverageAfterR_ |
Pivot tolerance. | |
double | btranAverageAfterL_ |
Pivot tolerance. | |
int | sparseThreshold_ |
Below this use sparse technology - if 0 then no L row copy. | |
int | sparseThreshold2_ |
And one for "sparsish". | |
CoinBigIndex * | startRowL_ |
Start of each row in L. | |
int * | indexColumnL_ |
Index of column in row for L. | |
double * | elementByRowL_ |
Elements in L (row copy). | |
int * | sparse_ |
Sparse regions. | |
int | biasLU_ |
L to U bias 0 - U bias, 1 - some U bias, 2 some L bias, 3 L bias. | |
Friends | |
void | CoinFactorizationUnitTest (const std::string &mpsDir) |
This class started with a parallel simplex code I was writing in the mid 90's. The need for parallelism led to many complications and I have simplified as much as I could to get back to this.
I was aiming at problems where I might get speed-up so I was looking at dense problems or ones with structure. This led to permuting input and output vectors and to increasing the number of rows each rank-one update. This is still in as a minor overhead.
I have also put in handling for hyper-sparsity. I have taken out all outer loop unrolling, dense matrix handling and most of the book-keeping for slacks. Also I always use FTRAN approach to updating even if factorization fairly dense. All these could improve performance.
I blame some of the coding peculiarities on the history of the code but mostly it is just because I can't do elegant code (or useful comments).
I am assuming that 32 bits is enough for number of rows or columns, but CoinBigIndex may be redefined to get 64 bits.
Definition at line 45 of file CoinFactorization.hpp.
CoinFactorization::CoinFactorization | ( | ) |
Default constructor.
CoinFactorization::CoinFactorization | ( | const CoinFactorization & | other | ) |
Copy constructor.
CoinFactorization::~CoinFactorization | ( | ) |
Destructor.
void CoinFactorization::show_self | ( | ) | const |
Debug show object (shows one representation).
int CoinFactorization::saveFactorization | ( | const char * | file | ) | const |
Debug - save on file - 0 if no error.
int CoinFactorization::restoreFactorization | ( | const char * | file, | |
bool | factor = false | |||
) |
Debug - restore from file - 0 if no error on file.
If factor true then factorizes as if called from ClpFactorization
void CoinFactorization::sort | ( | ) | const |
Debug - sort so can compare.
CoinFactorization& CoinFactorization::operator= | ( | const CoinFactorization & | other | ) |
= copy
int CoinFactorization::factorize | ( | const CoinPackedMatrix & | matrix, | |
int | rowIsBasic[], | |||
int | columnIsBasic[], | |||
double | areaFactor = 0.0 | |||
) |
When part of LP - given by basic variables.
Actually does factorization. Arrays passed in have non negative value to say basic. If status is okay, basic variables have pivot row - this is only needed If status is singular, then basic variables have pivot row and ones thrown out have -1 returns 0 -okay, -1 singular, -2 too many in basis, -99 memory
int CoinFactorization::factorize | ( | int | numberRows, | |
int | numberColumns, | |||
CoinBigIndex | numberElements, | |||
CoinBigIndex | maximumL, | |||
CoinBigIndex | maximumU, | |||
const int | indicesRow[], | |||
const int | indicesColumn[], | |||
const double | elements[], | |||
int | permutation[], | |||
double | areaFactor = 0.0 | |||
) |
When given as triplets.
Actually does factorization. maximumL is guessed maximum size of L part of final factorization, maximumU of U part. These are multiplied by areaFactor which can be computed by user or internally. Arrays are copied in. I could add flag to delete arrays to save a bit of memory. If status okay, permutation has pivot rows - this is only needed If status is singular, then basic variables have pivot row and ones thrown out have -1 returns 0 -okay, -1 singular, -99 memory
int CoinFactorization::factorizePart1 | ( | int | numberRows, | |
int | numberColumns, | |||
CoinBigIndex | estimateNumberElements, | |||
int * | indicesRow[], | |||
int * | indicesColumn[], | |||
double * | elements[], | |||
double | areaFactor = 0.0 | |||
) |
Two part version for maximum flexibility This part creates arrays for user to fill.
estimateNumberElements is safe estimate of number returns 0 -okay, -99 memory
int CoinFactorization::factorizePart2 | ( | int | permutation[], | |
int | exactNumberElements | |||
) |
This is part two of factorization Arrays belong to factorization and were returned by part 1 If status okay, permutation has pivot rows - this is only needed If status is singular, then basic variables have pivot row and ones thrown out have -1 returns 0 -okay, -1 singular, -99 memory.
int CoinFactorization::status | ( | ) | const [inline] |
int CoinFactorization::pivots | ( | ) | const [inline] |
Returns number of pivots since factorization.
Definition at line 131 of file CoinFactorization.hpp.
References numberPivots_.
int* CoinFactorization::permute | ( | ) | const [inline] |
Returns address of permute region.
Definition at line 135 of file CoinFactorization.hpp.
References permute_.
int* CoinFactorization::pivotColumn | ( | ) | const [inline] |
Returns address of pivotColumn region (also used for permuting).
Definition at line 139 of file CoinFactorization.hpp.
References pivotColumn_.
int* CoinFactorization::permuteBack | ( | ) | const [inline] |
Returns address of permuteBack region.
Definition at line 143 of file CoinFactorization.hpp.
References permuteBack_.
int* CoinFactorization::pivotColumnBack | ( | ) | const [inline] |
Returns address of pivotColumnBack region (also used for permuting).
Definition at line 147 of file CoinFactorization.hpp.
References pivotColumnBack_.
int CoinFactorization::numberRowsExtra | ( | ) | const [inline] |
Number of Rows after iterating.
Definition at line 151 of file CoinFactorization.hpp.
References numberRowsExtra_.
int CoinFactorization::numberRows | ( | ) | const [inline] |
Number of Rows after factorization.
Definition at line 155 of file CoinFactorization.hpp.
References numberRows_.
int CoinFactorization::maximumRowsExtra | ( | ) | const [inline] |
Maximum of Rows after iterating.
Definition at line 159 of file CoinFactorization.hpp.
References maximumRowsExtra_.
int CoinFactorization::numberColumns | ( | ) | const [inline] |
Total number of columns in factorization.
Definition at line 163 of file CoinFactorization.hpp.
References numberColumns_.
int CoinFactorization::numberElements | ( | ) | const [inline] |
Total number of elements in factorization.
Definition at line 167 of file CoinFactorization.hpp.
References totalElements_.
int CoinFactorization::numberForrestTomlin | ( | ) | const [inline] |
Length of FT vector.
Definition at line 171 of file CoinFactorization.hpp.
References numberColumnsExtra_, and numberInColumn_.
int CoinFactorization::numberGoodColumns | ( | ) | const [inline] |
Number of good columns in factorization.
Definition at line 175 of file CoinFactorization.hpp.
References numberGoodU_.
double CoinFactorization::areaFactor | ( | ) | const [inline] |
Whether larger areas needed.
Definition at line 179 of file CoinFactorization.hpp.
References areaFactor_.
void CoinFactorization::areaFactor | ( | double | value | ) | [inline] |
double CoinFactorization::adjustedAreaFactor | ( | ) | const |
Returns areaFactor but adjusted for dense.
void CoinFactorization::relaxAccuracyCheck | ( | double | value | ) | [inline] |
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
Definition at line 188 of file CoinFactorization.hpp.
References relaxCheck_.
double CoinFactorization::getAccuracyCheck | ( | ) | const [inline] |
bool CoinFactorization::increasingRows | ( | ) | const [inline] |
void CoinFactorization::increasingRows | ( | int | value | ) | [inline] |
0 - no increasing rows - no nothing (not coded) 1 - no permutation (i.e.
basis order in is pivot order), 2 user wants slacks pivoting on own rows, 3 user needs to know everything as row are really increasing
Definition at line 200 of file CoinFactorization.hpp.
int CoinFactorization::messageLevel | ( | ) | const [inline] |
Level of detail of messages.
Definition at line 202 of file CoinFactorization.hpp.
References messageLevel_.
void CoinFactorization::messageLevel | ( | int | value | ) |
Returns status.
int CoinFactorization::maximumPivots | ( | ) | const [inline] |
Maximum number of pivots between factorizations.
Definition at line 207 of file CoinFactorization.hpp.
References maximumPivots_.
void CoinFactorization::maximumPivots | ( | int | value | ) |
Returns status.
int CoinFactorization::denseThreshold | ( | ) | const [inline] |
Gets dense threshold.
Definition at line 213 of file CoinFactorization.hpp.
References denseThreshold_.
void CoinFactorization::setDenseThreshold | ( | int | value | ) | [inline] |
Sets dense threshold.
Definition at line 216 of file CoinFactorization.hpp.
References denseThreshold_.
double CoinFactorization::pivotTolerance | ( | ) | const [inline] |
void CoinFactorization::pivotTolerance | ( | double | value | ) |
Returns status.
double CoinFactorization::zeroTolerance | ( | ) | const [inline] |
void CoinFactorization::zeroTolerance | ( | double | value | ) |
Returns status.
double CoinFactorization::slackValue | ( | ) | const [inline] |
Whether slack value is +1 or -1.
Definition at line 229 of file CoinFactorization.hpp.
References slackValue_.
void CoinFactorization::slackValue | ( | double | value | ) |
Returns status.
double CoinFactorization::maximumCoefficient | ( | ) | const |
Returns maximum absolute value in factorization.
bool CoinFactorization::forrestTomlin | ( | ) | const [inline] |
true if Forrest Tomlin update, false if PFI
Definition at line 236 of file CoinFactorization.hpp.
References doForrestTomlin_.
void CoinFactorization::setForrestTomlin | ( | bool | value | ) | [inline] |
int CoinFactorization::numberDense | ( | ) | const [inline] |
Returns number of dense rows.
Definition at line 246 of file CoinFactorization.hpp.
References numberDense_.
CoinBigIndex CoinFactorization::numberElementsU | ( | ) | const [inline] |
Returns number in U area.
Definition at line 250 of file CoinFactorization.hpp.
References lengthU_.
CoinBigIndex CoinFactorization::lengthAreaU | ( | ) | const [inline] |
Returns length of U area.
Definition at line 254 of file CoinFactorization.hpp.
References lengthAreaU_.
CoinBigIndex CoinFactorization::numberElementsL | ( | ) | const [inline] |
Returns number in L area.
Definition at line 258 of file CoinFactorization.hpp.
References lengthL_.
CoinBigIndex CoinFactorization::lengthAreaL | ( | ) | const [inline] |
Returns length of L area.
Definition at line 262 of file CoinFactorization.hpp.
References lengthAreaL_.
CoinBigIndex CoinFactorization::numberElementsR | ( | ) | const [inline] |
Returns number in R area.
Definition at line 266 of file CoinFactorization.hpp.
References lengthR_.
CoinBigIndex CoinFactorization::numberCompressions | ( | ) | const [inline] |
Number of compressions done.
Definition at line 270 of file CoinFactorization.hpp.
References numberCompressions_.
int CoinFactorization::biasLU | ( | ) | const [inline] |
L to U bias 0 - U bias, 1 - some U bias, 2 some L bias, 3 L bias.
Definition at line 275 of file CoinFactorization.hpp.
References biasLU_.
void CoinFactorization::setBiasLU | ( | int | value | ) | [inline] |
Returns number of dense rows.
Definition at line 277 of file CoinFactorization.hpp.
References biasLU_.
int CoinFactorization::replaceColumn | ( | CoinIndexedVector * | regionSparse, | |
int | pivotRow, | |||
double | pivotCheck, | |||
bool | checkBeforeModifying = false | |||
) |
Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room If checkBeforeModifying is true will do all accuracy checks before modifying factorization.
Whether to set this depends on speed considerations. You could just do this on first iteration after factorization and thereafter re-factorize partial update already in U
int CoinFactorization::updateColumnFT | ( | CoinIndexedVector * | regionSparse, | |
CoinIndexedVector * | regionSparse2 | |||
) |
Updates one column (FTRAN) from regionSparse2 Tries to do FT update number returned is negative if no room regionSparse starts as zero and is zero at end.
Note - if regionSparse2 packed on input - will be packed on output
Reimplemented in ClpFactorization.
int CoinFactorization::updateColumn | ( | CoinIndexedVector * | regionSparse, | |
CoinIndexedVector * | regionSparse2, | |||
bool | noPermute = false | |||
) | const |
This version has same effect as above with FTUpdate==false so number returned is always >=0.
Reimplemented in ClpFactorization.
int CoinFactorization::updateColumnTranspose | ( | CoinIndexedVector * | regionSparse, | |
CoinIndexedVector * | regionSparse2 | |||
) | const |
Updates one column (BTRAN) from regionSparse2 regionSparse starts as zero and is zero at end Note - if regionSparse2 packed on input - will be packed on output.
Reimplemented in ClpFactorization.
void CoinFactorization::goSparse | ( | ) |
makes a row copy of L for speed and to allow very sparse problems
Reimplemented in ClpFactorization.
int CoinFactorization::sparseThreshold | ( | ) | const |
get sparse threshold
void CoinFactorization::sparseThreshold | ( | int | value | ) |
set sparse threshold
void CoinFactorization::clearArrays | ( | ) | [inline] |
Get rid of all memory.
Definition at line 332 of file CoinFactorization.hpp.
References gutsOfDestructor().
int CoinFactorization::add | ( | CoinBigIndex | numberElements, | |
int | indicesRow[], | |||
int | indicesColumn[], | |||
double | elements[] | |||
) |
Adds given elements to Basis and updates factorization, can increase size of basis.
Returns rank
int CoinFactorization::addColumn | ( | CoinBigIndex | numberElements, | |
int | indicesRow[], | |||
double | elements[] | |||
) |
Adds one Column to basis, can increase size of basis.
Returns rank
int CoinFactorization::addRow | ( | CoinBigIndex | numberElements, | |
int | indicesColumn[], | |||
double | elements[] | |||
) |
Adds one Row to basis, can increase size of basis.
Returns rank
int CoinFactorization::deleteColumn | ( | int | Row | ) |
Deletes one Column from basis, returns rank.
int CoinFactorization::deleteRow | ( | int | Row | ) |
Deletes one Row from basis, returns rank.
int CoinFactorization::replaceRow | ( | int | whichRow, | |
int | numberElements, | |||
const int | indicesColumn[], | |||
const double | elements[] | |||
) |
Replaces one Row in basis, At present assumes just a singleton on row is in basis returns 0=OK, 1=Probably OK, 2=singular, 3 no space.
void CoinFactorization::emptyRows | ( | int | numberToEmpty, | |
const int | which[] | |||
) |
Takes out all entries for given rows.
void CoinFactorization::getAreas | ( | int | numberRows, | |
int | numberColumns, | |||
CoinBigIndex | maximumL, | |||
CoinBigIndex | maximumU | |||
) | [protected] |
Gets space for a factorization, called by constructors.
void CoinFactorization::preProcess | ( | int | state, | |
int | possibleDuplicates = -1 | |||
) | [protected] |
PreProcesses raw triplet data.
state is 0 - triplets, 1 - some counts etc , 2 - ..
int CoinFactorization::factor | ( | ) | [protected] |
Does most of factorization.
int CoinFactorization::factorSparse | ( | ) | [protected] |
Does sparse phase of factorization return code is <0 error, 0= finished.
int CoinFactorization::factorDense | ( | ) | [protected] |
Does dense phase of factorization return code is <0 error, 0= finished.
bool CoinFactorization::pivotOneOtherRow | ( | int | pivotRow, | |
int | pivotColumn | |||
) | [protected] |
Pivots when just one other row so faster?
bool CoinFactorization::pivotRowSingleton | ( | int | pivotRow, | |
int | pivotColumn | |||
) | [protected] |
Does one pivot on Row Singleton in factorization.
bool CoinFactorization::pivotColumnSingleton | ( | int | pivotRow, | |
int | pivotColumn | |||
) | [protected] |
Does one pivot on Column Singleton in factorization.
bool CoinFactorization::getColumnSpace | ( | int | iColumn, | |
int | extraNeeded | |||
) | [protected] |
Gets space for one Column with given length, may have to do compression (returns True if successful), also moves existing vector, extraNeeded is over and above present.
Referenced by pivot().
bool CoinFactorization::getColumnSpaceIterateR | ( | int | iColumn, | |
double | value, | |||
int | iRow | |||
) | [protected] |
getColumnSpaceIterateR.
Gets space for one extra R element in Column may have to do compression (returns true) also moves existing vector
CoinBigIndex CoinFactorization::getColumnSpaceIterate | ( | int | iColumn, | |
double | value, | |||
int | iRow | |||
) | [protected] |
getColumnSpaceIterate.
Gets space for one extra U element in Column may have to do compression (returns true) also moves existing vector. Returns -1 if no memory or where element was put Used by replaceRow (turns off R version)
bool CoinFactorization::getRowSpace | ( | int | iRow, | |
int | extraNeeded | |||
) | [protected] |
Gets space for one Row with given length, may have to do compression (returns True if successful), also moves existing vector.
Referenced by pivot().
bool CoinFactorization::getRowSpaceIterate | ( | int | iRow, | |
int | extraNeeded | |||
) | [protected] |
Gets space for one Row with given length while iterating, may have to do compression (returns True if successful), also moves existing vector.
void CoinFactorization::checkConsistency | ( | ) | [protected] |
Checks that row and column copies look OK.
void CoinFactorization::addLink | ( | int | index, | |
int | count | |||
) | [inline, protected] |
Adds a link in chain of equal counts.
Definition at line 432 of file CoinFactorization.hpp.
References firstCount_, lastCount_, and nextCount_.
Referenced by pivot().
void CoinFactorization::deleteLink | ( | int | index | ) | [inline, protected] |
Deletes a link in chain of equal counts.
Definition at line 445 of file CoinFactorization.hpp.
References firstCount_, lastCount_, and nextCount_.
Referenced by pivot().
void CoinFactorization::separateLinks | ( | int | count, | |
bool | rowsFirst | |||
) | [protected] |
Separate out links with same row/column count.
void CoinFactorization::cleanup | ( | ) | [protected] |
Cleans up at end of factorization.
void CoinFactorization::updateColumnL | ( | CoinIndexedVector * | region, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANL).
void CoinFactorization::updateColumnLDensish | ( | CoinIndexedVector * | region, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANL) when densish.
void CoinFactorization::updateColumnLSparse | ( | CoinIndexedVector * | region, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANL) when sparse.
void CoinFactorization::updateColumnLSparsish | ( | CoinIndexedVector * | region, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANL) when sparsish.
void CoinFactorization::updateColumnR | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column (FTRANR) without FT update.
void CoinFactorization::updateColumnRFT | ( | CoinIndexedVector * | region, | |
int * | indexIn | |||
) | [protected] |
Updates part of column (FTRANR) with FT update.
Also stores update after L and R
void CoinFactorization::updateColumnU | ( | CoinIndexedVector * | region, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANU).
void CoinFactorization::updateColumnUSparse | ( | CoinIndexedVector * | regionSparse, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANU) when sparse.
void CoinFactorization::updateColumnUSparsish | ( | CoinIndexedVector * | regionSparse, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANU) when sparsish.
void CoinFactorization::updateColumnUDensish | ( | CoinIndexedVector * | regionSparse, | |
int * | indexIn | |||
) | const [protected] |
Updates part of column (FTRANU).
void CoinFactorization::updateColumnPFI | ( | CoinIndexedVector * | regionSparse | ) | const [protected] |
Updates part of column PFI (FTRAN) (after rest).
void CoinFactorization::permuteBack | ( | CoinIndexedVector * | regionSparse, | |
CoinIndexedVector * | outVector | |||
) | const [protected] |
Permutes back at end of updateColumn.
void CoinFactorization::updateColumnTransposePFI | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose PFI (BTRAN) (before rest).
void CoinFactorization::updateColumnTransposeU | ( | CoinIndexedVector * | region, | |
int | smallestIndex | |||
) | const [protected] |
Updates part of column transpose (BTRANU), assumes index is sorted i.e.
region is correct
void CoinFactorization::updateColumnTransposeUSparsish | ( | CoinIndexedVector * | region, | |
int | smallestIndex | |||
) | const [protected] |
Updates part of column transpose (BTRANU) when sparsish, assumes index is sorted i.e.
region is correct
void CoinFactorization::updateColumnTransposeUDensish | ( | CoinIndexedVector * | region, | |
int | smallestIndex | |||
) | const [protected] |
Updates part of column transpose (BTRANU) when densish, assumes index is sorted i.e.
region is correct
void CoinFactorization::updateColumnTransposeUSparse | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANU) when sparse, assumes index is sorted i.e.
region is correct
void CoinFactorization::updateColumnTransposeR | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANR).
void CoinFactorization::updateColumnTransposeRDensish | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANR) when dense.
void CoinFactorization::updateColumnTransposeRSparse | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANR) when sparse.
void CoinFactorization::updateColumnTransposeL | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANL).
void CoinFactorization::updateColumnTransposeLDensish | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANL) when densish by column.
void CoinFactorization::updateColumnTransposeLByRow | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANL) when densish by row.
void CoinFactorization::updateColumnTransposeLSparsish | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANL) when sparsish by row.
void CoinFactorization::updateColumnTransposeLSparse | ( | CoinIndexedVector * | region | ) | const [protected] |
Updates part of column transpose (BTRANL) when sparse (by Row).
int CoinFactorization::replaceColumnPFI | ( | CoinIndexedVector * | regionSparse, | |
int | pivotRow, | |||
double | alpha | |||
) | [protected] |
Replaces one Column to basis for PFI returns 0=OK, 1=Probably OK, 2=singular, 3=no room.
In this case region is not empty - it is incoming variable (updated)
int CoinFactorization::checkPivot | ( | double | saveFromU, | |
double | oldPivot | |||
) | const [protected] |
Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular.
void CoinFactorization::gutsOfDestructor | ( | ) | [protected] |
void CoinFactorization::gutsOfInitialize | ( | int | type | ) | [protected] |
1 bit - tolerances etc, 2 more, 4 dummy arrays
void CoinFactorization::gutsOfCopy | ( | const CoinFactorization & | other | ) | [protected] |
Gets space for a factorization, called by constructors.
void CoinFactorization::resetStatistics | ( | ) | [protected] |
Reset all sparsity etc statistics.
bool CoinFactorization::pivot | ( | int | pivotRow, | |
int | pivotColumn, | |||
CoinBigIndex | pivotRowPosition, | |||
CoinBigIndex | pivotColumnPosition, | |||
double | work[], | |||
unsigned int | workArea2[], | |||
int | increment, | |||
int | increment2, | |||
T | markRow[], | |||
int | largeInteger | |||
) | [inline, protected] |
Gets space for a factorization, called by constructors.
Definition at line 565 of file CoinFactorization.hpp.
References addLink(), COINFACTORIZATION_BITS_PER_INT, COINFACTORIZATION_MASK_PER_INT, COINFACTORIZATION_SHIFT_PER_INT, deleteLink(), elementL_, elementU_, getColumnSpace(), getRowSpace(), indexColumnU_, indexRowL_, indexRowU_, lastRow_, lengthAreaL_, lengthL_, nextColumn_, nextCount_, nextRow_, numberGoodL_, numberGoodU_, numberInColumn_, numberInColumnPlus_, numberInRow_, numberRows_, pivotRegion_, pivotRowL_, saveColumn_, startColumnL_, startColumnU_, startRowU_, totalElements_, and zeroTolerance_.
void CoinFactorizationUnitTest | ( | const std::string & | mpsDir | ) | [friend] |
double CoinFactorization::pivotTolerance_ [protected] |
Pivot tolerance.
Definition at line 1044 of file CoinFactorization.hpp.
Referenced by pivotTolerance().
double CoinFactorization::zeroTolerance_ [protected] |
Zero tolerance.
Definition at line 1046 of file CoinFactorization.hpp.
Referenced by pivot(), and zeroTolerance().
double CoinFactorization::slackValue_ [protected] |
Whether slack value is +1 or -1.
Definition at line 1048 of file CoinFactorization.hpp.
Referenced by slackValue().
double CoinFactorization::areaFactor_ [protected] |
How much to multiply areas by.
Definition at line 1050 of file CoinFactorization.hpp.
Referenced by areaFactor().
double CoinFactorization::relaxCheck_ [protected] |
Relax check on accuracy in replaceColumn.
Definition at line 1052 of file CoinFactorization.hpp.
Referenced by getAccuracyCheck(), and relaxAccuracyCheck().
int CoinFactorization::numberRows_ [protected] |
Number of Rows in factorization.
Definition at line 1054 of file CoinFactorization.hpp.
Referenced by numberRows(), and pivot().
int CoinFactorization::numberRowsExtra_ [protected] |
Number of Rows after iterating.
Definition at line 1056 of file CoinFactorization.hpp.
Referenced by numberRowsExtra().
int CoinFactorization::maximumRowsExtra_ [protected] |
Maximum number of Rows after iterating.
Definition at line 1058 of file CoinFactorization.hpp.
Referenced by maximumRowsExtra().
int CoinFactorization::numberColumns_ [protected] |
Number of Columns in factorization.
Definition at line 1060 of file CoinFactorization.hpp.
Referenced by numberColumns().
int CoinFactorization::numberColumnsExtra_ [protected] |
Number of Columns after iterating.
Definition at line 1062 of file CoinFactorization.hpp.
Referenced by numberForrestTomlin().
int CoinFactorization::maximumColumnsExtra_ [protected] |
int CoinFactorization::numberGoodU_ [protected] |
Number factorized in U (not row singletons).
Definition at line 1066 of file CoinFactorization.hpp.
Referenced by numberGoodColumns(), and pivot().
int CoinFactorization::numberGoodL_ [protected] |
Number factorized in L.
Definition at line 1068 of file CoinFactorization.hpp.
Referenced by pivot().
int CoinFactorization::maximumPivots_ [protected] |
Maximum number of pivots before factorization.
Definition at line 1070 of file CoinFactorization.hpp.
Referenced by maximumPivots().
int CoinFactorization::numberPivots_ [protected] |
Number pivots since last factorization.
Definition at line 1072 of file CoinFactorization.hpp.
Referenced by pivots().
CoinBigIndex CoinFactorization::totalElements_ [protected] |
Number of elements in U (to go) or while iterating total overall.
Definition at line 1075 of file CoinFactorization.hpp.
Referenced by numberElements(), and pivot().
CoinBigIndex CoinFactorization::factorElements_ [protected] |
int* CoinFactorization::pivotColumn_ [protected] |
Pivot order for each Column.
Definition at line 1079 of file CoinFactorization.hpp.
Referenced by pivotColumn().
int* CoinFactorization::permute_ [protected] |
Permutation vector for pivot row order.
Definition at line 1081 of file CoinFactorization.hpp.
Referenced by permute().
int* CoinFactorization::permuteBack_ [protected] |
DePermutation vector for pivot row order.
Definition at line 1083 of file CoinFactorization.hpp.
Referenced by permuteBack().
int* CoinFactorization::pivotColumnBack_ [protected] |
Inverse Pivot order for each Column.
Definition at line 1085 of file CoinFactorization.hpp.
Referenced by pivotColumnBack().
int CoinFactorization::status_ [protected] |
Status of factorization.
Definition at line 1087 of file CoinFactorization.hpp.
Referenced by status().
int CoinFactorization::messageLevel_ [protected] |
Detail in messages.
Definition at line 1096 of file CoinFactorization.hpp.
Referenced by messageLevel().
int CoinFactorization::numberTrials_ [protected] |
CoinBigIndex* CoinFactorization::startRowU_ [protected] |
Start of each Row as pointer.
Definition at line 1101 of file CoinFactorization.hpp.
Referenced by pivot().
int* CoinFactorization::numberInRow_ [protected] |
int* CoinFactorization::numberInColumn_ [protected] |
Number in each Column.
Definition at line 1107 of file CoinFactorization.hpp.
Referenced by numberForrestTomlin(), and pivot().
int* CoinFactorization::numberInColumnPlus_ [protected] |
Number in each Column including pivoted.
Definition at line 1110 of file CoinFactorization.hpp.
Referenced by pivot().
int* CoinFactorization::firstCount_ [protected] |
First Row/Column with count of k, can tell which by offset - Rows then Columns.
Definition at line 1114 of file CoinFactorization.hpp.
Referenced by addLink(), and deleteLink().
int* CoinFactorization::nextCount_ [protected] |
Next Row/Column with count.
Definition at line 1117 of file CoinFactorization.hpp.
Referenced by addLink(), deleteLink(), and pivot().
int* CoinFactorization::lastCount_ [protected] |
Previous Row/Column with count.
Definition at line 1120 of file CoinFactorization.hpp.
Referenced by addLink(), and deleteLink().
int* CoinFactorization::nextColumn_ [protected] |
Next Column in memory order.
Definition at line 1123 of file CoinFactorization.hpp.
Referenced by pivot().
int* CoinFactorization::lastColumn_ [protected] |
int* CoinFactorization::nextRow_ [protected] |
Next Row in memory order.
Definition at line 1129 of file CoinFactorization.hpp.
Referenced by pivot().
int* CoinFactorization::lastRow_ [protected] |
Previous Row in memory order.
Definition at line 1132 of file CoinFactorization.hpp.
Referenced by pivot().
int* CoinFactorization::saveColumn_ [protected] |
Columns left to do in a single pivot.
Definition at line 1135 of file CoinFactorization.hpp.
Referenced by pivot().
int* CoinFactorization::markRow_ [protected] |
int CoinFactorization::biggerDimension_ [protected] |
int* CoinFactorization::indexColumnU_ [protected] |
Base address for U (may change).
Definition at line 1144 of file CoinFactorization.hpp.
Referenced by pivot().
int* CoinFactorization::pivotRowL_ [protected] |
double* CoinFactorization::pivotRegion_ [protected] |
Inverses of pivot values.
Definition at line 1150 of file CoinFactorization.hpp.
Referenced by pivot().
int CoinFactorization::numberSlacks_ [protected] |
int CoinFactorization::numberU_ [protected] |
CoinBigIndex CoinFactorization::maximumU_ [protected] |
CoinBigIndex CoinFactorization::lengthU_ [protected] |
Length of U.
Definition at line 1165 of file CoinFactorization.hpp.
Referenced by numberElementsU().
CoinBigIndex CoinFactorization::lengthAreaU_ [protected] |
Length of area reserved for U.
Definition at line 1168 of file CoinFactorization.hpp.
Referenced by lengthAreaU().
double* CoinFactorization::elementU_ [protected] |
int* CoinFactorization::indexRowU_ [protected] |
CoinBigIndex* CoinFactorization::startColumnU_ [protected] |
Start of each column in U.
Definition at line 1177 of file CoinFactorization.hpp.
Referenced by pivot().
CoinBigIndex* CoinFactorization::convertRowToColumnU_ [protected] |
int CoinFactorization::numberL_ [protected] |
int CoinFactorization::baseL_ [protected] |
CoinBigIndex CoinFactorization::lengthL_ [protected] |
Length of L.
Definition at line 1189 of file CoinFactorization.hpp.
Referenced by numberElementsL(), and pivot().
CoinBigIndex CoinFactorization::lengthAreaL_ [protected] |
Length of area reserved for L.
Definition at line 1192 of file CoinFactorization.hpp.
Referenced by lengthAreaL(), and pivot().
double* CoinFactorization::elementL_ [protected] |
int* CoinFactorization::indexRowL_ [protected] |
CoinBigIndex* CoinFactorization::startColumnL_ [protected] |
Start of each column in L.
Definition at line 1201 of file CoinFactorization.hpp.
Referenced by pivot().
int CoinFactorization::numberR_ [protected] |
CoinBigIndex CoinFactorization::lengthR_ [protected] |
Length of R stuff.
Definition at line 1207 of file CoinFactorization.hpp.
Referenced by numberElementsR().
CoinBigIndex CoinFactorization::lengthAreaR_ [protected] |
double* CoinFactorization::elementR_ [protected] |
int* CoinFactorization::indexRowR_ [protected] |
CoinBigIndex* CoinFactorization::startColumnR_ [protected] |
double* CoinFactorization::denseArea_ [protected] |
int* CoinFactorization::densePermute_ [protected] |
int CoinFactorization::numberDense_ [protected] |
Number of dense rows.
Definition at line 1228 of file CoinFactorization.hpp.
Referenced by numberDense().
int CoinFactorization::denseThreshold_ [protected] |
Dense threshold.
Definition at line 1231 of file CoinFactorization.hpp.
Referenced by denseThreshold(), and setDenseThreshold().
CoinBigIndex CoinFactorization::numberCompressions_ [protected] |
Number of compressions done.
Definition at line 1234 of file CoinFactorization.hpp.
Referenced by numberCompressions().
bool CoinFactorization::doForrestTomlin_ [protected] |
true if Forrest Tomlin update, false if PFI
Definition at line 1237 of file CoinFactorization.hpp.
Referenced by forrestTomlin(), and setForrestTomlin().
bool CoinFactorization::collectStatistics_ [mutable, protected] |
double CoinFactorization::ftranCountInput_ [mutable, protected] |
double CoinFactorization::ftranCountAfterL_ [mutable, protected] |
double CoinFactorization::ftranCountAfterR_ [mutable, protected] |
double CoinFactorization::ftranCountAfterU_ [mutable, protected] |
double CoinFactorization::btranCountInput_ [mutable, protected] |
double CoinFactorization::btranCountAfterU_ [mutable, protected] |
double CoinFactorization::btranCountAfterR_ [mutable, protected] |
double CoinFactorization::btranCountAfterL_ [mutable, protected] |
int CoinFactorization::numberFtranCounts_ [mutable, protected] |
int CoinFactorization::numberBtranCounts_ [mutable, protected] |
double CoinFactorization::ftranAverageAfterL_ [protected] |
While these are average ratios collected over last period.
Definition at line 1257 of file CoinFactorization.hpp.
double CoinFactorization::ftranAverageAfterR_ [protected] |
double CoinFactorization::ftranAverageAfterU_ [protected] |
double CoinFactorization::btranAverageAfterU_ [protected] |
double CoinFactorization::btranAverageAfterR_ [protected] |
double CoinFactorization::btranAverageAfterL_ [protected] |
int CoinFactorization::sparseThreshold_ [protected] |
Below this use sparse technology - if 0 then no L row copy.
Definition at line 1265 of file CoinFactorization.hpp.
int CoinFactorization::sparseThreshold2_ [protected] |
CoinBigIndex* CoinFactorization::startRowL_ [protected] |
int* CoinFactorization::indexColumnL_ [protected] |
double* CoinFactorization::elementByRowL_ [protected] |
int* CoinFactorization::sparse_ [mutable, protected] |
int CoinFactorization::biasLU_ [protected] |
L to U bias 0 - U bias, 1 - some U bias, 2 some L bias, 3 L bias.
Definition at line 1284 of file CoinFactorization.hpp.
Referenced by biasLU(), and setBiasLU().