CoinFactorization Class Reference

This deals with Factorization and Updates. More...

#include <CoinFactorization.hpp>

Collaboration diagram for CoinFactorization:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Constructors and destructor and copy
 CoinFactorization ()
 Default constructor.
 CoinFactorization (const CoinFactorization &other)
 Copy constructor.
 ~CoinFactorization ()
 Destructor.
void almostDestructor ()
 Delete all stuff (leaves as after CoinFactorization()).
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.
CoinFactorizationoperator= (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.
int persistenceFlag () const
 Array persistence flag If 0 then as now (delete/new) 1 then only do arrays if bigger needed 2 as 1 but give a bit extra if bigger needed.
void setPersistenceFlag (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 (int type=1)
 The real work of constructors etc 0 just scalars, 1 bit normal.
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.
CoinIntArrayWithLength pivotColumn_
 Pivot order for each Column.
CoinIntArrayWithLength permute_
 Permutation vector for pivot row order.
CoinIntArrayWithLength permuteBack_
 DePermutation vector for pivot row order.
CoinIntArrayWithLength pivotColumnBack_
 Inverse Pivot order for each Column.
int status_
 Status of factorization.
int numberTrials_
 Number of trials before rejection.
CoinBigIndexArrayWithLength startRowU_
 Start of each Row as pointer.
CoinIntArrayWithLength numberInRow_
 Number in each Row.
CoinIntArrayWithLength numberInColumn_
 Number in each Column.
CoinIntArrayWithLength numberInColumnPlus_
 Number in each Column including pivoted.
CoinIntArrayWithLength firstCount_
 First Row/Column with count of k, can tell which by offset - Rows then Columns.
CoinIntArrayWithLength nextCount_
 Next Row/Column with count.
CoinIntArrayWithLength lastCount_
 Previous Row/Column with count.
CoinIntArrayWithLength nextColumn_
 Next Column in memory order.
CoinIntArrayWithLength lastColumn_
 Previous Column in memory order.
CoinIntArrayWithLength nextRow_
 Next Row in memory order.
CoinIntArrayWithLength lastRow_
 Previous Row in memory order.
CoinIntArrayWithLength saveColumn_
 Columns left to do in a single pivot.
CoinIntArrayWithLength markRow_
 Marks rows to be updated.
int messageLevel_
 Detail in messages.
int biggerDimension_
 Larger of row and column size.
CoinIntArrayWithLength indexColumnU_
 Base address for U (may change).
CoinIntArrayWithLength pivotRowL_
 Pivots for L.
CoinDoubleArrayWithLength 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.
CoinDoubleArrayWithLength elementU_
 Elements of U.
CoinIntArrayWithLength indexRowU_
 Row indices of U.
CoinBigIndexArrayWithLength startColumnU_
 Start of each column in U.
CoinBigIndexArrayWithLength 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.
CoinDoubleArrayWithLength elementL_
 Elements of L.
CoinIntArrayWithLength indexRowL_
 Row indices of L.
CoinBigIndexArrayWithLength startColumnL_
 Start of each column in L.
bool doForrestTomlin_
 true if Forrest Tomlin update, false if PFI
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.
CoinBigIndexArrayWithLength startColumnR_
 Start of columns for R.
double * denseArea_
 Dense area.
int * densePermute_
 Dense permutation.
int numberDense_
 Number of dense rows.
int denseThreshold_
 Dense threshold.
CoinDoubleArrayWithLength workArea_
 First work area.
CoinUnsignedIntArrayWithLength workArea2_
 Second work area.
CoinBigIndex numberCompressions_
 Number of compressions done.
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.
bool collectStatistics_
 For statistics.
int sparseThreshold_
 Below this use sparse technology - if 0 then no L row copy.
int sparseThreshold2_
 And one for "sparsish".
CoinBigIndexArrayWithLength startRowL_
 Start of each row in L.
CoinIntArrayWithLength indexColumnL_
 Index of column in row for L.
CoinDoubleArrayWithLength elementByRowL_
 Elements in L (row copy).
CoinIntArrayWithLength sparse_
 Sparse regions.
int biasLU_
 L to U bias 0 - U bias, 1 - some U bias, 2 some L bias, 3 L bias.
int persistenceFlag_
 Array persistence flag If 0 then as now (delete/new) 1 then only do arrays if bigger needed 2 as 1 but give a bit extra if bigger needed.

Friends

void CoinFactorizationUnitTest (const std::string &mpsDir)

Detailed Description

This deals with Factorization and Updates.

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.


Constructor & Destructor Documentation

CoinFactorization::CoinFactorization (  ) 

Default constructor.

CoinFactorization::CoinFactorization ( const CoinFactorization other  ) 

Copy constructor.

CoinFactorization::~CoinFactorization (  ) 

Destructor.


Member Function Documentation

void CoinFactorization::almostDestructor (  ) 

Delete all stuff (leaves as after CoinFactorization()).

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]

Returns status.

Definition at line 129 of file CoinFactorization.hpp.

References status_.

int CoinFactorization::pivots (  )  const [inline]

Returns number of pivots since factorization.

Definition at line 133 of file CoinFactorization.hpp.

References numberPivots_.

int* CoinFactorization::permute (  )  const [inline]

Returns address of permute region.

Definition at line 137 of file CoinFactorization.hpp.

References CoinIntArrayWithLength::array(), and permute_.

int* CoinFactorization::pivotColumn (  )  const [inline]

Returns address of pivotColumn region (also used for permuting).

Definition at line 141 of file CoinFactorization.hpp.

References CoinIntArrayWithLength::array(), and pivotColumn_.

int* CoinFactorization::permuteBack (  )  const [inline]

Returns address of permuteBack region.

Definition at line 145 of file CoinFactorization.hpp.

References CoinIntArrayWithLength::array(), and permuteBack_.

int* CoinFactorization::pivotColumnBack (  )  const [inline]

Returns address of pivotColumnBack region (also used for permuting).

Definition at line 149 of file CoinFactorization.hpp.

References CoinIntArrayWithLength::array(), and pivotColumnBack_.

int CoinFactorization::numberRowsExtra (  )  const [inline]

Number of Rows after iterating.

Definition at line 153 of file CoinFactorization.hpp.

References numberRowsExtra_.

int CoinFactorization::numberRows (  )  const [inline]

Number of Rows after factorization.

Definition at line 157 of file CoinFactorization.hpp.

References numberRows_.

int CoinFactorization::maximumRowsExtra (  )  const [inline]

Maximum of Rows after iterating.

Definition at line 161 of file CoinFactorization.hpp.

References maximumRowsExtra_.

int CoinFactorization::numberColumns (  )  const [inline]

Total number of columns in factorization.

Definition at line 165 of file CoinFactorization.hpp.

References numberColumns_.

int CoinFactorization::numberElements (  )  const [inline]

Total number of elements in factorization.

Definition at line 169 of file CoinFactorization.hpp.

References totalElements_.

int CoinFactorization::numberForrestTomlin (  )  const [inline]

Length of FT vector.

Definition at line 173 of file CoinFactorization.hpp.

References CoinIntArrayWithLength::array(), numberColumnsExtra_, and numberInColumn_.

int CoinFactorization::numberGoodColumns (  )  const [inline]

Number of good columns in factorization.

Definition at line 177 of file CoinFactorization.hpp.

References numberGoodU_.

double CoinFactorization::areaFactor (  )  const [inline]

Whether larger areas needed.

Definition at line 181 of file CoinFactorization.hpp.

References areaFactor_.

void CoinFactorization::areaFactor ( double  value  )  [inline]

Returns status.

Definition at line 184 of file CoinFactorization.hpp.

References areaFactor_.

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 190 of file CoinFactorization.hpp.

References relaxCheck_.

double CoinFactorization::getAccuracyCheck (  )  const [inline]

Returns status.

Definition at line 192 of file CoinFactorization.hpp.

References relaxCheck_.

bool CoinFactorization::increasingRows (  )  const [inline]

Whether rows increase after pivoting - dummy.

Definition at line 195 of file CoinFactorization.hpp.

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 202 of file CoinFactorization.hpp.

int CoinFactorization::messageLevel (  )  const [inline]

Level of detail of messages.

Definition at line 204 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 209 of file CoinFactorization.hpp.

References maximumPivots_.

void CoinFactorization::maximumPivots ( int  value  ) 

Returns status.

int CoinFactorization::denseThreshold (  )  const [inline]

Gets dense threshold.

Definition at line 215 of file CoinFactorization.hpp.

References denseThreshold_.

void CoinFactorization::setDenseThreshold ( int  value  )  [inline]

Sets dense threshold.

Definition at line 218 of file CoinFactorization.hpp.

References denseThreshold_.

double CoinFactorization::pivotTolerance (  )  const [inline]

Pivot tolerance.

Definition at line 221 of file CoinFactorization.hpp.

References pivotTolerance_.

void CoinFactorization::pivotTolerance ( double  value  ) 

Returns status.

double CoinFactorization::zeroTolerance (  )  const [inline]

Zero tolerance.

Definition at line 226 of file CoinFactorization.hpp.

References zeroTolerance_.

void CoinFactorization::zeroTolerance ( double  value  ) 

Returns status.

double CoinFactorization::slackValue (  )  const [inline]

Whether slack value is +1 or -1.

Definition at line 231 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 238 of file CoinFactorization.hpp.

References doForrestTomlin_.

void CoinFactorization::setForrestTomlin ( bool  value  )  [inline]

Returns status.

Definition at line 240 of file CoinFactorization.hpp.

References doForrestTomlin_.

int CoinFactorization::numberDense (  )  const [inline]

Returns number of dense rows.

Definition at line 248 of file CoinFactorization.hpp.

References numberDense_.

CoinBigIndex CoinFactorization::numberElementsU (  )  const [inline]

Returns number in U area.

Definition at line 252 of file CoinFactorization.hpp.

References lengthU_.

CoinBigIndex CoinFactorization::lengthAreaU (  )  const [inline]

Returns length of U area.

Definition at line 256 of file CoinFactorization.hpp.

References lengthAreaU_.

CoinBigIndex CoinFactorization::numberElementsL (  )  const [inline]

Returns number in L area.

Definition at line 260 of file CoinFactorization.hpp.

References lengthL_.

CoinBigIndex CoinFactorization::lengthAreaL (  )  const [inline]

Returns length of L area.

Definition at line 264 of file CoinFactorization.hpp.

References lengthAreaL_.

CoinBigIndex CoinFactorization::numberElementsR (  )  const [inline]

Returns number in R area.

Definition at line 268 of file CoinFactorization.hpp.

References lengthR_.

CoinBigIndex CoinFactorization::numberCompressions (  )  const [inline]

Number of compressions done.

Definition at line 272 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 277 of file CoinFactorization.hpp.

References biasLU_.

void CoinFactorization::setBiasLU ( int  value  )  [inline]

Returns number of dense rows.

Definition at line 279 of file CoinFactorization.hpp.

References biasLU_.

int CoinFactorization::persistenceFlag (  )  const [inline]

Array persistence flag If 0 then as now (delete/new) 1 then only do arrays if bigger needed 2 as 1 but give a bit extra if bigger needed.

Definition at line 286 of file CoinFactorization.hpp.

References persistenceFlag_.

void CoinFactorization::setPersistenceFlag ( int  value  ) 

Returns number of dense rows.

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

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.

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.

void CoinFactorization::goSparse (  ) 

makes a row copy of L for speed and to allow very sparse problems

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 342 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 442 of file CoinFactorization.hpp.

References CoinIntArrayWithLength::array(), 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 458 of file CoinFactorization.hpp.

References CoinIntArrayWithLength::array(), 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 ( int  type = 1  )  [protected]

The real work of constructors etc 0 just scalars, 1 bit normal.

Referenced by clearArrays().

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.

template<class T>
bool CoinFactorization::pivot ( int  pivotRow,
int  pivotColumn,
CoinBigIndex  pivotRowPosition,
CoinBigIndex  pivotColumnPosition,
double  work[],
unsigned int  workArea2[],
int  increment,
int  increment2,
markRow[],
int  largeInteger 
) [inline, protected]

Gets space for a factorization, called by constructors.

Definition at line 581 of file CoinFactorization.hpp.

References addLink(), CoinDoubleArrayWithLength::array(), CoinBigIndexArrayWithLength::array(), CoinIntArrayWithLength::array(), 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_.


Friends And Related Function Documentation

void CoinFactorizationUnitTest ( const std::string &  mpsDir  )  [friend]


Member Data Documentation

double CoinFactorization::pivotTolerance_ [protected]

Pivot tolerance.

Definition at line 1064 of file CoinFactorization.hpp.

Referenced by pivotTolerance().

double CoinFactorization::zeroTolerance_ [protected]

Zero tolerance.

Definition at line 1066 of file CoinFactorization.hpp.

Referenced by pivot(), and zeroTolerance().

double CoinFactorization::slackValue_ [protected]

Whether slack value is +1 or -1.

Definition at line 1068 of file CoinFactorization.hpp.

Referenced by slackValue().

double CoinFactorization::areaFactor_ [protected]

How much to multiply areas by.

Definition at line 1070 of file CoinFactorization.hpp.

Referenced by areaFactor().

double CoinFactorization::relaxCheck_ [protected]

Relax check on accuracy in replaceColumn.

Definition at line 1072 of file CoinFactorization.hpp.

Referenced by getAccuracyCheck(), and relaxAccuracyCheck().

int CoinFactorization::numberRows_ [protected]

Number of Rows in factorization.

Definition at line 1074 of file CoinFactorization.hpp.

Referenced by numberRows(), and pivot().

int CoinFactorization::numberRowsExtra_ [protected]

Number of Rows after iterating.

Definition at line 1076 of file CoinFactorization.hpp.

Referenced by numberRowsExtra().

int CoinFactorization::maximumRowsExtra_ [protected]

Maximum number of Rows after iterating.

Definition at line 1078 of file CoinFactorization.hpp.

Referenced by maximumRowsExtra().

int CoinFactorization::numberColumns_ [protected]

Number of Columns in factorization.

Definition at line 1080 of file CoinFactorization.hpp.

Referenced by numberColumns().

int CoinFactorization::numberColumnsExtra_ [protected]

Number of Columns after iterating.

Definition at line 1082 of file CoinFactorization.hpp.

Referenced by numberForrestTomlin().

int CoinFactorization::maximumColumnsExtra_ [protected]

Maximum number of Columns after iterating.

Definition at line 1084 of file CoinFactorization.hpp.

int CoinFactorization::numberGoodU_ [protected]

Number factorized in U (not row singletons).

Definition at line 1086 of file CoinFactorization.hpp.

Referenced by numberGoodColumns(), and pivot().

int CoinFactorization::numberGoodL_ [protected]

Number factorized in L.

Definition at line 1088 of file CoinFactorization.hpp.

Referenced by pivot().

int CoinFactorization::maximumPivots_ [protected]

Maximum number of pivots before factorization.

Definition at line 1090 of file CoinFactorization.hpp.

Referenced by maximumPivots().

int CoinFactorization::numberPivots_ [protected]

Number pivots since last factorization.

Definition at line 1092 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 1095 of file CoinFactorization.hpp.

Referenced by numberElements(), and pivot().

CoinBigIndex CoinFactorization::factorElements_ [protected]

Number of elements after factorization.

Definition at line 1097 of file CoinFactorization.hpp.

CoinIntArrayWithLength CoinFactorization::pivotColumn_ [protected]

Pivot order for each Column.

Definition at line 1099 of file CoinFactorization.hpp.

Referenced by pivotColumn().

CoinIntArrayWithLength CoinFactorization::permute_ [protected]

Permutation vector for pivot row order.

Definition at line 1101 of file CoinFactorization.hpp.

Referenced by permute().

CoinIntArrayWithLength CoinFactorization::permuteBack_ [protected]

DePermutation vector for pivot row order.

Definition at line 1103 of file CoinFactorization.hpp.

Referenced by permuteBack().

CoinIntArrayWithLength CoinFactorization::pivotColumnBack_ [protected]

Inverse Pivot order for each Column.

Definition at line 1105 of file CoinFactorization.hpp.

Referenced by pivotColumnBack().

int CoinFactorization::status_ [protected]

Status of factorization.

Definition at line 1107 of file CoinFactorization.hpp.

Referenced by status().

int CoinFactorization::numberTrials_ [protected]

Number of trials before rejection.

Definition at line 1116 of file CoinFactorization.hpp.

CoinBigIndexArrayWithLength CoinFactorization::startRowU_ [protected]

Start of each Row as pointer.

Definition at line 1118 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::numberInRow_ [protected]

Number in each Row.

Definition at line 1121 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::numberInColumn_ [protected]

Number in each Column.

Definition at line 1124 of file CoinFactorization.hpp.

Referenced by numberForrestTomlin(), and pivot().

CoinIntArrayWithLength CoinFactorization::numberInColumnPlus_ [protected]

Number in each Column including pivoted.

Definition at line 1127 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::firstCount_ [protected]

First Row/Column with count of k, can tell which by offset - Rows then Columns.

Definition at line 1131 of file CoinFactorization.hpp.

Referenced by addLink(), and deleteLink().

CoinIntArrayWithLength CoinFactorization::nextCount_ [protected]

Next Row/Column with count.

Definition at line 1134 of file CoinFactorization.hpp.

Referenced by addLink(), deleteLink(), and pivot().

CoinIntArrayWithLength CoinFactorization::lastCount_ [protected]

Previous Row/Column with count.

Definition at line 1137 of file CoinFactorization.hpp.

Referenced by addLink(), and deleteLink().

CoinIntArrayWithLength CoinFactorization::nextColumn_ [protected]

Next Column in memory order.

Definition at line 1140 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::lastColumn_ [protected]

Previous Column in memory order.

Definition at line 1143 of file CoinFactorization.hpp.

CoinIntArrayWithLength CoinFactorization::nextRow_ [protected]

Next Row in memory order.

Definition at line 1146 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::lastRow_ [protected]

Previous Row in memory order.

Definition at line 1149 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::saveColumn_ [protected]

Columns left to do in a single pivot.

Definition at line 1152 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::markRow_ [protected]

Marks rows to be updated.

Definition at line 1155 of file CoinFactorization.hpp.

int CoinFactorization::messageLevel_ [protected]

Detail in messages.

Definition at line 1158 of file CoinFactorization.hpp.

Referenced by messageLevel().

int CoinFactorization::biggerDimension_ [protected]

Larger of row and column size.

Definition at line 1161 of file CoinFactorization.hpp.

CoinIntArrayWithLength CoinFactorization::indexColumnU_ [protected]

Base address for U (may change).

Definition at line 1164 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::pivotRowL_ [protected]

Pivots for L.

Definition at line 1167 of file CoinFactorization.hpp.

Referenced by pivot().

CoinDoubleArrayWithLength CoinFactorization::pivotRegion_ [protected]

Inverses of pivot values.

Definition at line 1170 of file CoinFactorization.hpp.

Referenced by pivot().

int CoinFactorization::numberSlacks_ [protected]

Number of slacks at beginning of U.

Definition at line 1173 of file CoinFactorization.hpp.

int CoinFactorization::numberU_ [protected]

Number in U.

Definition at line 1176 of file CoinFactorization.hpp.

CoinBigIndex CoinFactorization::maximumU_ [protected]

Maximum space used in U.

Definition at line 1179 of file CoinFactorization.hpp.

CoinBigIndex CoinFactorization::lengthU_ [protected]

Length of U.

Definition at line 1185 of file CoinFactorization.hpp.

Referenced by numberElementsU().

CoinBigIndex CoinFactorization::lengthAreaU_ [protected]

Length of area reserved for U.

Definition at line 1188 of file CoinFactorization.hpp.

Referenced by lengthAreaU().

CoinDoubleArrayWithLength CoinFactorization::elementU_ [protected]

Elements of U.

Definition at line 1191 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::indexRowU_ [protected]

Row indices of U.

Definition at line 1194 of file CoinFactorization.hpp.

Referenced by pivot().

CoinBigIndexArrayWithLength CoinFactorization::startColumnU_ [protected]

Start of each column in U.

Definition at line 1197 of file CoinFactorization.hpp.

Referenced by pivot().

CoinBigIndexArrayWithLength CoinFactorization::convertRowToColumnU_ [protected]

Converts rows to columns in U.

Definition at line 1200 of file CoinFactorization.hpp.

int CoinFactorization::numberL_ [protected]

Number in L.

Definition at line 1203 of file CoinFactorization.hpp.

int CoinFactorization::baseL_ [protected]

Base of L.

Definition at line 1206 of file CoinFactorization.hpp.

CoinBigIndex CoinFactorization::lengthL_ [protected]

Length of L.

Definition at line 1209 of file CoinFactorization.hpp.

Referenced by numberElementsL(), and pivot().

CoinBigIndex CoinFactorization::lengthAreaL_ [protected]

Length of area reserved for L.

Definition at line 1212 of file CoinFactorization.hpp.

Referenced by lengthAreaL(), and pivot().

CoinDoubleArrayWithLength CoinFactorization::elementL_ [protected]

Elements of L.

Definition at line 1215 of file CoinFactorization.hpp.

Referenced by pivot().

CoinIntArrayWithLength CoinFactorization::indexRowL_ [protected]

Row indices of L.

Definition at line 1218 of file CoinFactorization.hpp.

Referenced by pivot().

CoinBigIndexArrayWithLength CoinFactorization::startColumnL_ [protected]

Start of each column in L.

Definition at line 1221 of file CoinFactorization.hpp.

Referenced by pivot().

bool CoinFactorization::doForrestTomlin_ [protected]

true if Forrest Tomlin update, false if PFI

Definition at line 1224 of file CoinFactorization.hpp.

Referenced by forrestTomlin(), and setForrestTomlin().

int CoinFactorization::numberR_ [protected]

Number in R.

Definition at line 1227 of file CoinFactorization.hpp.

CoinBigIndex CoinFactorization::lengthR_ [protected]

Length of R stuff.

Definition at line 1230 of file CoinFactorization.hpp.

Referenced by numberElementsR().

CoinBigIndex CoinFactorization::lengthAreaR_ [protected]

length of area reserved for R

Definition at line 1233 of file CoinFactorization.hpp.

double* CoinFactorization::elementR_ [protected]

Elements of R.

Definition at line 1236 of file CoinFactorization.hpp.

int* CoinFactorization::indexRowR_ [protected]

Row indices for R.

Definition at line 1239 of file CoinFactorization.hpp.

CoinBigIndexArrayWithLength CoinFactorization::startColumnR_ [protected]

Start of columns for R.

Definition at line 1242 of file CoinFactorization.hpp.

double* CoinFactorization::denseArea_ [protected]

Dense area.

Definition at line 1245 of file CoinFactorization.hpp.

int* CoinFactorization::densePermute_ [protected]

Dense permutation.

Definition at line 1248 of file CoinFactorization.hpp.

int CoinFactorization::numberDense_ [protected]

Number of dense rows.

Definition at line 1251 of file CoinFactorization.hpp.

Referenced by numberDense().

int CoinFactorization::denseThreshold_ [protected]

Dense threshold.

Definition at line 1254 of file CoinFactorization.hpp.

Referenced by denseThreshold(), and setDenseThreshold().

CoinDoubleArrayWithLength CoinFactorization::workArea_ [protected]

First work area.

Definition at line 1257 of file CoinFactorization.hpp.

CoinUnsignedIntArrayWithLength CoinFactorization::workArea2_ [protected]

Second work area.

Definition at line 1260 of file CoinFactorization.hpp.

CoinBigIndex CoinFactorization::numberCompressions_ [protected]

Number of compressions done.

Definition at line 1263 of file CoinFactorization.hpp.

Referenced by numberCompressions().

double CoinFactorization::ftranCountInput_ [mutable, protected]

Below are all to collect.

Definition at line 1266 of file CoinFactorization.hpp.

double CoinFactorization::ftranCountAfterL_ [mutable, protected]

Pivot tolerance.

Definition at line 1267 of file CoinFactorization.hpp.

double CoinFactorization::ftranCountAfterR_ [mutable, protected]

Pivot tolerance.

Definition at line 1268 of file CoinFactorization.hpp.

double CoinFactorization::ftranCountAfterU_ [mutable, protected]

Pivot tolerance.

Definition at line 1269 of file CoinFactorization.hpp.

double CoinFactorization::btranCountInput_ [mutable, protected]

Pivot tolerance.

Definition at line 1270 of file CoinFactorization.hpp.

double CoinFactorization::btranCountAfterU_ [mutable, protected]

Pivot tolerance.

Definition at line 1271 of file CoinFactorization.hpp.

double CoinFactorization::btranCountAfterR_ [mutable, protected]

Pivot tolerance.

Definition at line 1272 of file CoinFactorization.hpp.

double CoinFactorization::btranCountAfterL_ [mutable, protected]

Pivot tolerance.

Definition at line 1273 of file CoinFactorization.hpp.

int CoinFactorization::numberFtranCounts_ [mutable, protected]

We can roll over factorizations.

Definition at line 1276 of file CoinFactorization.hpp.

int CoinFactorization::numberBtranCounts_ [mutable, protected]

Pivot tolerance.

Definition at line 1277 of file CoinFactorization.hpp.

double CoinFactorization::ftranAverageAfterL_ [protected]

While these are average ratios collected over last period.

Definition at line 1280 of file CoinFactorization.hpp.

double CoinFactorization::ftranAverageAfterR_ [protected]

Pivot tolerance.

Definition at line 1281 of file CoinFactorization.hpp.

double CoinFactorization::ftranAverageAfterU_ [protected]

Pivot tolerance.

Definition at line 1282 of file CoinFactorization.hpp.

double CoinFactorization::btranAverageAfterU_ [protected]

Pivot tolerance.

Definition at line 1283 of file CoinFactorization.hpp.

double CoinFactorization::btranAverageAfterR_ [protected]

Pivot tolerance.

Definition at line 1284 of file CoinFactorization.hpp.

double CoinFactorization::btranAverageAfterL_ [protected]

Pivot tolerance.

Definition at line 1285 of file CoinFactorization.hpp.

bool CoinFactorization::collectStatistics_ [mutable, protected]

For statistics.

Definition at line 1288 of file CoinFactorization.hpp.

int CoinFactorization::sparseThreshold_ [protected]

Below this use sparse technology - if 0 then no L row copy.

Definition at line 1291 of file CoinFactorization.hpp.

int CoinFactorization::sparseThreshold2_ [protected]

And one for "sparsish".

Definition at line 1294 of file CoinFactorization.hpp.

CoinBigIndexArrayWithLength CoinFactorization::startRowL_ [protected]

Start of each row in L.

Definition at line 1297 of file CoinFactorization.hpp.

CoinIntArrayWithLength CoinFactorization::indexColumnL_ [protected]

Index of column in row for L.

Definition at line 1300 of file CoinFactorization.hpp.

CoinDoubleArrayWithLength CoinFactorization::elementByRowL_ [protected]

Elements in L (row copy).

Definition at line 1303 of file CoinFactorization.hpp.

CoinIntArrayWithLength CoinFactorization::sparse_ [mutable, protected]

Sparse regions.

Definition at line 1306 of file CoinFactorization.hpp.

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 1310 of file CoinFactorization.hpp.

Referenced by biasLU(), and setBiasLU().

int CoinFactorization::persistenceFlag_ [protected]

Array persistence flag If 0 then as now (delete/new) 1 then only do arrays if bigger needed 2 as 1 but give a bit extra if bigger needed.

Definition at line 1316 of file CoinFactorization.hpp.

Referenced by persistenceFlag().


The documentation for this class was generated from the following file:
Generated on Fri May 16 16:28:52 2008 by  doxygen 1.4.7