CoinUtils  2.11.9
Friends | List of all members
CoinSimpFactorization Class Reference

#include <CoinSimpFactorization.hpp>

+ Inheritance diagram for CoinSimpFactorization:
+ Collaboration diagram for CoinSimpFactorization:

Public Member Functions

Constructors and destructor and copy
 CoinSimpFactorization ()
 Default constructor. More...
 
 CoinSimpFactorization (const CoinSimpFactorization &other)
 Copy constructor. More...
 
virtual ~CoinSimpFactorization ()
 Destructor. More...
 
CoinSimpFactorizationoperator= (const CoinSimpFactorization &other)
 = copy More...
 
virtual CoinOtherFactorizationclone () const
 Clone. More...
 
 CoinSimpFactorization ()
 Default constructor. More...
 
 CoinSimpFactorization (const CoinSimpFactorization &other)
 Copy constructor. More...
 
virtual ~CoinSimpFactorization ()
 Destructor. More...
 
CoinSimpFactorizationoperator= (const CoinSimpFactorization &other)
 = copy More...
 
virtual CoinOtherFactorizationclone () const
 Clone. More...
 
Do factorization - public
virtual void getAreas (int numberRows, int numberColumns, int maximumL, int maximumU)
 Gets space for a factorization. More...
 
virtual void preProcess ()
 PreProcesses column ordered copy of basis. More...
 
virtual int factor ()
 Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo. More...
 
virtual void postProcess (const int *sequence, int *pivotVariable)
 Does post processing on valid factorization - putting variables on correct rows. More...
 
virtual void makeNonSingular (int *sequence, int numberColumns)
 Makes a non-singular basis by replacing variables. More...
 
virtual void getAreas (int numberRows, int numberColumns, int maximumL, int maximumU)
 Gets space for a factorization. More...
 
virtual void preProcess ()
 PreProcesses column ordered copy of basis. More...
 
virtual int factor ()
 Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo. More...
 
virtual void postProcess (const int *sequence, int *pivotVariable)
 Does post processing on valid factorization - putting variables on correct rows. More...
 
virtual void makeNonSingular (int *sequence, int numberColumns)
 Makes a non-singular basis by replacing variables. More...
 
general stuff such as status
virtual int numberElements () const
 Total number of elements in factorization. More...
 
double maximumCoefficient () const
 Returns maximum absolute value in factorization. More...
 
virtual int numberElements () const
 Total number of elements in factorization. More...
 
double maximumCoefficient () const
 Returns maximum absolute value in factorization. More...
 
rank one updates which do exist
virtual int replaceColumn (CoinIndexedVector *regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying=false, double acceptablePivot=1.0e-8)
 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. More...
 
virtual int replaceColumn (CoinIndexedVector *regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying=false, double acceptablePivot=1.0e-8)
 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. More...
 
various uses of factorization (return code number elements)

which user may want to know about

virtual int updateColumnFT (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false)
 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. More...
 
virtual 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. More...
 
virtual int updateTwoColumnsFT (CoinIndexedVector *regionSparse1, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3, bool noPermute=false)
 does FTRAN on two columns More...
 
int upColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false, bool save=false) const
 does updatecolumn if save==true keeps column for replace column More...
 
virtual 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. More...
 
int upColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
 does updateColumnTranspose, the other is a wrapper More...
 
virtual int updateColumnFT (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false)
 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. More...
 
virtual 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. More...
 
virtual int updateTwoColumnsFT (CoinIndexedVector *regionSparse1, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3, bool noPermute=false)
 does FTRAN on two columns More...
 
int upColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false, bool save=false) const
 does updatecolumn if save==true keeps column for replace column More...
 
virtual 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. More...
 
int upColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
 does updateColumnTranspose, the other is a wrapper More...
 
- Public Member Functions inherited from CoinOtherFactorization
 CoinOtherFactorization ()
 Default constructor. More...
 
 CoinOtherFactorization (const CoinOtherFactorization &other)
 Copy constructor. More...
 
virtual ~CoinOtherFactorization ()
 Destructor. More...
 
CoinOtherFactorizationoperator= (const CoinOtherFactorization &other)
 = copy More...
 
 CoinOtherFactorization ()
 Default constructor. More...
 
 CoinOtherFactorization (const CoinOtherFactorization &other)
 Copy constructor. More...
 
virtual ~CoinOtherFactorization ()
 Destructor. More...
 
CoinOtherFactorizationoperator= (const CoinOtherFactorization &other)
 = copy More...
 
int status () const
 Returns status. More...
 
void setStatus (int value)
 Sets status. More...
 
int pivots () const
 Returns number of pivots since factorization. More...
 
void setPivots (int value)
 Sets number of pivots since factorization. More...
 
void setNumberRows (int value)
 Set number of Rows after factorization. More...
 
int numberRows () const
 Number of Rows after factorization. More...
 
int numberColumns () const
 Total number of columns in factorization. More...
 
int numberGoodColumns () const
 Number of good columns in factorization. More...
 
void relaxAccuracyCheck (double value)
 Allows change of pivot accuracy check 1.0 == none >1.0 relaxed. More...
 
double getAccuracyCheck () const
 
int maximumPivots () const
 Maximum number of pivots between factorizations. More...
 
virtual void maximumPivots (int value)
 Set maximum pivots. More...
 
double pivotTolerance () const
 Pivot tolerance. More...
 
void pivotTolerance (double value)
 
double zeroTolerance () const
 Zero tolerance. More...
 
void zeroTolerance (double value)
 
double slackValue () const
 Whether slack value is +1 or -1. More...
 
void slackValue (double value)
 
virtual CoinFactorizationDoubleelements () const
 Returns array to put basis elements in. More...
 
virtual int * pivotRow () const
 Returns pivot row. More...
 
virtual CoinFactorizationDoubleworkArea () const
 Returns work area. More...
 
virtual int * intWorkArea () const
 Returns int work area. More...
 
virtual int * numberInRow () const
 Number of entries in each row. More...
 
virtual int * numberInColumn () const
 Number of entries in each column. More...
 
virtual int * starts () const
 Returns array to put basis starts in. More...
 
virtual int * permuteBack () const
 Returns permute back. More...
 
int solveMode () const
 Get solve mode e.g. More...
 
void setSolveMode (int value)
 Set solve mode e.g. More...
 
virtual bool wantsTableauColumn () const
 Returns true if wants tableauColumn in replaceColumn. More...
 
virtual void setUsefulInformation (const int *info, int whereFrom)
 Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn. More...
 
int status () const
 Returns status. More...
 
void setStatus (int value)
 Sets status. More...
 
int pivots () const
 Returns number of pivots since factorization. More...
 
void setPivots (int value)
 Sets number of pivots since factorization. More...
 
void setNumberRows (int value)
 Set number of Rows after factorization. More...
 
int numberRows () const
 Number of Rows after factorization. More...
 
int numberColumns () const
 Total number of columns in factorization. More...
 
int numberGoodColumns () const
 Number of good columns in factorization. More...
 
void relaxAccuracyCheck (double value)
 Allows change of pivot accuracy check 1.0 == none >1.0 relaxed. More...
 
double getAccuracyCheck () const
 
int maximumPivots () const
 Maximum number of pivots between factorizations. More...
 
virtual void maximumPivots (int value)
 Set maximum pivots. More...
 
double pivotTolerance () const
 Pivot tolerance. More...
 
void pivotTolerance (double value)
 
double zeroTolerance () const
 Zero tolerance. More...
 
void zeroTolerance (double value)
 
double slackValue () const
 Whether slack value is +1 or -1. More...
 
void slackValue (double value)
 
virtual CoinFactorizationDoubleelements () const
 Returns array to put basis elements in. More...
 
virtual int * pivotRow () const
 Returns pivot row. More...
 
virtual CoinFactorizationDoubleworkArea () const
 Returns work area. More...
 
virtual int * intWorkArea () const
 Returns int work area. More...
 
virtual int * numberInRow () const
 Number of entries in each row. More...
 
virtual int * numberInColumn () const
 Number of entries in each column. More...
 
virtual int * starts () const
 Returns array to put basis starts in. More...
 
virtual int * permuteBack () const
 Returns permute back. More...
 
int solveMode () const
 Get solve mode e.g. More...
 
void setSolveMode (int value)
 Set solve mode e.g. More...
 
virtual bool wantsTableauColumn () const
 Returns true if wants tableauColumn in replaceColumn. More...
 
virtual void setUsefulInformation (const int *info, int whereFrom)
 Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn. More...
 

Protected Attributes

data
double * denseVector_
 work array (should be initialized to zero) More...
 
double * workArea2_
 work array More...
 
double * workArea3_
 work array More...
 
int * vecLabels_
 array of labels (should be initialized to zero) More...
 
int * indVector_
 array of indices More...
 
double * auxVector_
 auxiliary vector More...
 
int * auxInd_
 auxiliary vector More...
 
double * vecKeep_
 vector to keep for LUupdate More...
 
int * indKeep_
 indices of this vector More...
 
int keepSize_
 number of nonzeros More...
 
int * LrowStarts_
 Starts of the rows of L. More...
 
int * LrowLengths_
 Lengths of the rows of L. More...
 
double * Lrows_
 L by rows. More...
 
int * LrowInd_
 indices in the rows of L More...
 
int LrowSize_
 Size of Lrows_;. More...
 
int LrowCap_
 Capacity of Lrows_. More...
 
int * LcolStarts_
 Starts of the columns of L. More...
 
int * LcolLengths_
 Lengths of the columns of L. More...
 
double * Lcolumns_
 L by columns. More...
 
int * LcolInd_
 indices in the columns of L More...
 
int LcolSize_
 numbers of elements in L More...
 
int LcolCap_
 maximum capacity of L More...
 
int * UrowStarts_
 Starts of the rows of U. More...
 
int * UrowLengths_
 Lengths of the rows of U. More...
 
double * Urows_
 U by rows. More...
 
int * UrowInd_
 Indices in the rows of U. More...
 
int UrowMaxCap_
 maximum capacity of Urows More...
 
int UrowEnd_
 number of used places in Urows More...
 
int firstRowInU_
 first row in U More...
 
int lastRowInU_
 last row in U More...
 
int * prevRowInU_
 previous row in U More...
 
int * nextRowInU_
 next row in U More...
 
int * UcolStarts_
 Starts of the columns of U. More...
 
int * UcolLengths_
 Lengths of the columns of U. More...
 
double * Ucolumns_
 U by columns. More...
 
int * UcolInd_
 Indices in the columns of U. More...
 
int * prevColInU_
 previous column in U More...
 
int * nextColInU_
 next column in U More...
 
int firstColInU_
 first column in U More...
 
int lastColInU_
 last column in U More...
 
int UcolMaxCap_
 maximum capacity of Ucolumns_ More...
 
int UcolEnd_
 last used position in Ucolumns_ More...
 
int * colSlack_
 indicator of slack variables More...
 
double * invOfPivots_
 inverse values of the elements of diagonal of U More...
 
int * colOfU_
 permutation of columns More...
 
int * colPosition_
 position of column after permutation More...
 
int * rowOfU_
 permutations of rows More...
 
int * rowPosition_
 position of row after permutation More...
 
int * secRowOfU_
 permutations of rows during LUupdate More...
 
int * secRowPosition_
 position of row after permutation during LUupdate More...
 
int * EtaPosition_
 position of Eta vector More...
 
int * EtaStarts_
 Starts of eta vectors. More...
 
int * EtaLengths_
 Lengths of eta vectors. More...
 
int * EtaInd_
 columns of eta vectors More...
 
double * Eta_
 elements of eta vectors More...
 
int EtaSize_
 number of elements in Eta_ More...
 
int lastEtaRow_
 last eta row More...
 
int maxEtaRows_
 maximum number of eta vectors More...
 
int EtaMaxCap_
 Capacity of Eta_. More...
 
int minIncrease_
 minimum storage increase More...
 
double updateTol_
 maximum size for the diagonal of U after update More...
 
bool doSuhlHeuristic_
 do Shul heuristic More...
 
double maxU_
 maximum of U More...
 
double maxGrowth_
 bound on the growth rate More...
 
double maxA_
 maximum of A More...
 
int pivotCandLimit_
 maximum number of candidates for pivot More...
 
int numberSlacks_
 number of slacks in basis More...
 
int firstNumberSlacks_
 number of slacks in irst basis More...
 
- Protected Attributes inherited from CoinOtherFactorization
double pivotTolerance_
 Pivot tolerance. More...
 
double zeroTolerance_
 Zero tolerance. More...
 
double slackValue_
 Whether slack value is +1 or -1. More...
 
double relaxCheck_
 Relax check on accuracy in replaceColumn. More...
 
int factorElements_
 Number of elements after factorization. More...
 
int numberRows_
 Number of Rows in factorization. More...
 
int numberColumns_
 Number of Columns in factorization. More...
 
int numberGoodU_
 Number factorized in U (not row singletons) More...
 
int maximumPivots_
 Maximum number of pivots before factorization. More...
 
int numberPivots_
 Number pivots since last factorization. More...
 
int status_
 Status of factorization. More...
 
int maximumRows_
 Maximum rows ever (i.e. use to copy arrays etc) More...
 
int maximumSpace_
 Maximum length of iterating area. More...
 
int * pivotRow_
 Pivot row. More...
 
CoinFactorizationDoubleelements_
 Elements of factorization and updates length is maxR*maxR+maxSpace will always be long enough so can have nR*nR ints in maxSpace. More...
 
CoinFactorizationDoubleworkArea_
 Work area of numberRows_. More...
 
int solveMode_
 Solve mode e.g. More...
 

Friends

void CoinSimpFactorizationUnitTest (const std::string &mpsDir)
 
void CoinSimpFactorizationUnitTest (const std::string &mpsDir)
 

various uses of factorization

*** Below this user may not want to know about

which user may not want to know about (left over from my LP code)

void clearArrays ()
 Get rid of all memory. More...
 
int * indices () const
 Returns array to put basis indices in. More...
 
virtual int * permute () const
 Returns permute in. More...
 
void gutsOfDestructor ()
 The real work of destructor. More...
 
void gutsOfInitialize ()
 The real work of constructor. More...
 
void gutsOfCopy (const CoinSimpFactorization &other)
 The real work of copy. More...
 
void factorize (int numberOfRows, int numberOfColumns, const int colStarts[], const int indicesRow[], const double elements[])
 calls factorization More...
 
int mainLoopFactor (FactorPointers &pointers)
 main loop of factorization More...
 
void copyLbyRows ()
 copies L by rows More...
 
void copyUbyColumns ()
 copies U by columns More...
 
int findPivot (FactorPointers &pointers, int &r, int &s, bool &ifSlack)
 finds a pivot element using Markowitz count More...
 
int findPivotShCol (FactorPointers &pointers, int &r, int &s)
 finds a pivot in a shortest column More...
 
int findPivotSimp (FactorPointers &pointers, int &r, int &s)
 finds a pivot in the first column available More...
 
void GaussEliminate (FactorPointers &pointers, int &r, int &s)
 does Gauss elimination More...
 
int findShortRow (const int column, const int length, int &minRow, int &minRowLength, FactorPointers &pointers)
 finds short row that intersects a given column More...
 
int findShortColumn (const int row, const int length, int &minCol, int &minColLength, FactorPointers &pointers)
 finds short column that intersects a given row More...
 
double findMaxInRrow (const int row, FactorPointers &pointers)
 finds maximum absolute value in a row More...
 
void pivoting (const int pivotRow, const int pivotColumn, const double invPivot, FactorPointers &pointers)
 does pivoting More...
 
void updateCurrentRow (const int pivotRow, const int row, const double multiplier, FactorPointers &pointers, int &newNonZeros)
 part of pivoting More...
 
void increaseLsize ()
 allocates more space for L More...
 
void increaseRowSize (const int row, const int newSize)
 allocates more space for a row of U More...
 
void increaseColSize (const int column, const int newSize, const bool b)
 allocates more space for a column of U More...
 
void enlargeUrow (const int numNewElements)
 allocates more space for rows of U More...
 
void enlargeUcol (const int numNewElements, const bool b)
 allocates more space for columns of U More...
 
int findInRow (const int row, const int column)
 finds a given row in a column More...
 
int findInColumn (const int column, const int row)
 finds a given column in a row More...
 
void removeRowFromActSet (const int row, FactorPointers &pointers)
 declares a row inactive More...
 
void removeColumnFromActSet (const int column, FactorPointers &pointers)
 declares a column inactive More...
 
void allocateSpaceForU ()
 allocates space for U More...
 
void allocateSomeArrays ()
 allocates several working arrays More...
 
void initialSomeNumbers ()
 initializes some numbers More...
 
void Lxeqb (double *b) const
 solves L x = b More...
 
void Lxeqb2 (double *b1, double *b2) const
 same as above but with two rhs More...
 
void Uxeqb (double *b, double *sol) const
 solves U x = b More...
 
void Uxeqb2 (double *b1, double *sol1, double *sol2, double *b2) const
 same as above but with two rhs More...
 
void xLeqb (double *b) const
 solves x L = b More...
 
void xUeqb (double *b, double *sol) const
 solves x U = b More...
 
int LUupdate (int newBasicCol)
 updates factorization after a Simplex iteration More...
 
void newEta (int row, int numNewElements)
 creates a new eta vector More...
 
void copyRowPermutations ()
 makes a copy of row permutations More...
 
void Hxeqb (double *b) const
 solves H x = b, where H is a product of eta matrices More...
 
void Hxeqb2 (double *b1, double *b2) const
 same as above but with two rhs More...
 
void xHeqb (double *b) const
 solves x H = b More...
 
void ftran (double *b, double *sol, bool save) const
 does FTRAN More...
 
void ftran2 (double *b1, double *sol1, double *b2, double *sol2) const
 same as above but with two columns More...
 
void btran (double *b, double *sol) const
 does BTRAN More...
 
void clearArrays ()
 Get rid of all memory. More...
 
int * indices () const
 Returns array to put basis indices in. More...
 
virtual int * permute () const
 Returns permute in. More...
 
void gutsOfDestructor ()
 The real work of destructor. More...
 
void gutsOfInitialize ()
 The real work of constructor. More...
 
void gutsOfCopy (const CoinSimpFactorization &other)
 The real work of copy. More...
 
void factorize (int numberOfRows, int numberOfColumns, const int colStarts[], const int indicesRow[], const double elements[])
 calls factorization More...
 
int mainLoopFactor (FactorPointers &pointers)
 main loop of factorization More...
 
void copyLbyRows ()
 copies L by rows More...
 
void copyUbyColumns ()
 copies U by columns More...
 
int findPivot (FactorPointers &pointers, int &r, int &s, bool &ifSlack)
 finds a pivot element using Markowitz count More...
 
int findPivotShCol (FactorPointers &pointers, int &r, int &s)
 finds a pivot in a shortest column More...
 
int findPivotSimp (FactorPointers &pointers, int &r, int &s)
 finds a pivot in the first column available More...
 
void GaussEliminate (FactorPointers &pointers, int &r, int &s)
 does Gauss elimination More...
 
int findShortRow (const int column, const int length, int &minRow, int &minRowLength, FactorPointers &pointers)
 finds short row that intersects a given column More...
 
int findShortColumn (const int row, const int length, int &minCol, int &minColLength, FactorPointers &pointers)
 finds short column that intersects a given row More...
 
double findMaxInRrow (const int row, FactorPointers &pointers)
 finds maximum absolute value in a row More...
 
void pivoting (const int pivotRow, const int pivotColumn, const double invPivot, FactorPointers &pointers)
 does pivoting More...
 
void updateCurrentRow (const int pivotRow, const int row, const double multiplier, FactorPointers &pointers, int &newNonZeros)
 part of pivoting More...
 
void increaseLsize ()
 allocates more space for L More...
 
void increaseRowSize (const int row, const int newSize)
 allocates more space for a row of U More...
 
void increaseColSize (const int column, const int newSize, const bool b)
 allocates more space for a column of U More...
 
void enlargeUrow (const int numNewElements)
 allocates more space for rows of U More...
 
void enlargeUcol (const int numNewElements, const bool b)
 allocates more space for columns of U More...
 
int findInRow (const int row, const int column)
 finds a given row in a column More...
 
int findInColumn (const int column, const int row)
 finds a given column in a row More...
 
void removeRowFromActSet (const int row, FactorPointers &pointers)
 declares a row inactive More...
 
void removeColumnFromActSet (const int column, FactorPointers &pointers)
 declares a column inactive More...
 
void allocateSpaceForU ()
 allocates space for U More...
 
void allocateSomeArrays ()
 allocates several working arrays More...
 
void initialSomeNumbers ()
 initializes some numbers More...
 
void Lxeqb (double *b) const
 solves L x = b More...
 
void Lxeqb2 (double *b1, double *b2) const
 same as above but with two rhs More...
 
void Uxeqb (double *b, double *sol) const
 solves U x = b More...
 
void Uxeqb2 (double *b1, double *sol1, double *sol2, double *b2) const
 same as above but with two rhs More...
 
void xLeqb (double *b) const
 solves x L = b More...
 
void xUeqb (double *b, double *sol) const
 solves x U = b More...
 
int LUupdate (int newBasicCol)
 updates factorization after a Simplex iteration More...
 
void newEta (int row, int numNewElements)
 creates a new eta vector More...
 
void copyRowPermutations ()
 makes a copy of row permutations More...
 
void Hxeqb (double *b) const
 solves H x = b, where H is a product of eta matrices More...
 
void Hxeqb2 (double *b1, double *b2) const
 same as above but with two rhs More...
 
void xHeqb (double *b) const
 solves x H = b More...
 
void ftran (double *b, double *sol, bool save) const
 does FTRAN More...
 
void ftran2 (double *b1, double *sol1, double *b2, double *sol2) const
 same as above but with two columns More...
 
void btran (double *b, double *sol) const
 does BTRAN More...
 
int checkPivot (double saveFromU, double oldPivot) const
 Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular. More...
 
int checkPivot (double saveFromU, double oldPivot) const
 Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular. More...
 

Detailed Description

Definition at line 37 of file CoinSimpFactorization.hpp.

Constructor & Destructor Documentation

◆ CoinSimpFactorization() [1/4]

CoinSimpFactorization::CoinSimpFactorization ( )

Default constructor.

◆ CoinSimpFactorization() [2/4]

CoinSimpFactorization::CoinSimpFactorization ( const CoinSimpFactorization other)

Copy constructor.

◆ ~CoinSimpFactorization() [1/2]

virtual CoinSimpFactorization::~CoinSimpFactorization ( )
virtual

Destructor.

◆ CoinSimpFactorization() [3/4]

CoinSimpFactorization::CoinSimpFactorization ( )

Default constructor.

◆ CoinSimpFactorization() [4/4]

CoinSimpFactorization::CoinSimpFactorization ( const CoinSimpFactorization other)

Copy constructor.

◆ ~CoinSimpFactorization() [2/2]

virtual CoinSimpFactorization::~CoinSimpFactorization ( )
virtual

Destructor.

Member Function Documentation

◆ operator=() [1/2]

CoinSimpFactorization& CoinSimpFactorization::operator= ( const CoinSimpFactorization other)

= copy

◆ clone() [1/2]

virtual CoinOtherFactorization* CoinSimpFactorization::clone ( ) const
virtual

Clone.

Implements CoinOtherFactorization.

◆ getAreas() [1/2]

virtual void CoinSimpFactorization::getAreas ( int  numberRows,
int  numberColumns,
int  maximumL,
int  maximumU 
)
virtual

Gets space for a factorization.

Implements CoinOtherFactorization.

◆ preProcess() [1/2]

virtual void CoinSimpFactorization::preProcess ( )
virtual

PreProcesses column ordered copy of basis.

Implements CoinOtherFactorization.

◆ factor() [1/2]

virtual int CoinSimpFactorization::factor ( )
virtual

Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.

Implements CoinOtherFactorization.

◆ postProcess() [1/2]

virtual void CoinSimpFactorization::postProcess ( const int *  sequence,
int *  pivotVariable 
)
virtual

Does post processing on valid factorization - putting variables on correct rows.

Implements CoinOtherFactorization.

◆ makeNonSingular() [1/2]

virtual void CoinSimpFactorization::makeNonSingular ( int *  sequence,
int  numberColumns 
)
virtual

Makes a non-singular basis by replacing variables.

Implements CoinOtherFactorization.

◆ numberElements() [1/2]

virtual int CoinSimpFactorization::numberElements ( ) const
inlinevirtual

Total number of elements in factorization.

Implements CoinOtherFactorization.

Definition at line 81 of file CoinSimpFactorization.hpp.

◆ maximumCoefficient() [1/2]

double CoinSimpFactorization::maximumCoefficient ( ) const

Returns maximum absolute value in factorization.

◆ replaceColumn() [1/2]

virtual int CoinSimpFactorization::replaceColumn ( CoinIndexedVector regionSparse,
int  pivotRow,
double  pivotCheck,
bool  checkBeforeModifying = false,
double  acceptablePivot = 1.0e-8 
)
virtual

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

Implements CoinOtherFactorization.

◆ updateColumnFT() [1/2]

virtual int CoinSimpFactorization::updateColumnFT ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false 
)
virtual

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

Implements CoinOtherFactorization.

◆ updateColumn() [1/2]

virtual int CoinSimpFactorization::updateColumn ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false 
) const
virtual

This version has same effect as above with FTUpdate==false so number returned is always >=0.

Implements CoinOtherFactorization.

◆ updateTwoColumnsFT() [1/2]

virtual int CoinSimpFactorization::updateTwoColumnsFT ( CoinIndexedVector regionSparse1,
CoinIndexedVector regionSparse2,
CoinIndexedVector regionSparse3,
bool  noPermute = false 
)
virtual

does FTRAN on two columns

Implements CoinOtherFactorization.

◆ upColumn() [1/2]

int CoinSimpFactorization::upColumn ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false,
bool  save = false 
) const

does updatecolumn if save==true keeps column for replace column

◆ updateColumnTranspose() [1/2]

virtual int CoinSimpFactorization::updateColumnTranspose ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2 
) const
virtual

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.

Implements CoinOtherFactorization.

◆ upColumnTranspose() [1/2]

int CoinSimpFactorization::upColumnTranspose ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2 
) const

does updateColumnTranspose, the other is a wrapper

◆ clearArrays() [1/2]

void CoinSimpFactorization::clearArrays ( )
inlinevirtual

Get rid of all memory.

Reimplemented from CoinOtherFactorization.

Definition at line 150 of file CoinSimpFactorization.hpp.

◆ indices() [1/2]

int* CoinSimpFactorization::indices ( ) const
inlinevirtual

Returns array to put basis indices in.

Implements CoinOtherFactorization.

Definition at line 155 of file CoinSimpFactorization.hpp.

◆ permute() [1/2]

virtual int* CoinSimpFactorization::permute ( ) const
inlinevirtual

Returns permute in.

Implements CoinOtherFactorization.

Definition at line 160 of file CoinSimpFactorization.hpp.

◆ gutsOfDestructor() [1/2]

void CoinSimpFactorization::gutsOfDestructor ( )

The real work of destructor.

◆ gutsOfInitialize() [1/2]

void CoinSimpFactorization::gutsOfInitialize ( )

The real work of constructor.

◆ gutsOfCopy() [1/2]

void CoinSimpFactorization::gutsOfCopy ( const CoinSimpFactorization other)

The real work of copy.

◆ factorize() [1/2]

void CoinSimpFactorization::factorize ( int  numberOfRows,
int  numberOfColumns,
const int  colStarts[],
const int  indicesRow[],
const double  elements[] 
)

calls factorization

◆ mainLoopFactor() [1/2]

int CoinSimpFactorization::mainLoopFactor ( FactorPointers pointers)

main loop of factorization

◆ copyLbyRows() [1/2]

void CoinSimpFactorization::copyLbyRows ( )

copies L by rows

◆ copyUbyColumns() [1/2]

void CoinSimpFactorization::copyUbyColumns ( )

copies U by columns

◆ findPivot() [1/2]

int CoinSimpFactorization::findPivot ( FactorPointers pointers,
int &  r,
int &  s,
bool &  ifSlack 
)

finds a pivot element using Markowitz count

◆ findPivotShCol() [1/2]

int CoinSimpFactorization::findPivotShCol ( FactorPointers pointers,
int &  r,
int &  s 
)

finds a pivot in a shortest column

◆ findPivotSimp() [1/2]

int CoinSimpFactorization::findPivotSimp ( FactorPointers pointers,
int &  r,
int &  s 
)

finds a pivot in the first column available

◆ GaussEliminate() [1/2]

void CoinSimpFactorization::GaussEliminate ( FactorPointers pointers,
int &  r,
int &  s 
)

does Gauss elimination

◆ findShortRow() [1/2]

int CoinSimpFactorization::findShortRow ( const int  column,
const int  length,
int &  minRow,
int &  minRowLength,
FactorPointers pointers 
)

finds short row that intersects a given column

◆ findShortColumn() [1/2]

int CoinSimpFactorization::findShortColumn ( const int  row,
const int  length,
int &  minCol,
int &  minColLength,
FactorPointers pointers 
)

finds short column that intersects a given row

◆ findMaxInRrow() [1/2]

double CoinSimpFactorization::findMaxInRrow ( const int  row,
FactorPointers pointers 
)

finds maximum absolute value in a row

◆ pivoting() [1/2]

void CoinSimpFactorization::pivoting ( const int  pivotRow,
const int  pivotColumn,
const double  invPivot,
FactorPointers pointers 
)

does pivoting

◆ updateCurrentRow() [1/2]

void CoinSimpFactorization::updateCurrentRow ( const int  pivotRow,
const int  row,
const double  multiplier,
FactorPointers pointers,
int &  newNonZeros 
)

part of pivoting

◆ increaseLsize() [1/2]

void CoinSimpFactorization::increaseLsize ( )

allocates more space for L

◆ increaseRowSize() [1/2]

void CoinSimpFactorization::increaseRowSize ( const int  row,
const int  newSize 
)

allocates more space for a row of U

◆ increaseColSize() [1/2]

void CoinSimpFactorization::increaseColSize ( const int  column,
const int  newSize,
const bool  b 
)

allocates more space for a column of U

◆ enlargeUrow() [1/2]

void CoinSimpFactorization::enlargeUrow ( const int  numNewElements)

allocates more space for rows of U

◆ enlargeUcol() [1/2]

void CoinSimpFactorization::enlargeUcol ( const int  numNewElements,
const bool  b 
)

allocates more space for columns of U

◆ findInRow() [1/2]

int CoinSimpFactorization::findInRow ( const int  row,
const int  column 
)

finds a given row in a column

◆ findInColumn() [1/2]

int CoinSimpFactorization::findInColumn ( const int  column,
const int  row 
)

finds a given column in a row

◆ removeRowFromActSet() [1/2]

void CoinSimpFactorization::removeRowFromActSet ( const int  row,
FactorPointers pointers 
)

declares a row inactive

◆ removeColumnFromActSet() [1/2]

void CoinSimpFactorization::removeColumnFromActSet ( const int  column,
FactorPointers pointers 
)

declares a column inactive

◆ allocateSpaceForU() [1/2]

void CoinSimpFactorization::allocateSpaceForU ( )

allocates space for U

◆ allocateSomeArrays() [1/2]

void CoinSimpFactorization::allocateSomeArrays ( )

allocates several working arrays

◆ initialSomeNumbers() [1/2]

void CoinSimpFactorization::initialSomeNumbers ( )

initializes some numbers

◆ Lxeqb() [1/2]

void CoinSimpFactorization::Lxeqb ( double *  b) const

solves L x = b

◆ Lxeqb2() [1/2]

void CoinSimpFactorization::Lxeqb2 ( double *  b1,
double *  b2 
) const

same as above but with two rhs

◆ Uxeqb() [1/2]

void CoinSimpFactorization::Uxeqb ( double *  b,
double *  sol 
) const

solves U x = b

◆ Uxeqb2() [1/2]

void CoinSimpFactorization::Uxeqb2 ( double *  b1,
double *  sol1,
double *  sol2,
double *  b2 
) const

same as above but with two rhs

◆ xLeqb() [1/2]

void CoinSimpFactorization::xLeqb ( double *  b) const

solves x L = b

◆ xUeqb() [1/2]

void CoinSimpFactorization::xUeqb ( double *  b,
double *  sol 
) const

solves x U = b

◆ LUupdate() [1/2]

int CoinSimpFactorization::LUupdate ( int  newBasicCol)

updates factorization after a Simplex iteration

◆ newEta() [1/2]

void CoinSimpFactorization::newEta ( int  row,
int  numNewElements 
)

creates a new eta vector

◆ copyRowPermutations() [1/2]

void CoinSimpFactorization::copyRowPermutations ( )

makes a copy of row permutations

◆ Hxeqb() [1/2]

void CoinSimpFactorization::Hxeqb ( double *  b) const

solves H x = b, where H is a product of eta matrices

◆ Hxeqb2() [1/2]

void CoinSimpFactorization::Hxeqb2 ( double *  b1,
double *  b2 
) const

same as above but with two rhs

◆ xHeqb() [1/2]

void CoinSimpFactorization::xHeqb ( double *  b) const

solves x H = b

◆ ftran() [1/2]

void CoinSimpFactorization::ftran ( double *  b,
double *  sol,
bool  save 
) const

does FTRAN

◆ ftran2() [1/2]

void CoinSimpFactorization::ftran2 ( double *  b1,
double *  sol1,
double *  b2,
double *  sol2 
) const

same as above but with two columns

◆ btran() [1/2]

void CoinSimpFactorization::btran ( double *  b,
double *  sol 
) const

does BTRAN

◆ checkPivot() [1/2]

int CoinSimpFactorization::checkPivot ( double  saveFromU,
double  oldPivot 
) const
protected

Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular.


◆ operator=() [2/2]

CoinSimpFactorization& CoinSimpFactorization::operator= ( const CoinSimpFactorization other)

= copy

◆ clone() [2/2]

virtual CoinOtherFactorization* CoinSimpFactorization::clone ( ) const
virtual

Clone.

Implements CoinOtherFactorization.

◆ getAreas() [2/2]

virtual void CoinSimpFactorization::getAreas ( int  numberRows,
int  numberColumns,
int  maximumL,
int  maximumU 
)
virtual

Gets space for a factorization.

Implements CoinOtherFactorization.

◆ preProcess() [2/2]

virtual void CoinSimpFactorization::preProcess ( )
virtual

PreProcesses column ordered copy of basis.

Implements CoinOtherFactorization.

◆ factor() [2/2]

virtual int CoinSimpFactorization::factor ( )
virtual

Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.

Implements CoinOtherFactorization.

◆ postProcess() [2/2]

virtual void CoinSimpFactorization::postProcess ( const int *  sequence,
int *  pivotVariable 
)
virtual

Does post processing on valid factorization - putting variables on correct rows.

Implements CoinOtherFactorization.

◆ makeNonSingular() [2/2]

virtual void CoinSimpFactorization::makeNonSingular ( int *  sequence,
int  numberColumns 
)
virtual

Makes a non-singular basis by replacing variables.

Implements CoinOtherFactorization.

◆ numberElements() [2/2]

virtual int CoinSimpFactorization::numberElements ( ) const
inlinevirtual

Total number of elements in factorization.

Implements CoinOtherFactorization.

Definition at line 81 of file CoinSimpFactorization.hpp.

◆ maximumCoefficient() [2/2]

double CoinSimpFactorization::maximumCoefficient ( ) const

Returns maximum absolute value in factorization.

◆ replaceColumn() [2/2]

virtual int CoinSimpFactorization::replaceColumn ( CoinIndexedVector regionSparse,
int  pivotRow,
double  pivotCheck,
bool  checkBeforeModifying = false,
double  acceptablePivot = 1.0e-8 
)
virtual

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

Implements CoinOtherFactorization.

◆ updateColumnFT() [2/2]

virtual int CoinSimpFactorization::updateColumnFT ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false 
)
virtual

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

Implements CoinOtherFactorization.

◆ updateColumn() [2/2]

virtual int CoinSimpFactorization::updateColumn ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false 
) const
virtual

This version has same effect as above with FTUpdate==false so number returned is always >=0.

Implements CoinOtherFactorization.

◆ updateTwoColumnsFT() [2/2]

virtual int CoinSimpFactorization::updateTwoColumnsFT ( CoinIndexedVector regionSparse1,
CoinIndexedVector regionSparse2,
CoinIndexedVector regionSparse3,
bool  noPermute = false 
)
virtual

does FTRAN on two columns

Implements CoinOtherFactorization.

◆ upColumn() [2/2]

int CoinSimpFactorization::upColumn ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false,
bool  save = false 
) const

does updatecolumn if save==true keeps column for replace column

◆ updateColumnTranspose() [2/2]

virtual int CoinSimpFactorization::updateColumnTranspose ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2 
) const
virtual

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.

Implements CoinOtherFactorization.

◆ upColumnTranspose() [2/2]

int CoinSimpFactorization::upColumnTranspose ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2 
) const

does updateColumnTranspose, the other is a wrapper

◆ clearArrays() [2/2]

void CoinSimpFactorization::clearArrays ( )
inlinevirtual

Get rid of all memory.

Reimplemented from CoinOtherFactorization.

Definition at line 150 of file CoinSimpFactorization.hpp.

◆ indices() [2/2]

int* CoinSimpFactorization::indices ( ) const
inlinevirtual

Returns array to put basis indices in.

Implements CoinOtherFactorization.

Definition at line 155 of file CoinSimpFactorization.hpp.

◆ permute() [2/2]

virtual int* CoinSimpFactorization::permute ( ) const
inlinevirtual

Returns permute in.

Implements CoinOtherFactorization.

Definition at line 160 of file CoinSimpFactorization.hpp.

◆ gutsOfDestructor() [2/2]

void CoinSimpFactorization::gutsOfDestructor ( )

The real work of destructor.

◆ gutsOfInitialize() [2/2]

void CoinSimpFactorization::gutsOfInitialize ( )

The real work of constructor.

◆ gutsOfCopy() [2/2]

void CoinSimpFactorization::gutsOfCopy ( const CoinSimpFactorization other)

The real work of copy.

◆ factorize() [2/2]

void CoinSimpFactorization::factorize ( int  numberOfRows,
int  numberOfColumns,
const int  colStarts[],
const int  indicesRow[],
const double  elements[] 
)

calls factorization

◆ mainLoopFactor() [2/2]

int CoinSimpFactorization::mainLoopFactor ( FactorPointers pointers)

main loop of factorization

◆ copyLbyRows() [2/2]

void CoinSimpFactorization::copyLbyRows ( )

copies L by rows

◆ copyUbyColumns() [2/2]

void CoinSimpFactorization::copyUbyColumns ( )

copies U by columns

◆ findPivot() [2/2]

int CoinSimpFactorization::findPivot ( FactorPointers pointers,
int &  r,
int &  s,
bool &  ifSlack 
)

finds a pivot element using Markowitz count

◆ findPivotShCol() [2/2]

int CoinSimpFactorization::findPivotShCol ( FactorPointers pointers,
int &  r,
int &  s 
)

finds a pivot in a shortest column

◆ findPivotSimp() [2/2]

int CoinSimpFactorization::findPivotSimp ( FactorPointers pointers,
int &  r,
int &  s 
)

finds a pivot in the first column available

◆ GaussEliminate() [2/2]

void CoinSimpFactorization::GaussEliminate ( FactorPointers pointers,
int &  r,
int &  s 
)

does Gauss elimination

◆ findShortRow() [2/2]

int CoinSimpFactorization::findShortRow ( const int  column,
const int  length,
int &  minRow,
int &  minRowLength,
FactorPointers pointers 
)

finds short row that intersects a given column

◆ findShortColumn() [2/2]

int CoinSimpFactorization::findShortColumn ( const int  row,
const int  length,
int &  minCol,
int &  minColLength,
FactorPointers pointers 
)

finds short column that intersects a given row

◆ findMaxInRrow() [2/2]

double CoinSimpFactorization::findMaxInRrow ( const int  row,
FactorPointers pointers 
)

finds maximum absolute value in a row

◆ pivoting() [2/2]

void CoinSimpFactorization::pivoting ( const int  pivotRow,
const int  pivotColumn,
const double  invPivot,
FactorPointers pointers 
)

does pivoting

◆ updateCurrentRow() [2/2]

void CoinSimpFactorization::updateCurrentRow ( const int  pivotRow,
const int  row,
const double  multiplier,
FactorPointers pointers,
int &  newNonZeros 
)

part of pivoting

◆ increaseLsize() [2/2]

void CoinSimpFactorization::increaseLsize ( )

allocates more space for L

◆ increaseRowSize() [2/2]

void CoinSimpFactorization::increaseRowSize ( const int  row,
const int  newSize 
)

allocates more space for a row of U

◆ increaseColSize() [2/2]

void CoinSimpFactorization::increaseColSize ( const int  column,
const int  newSize,
const bool  b 
)

allocates more space for a column of U

◆ enlargeUrow() [2/2]

void CoinSimpFactorization::enlargeUrow ( const int  numNewElements)

allocates more space for rows of U

◆ enlargeUcol() [2/2]

void CoinSimpFactorization::enlargeUcol ( const int  numNewElements,
const bool  b 
)

allocates more space for columns of U

◆ findInRow() [2/2]

int CoinSimpFactorization::findInRow ( const int  row,
const int  column 
)

finds a given row in a column

◆ findInColumn() [2/2]

int CoinSimpFactorization::findInColumn ( const int  column,
const int  row 
)

finds a given column in a row

◆ removeRowFromActSet() [2/2]

void CoinSimpFactorization::removeRowFromActSet ( const int  row,
FactorPointers pointers 
)

declares a row inactive

◆ removeColumnFromActSet() [2/2]

void CoinSimpFactorization::removeColumnFromActSet ( const int  column,
FactorPointers pointers 
)

declares a column inactive

◆ allocateSpaceForU() [2/2]

void CoinSimpFactorization::allocateSpaceForU ( )

allocates space for U

◆ allocateSomeArrays() [2/2]

void CoinSimpFactorization::allocateSomeArrays ( )

allocates several working arrays

◆ initialSomeNumbers() [2/2]

void CoinSimpFactorization::initialSomeNumbers ( )

initializes some numbers

◆ Lxeqb() [2/2]

void CoinSimpFactorization::Lxeqb ( double *  b) const

solves L x = b

◆ Lxeqb2() [2/2]

void CoinSimpFactorization::Lxeqb2 ( double *  b1,
double *  b2 
) const

same as above but with two rhs

◆ Uxeqb() [2/2]

void CoinSimpFactorization::Uxeqb ( double *  b,
double *  sol 
) const

solves U x = b

◆ Uxeqb2() [2/2]

void CoinSimpFactorization::Uxeqb2 ( double *  b1,
double *  sol1,
double *  sol2,
double *  b2 
) const

same as above but with two rhs

◆ xLeqb() [2/2]

void CoinSimpFactorization::xLeqb ( double *  b) const

solves x L = b

◆ xUeqb() [2/2]

void CoinSimpFactorization::xUeqb ( double *  b,
double *  sol 
) const

solves x U = b

◆ LUupdate() [2/2]

int CoinSimpFactorization::LUupdate ( int  newBasicCol)

updates factorization after a Simplex iteration

◆ newEta() [2/2]

void CoinSimpFactorization::newEta ( int  row,
int  numNewElements 
)

creates a new eta vector

◆ copyRowPermutations() [2/2]

void CoinSimpFactorization::copyRowPermutations ( )

makes a copy of row permutations

◆ Hxeqb() [2/2]

void CoinSimpFactorization::Hxeqb ( double *  b) const

solves H x = b, where H is a product of eta matrices

◆ Hxeqb2() [2/2]

void CoinSimpFactorization::Hxeqb2 ( double *  b1,
double *  b2 
) const

same as above but with two rhs

◆ xHeqb() [2/2]

void CoinSimpFactorization::xHeqb ( double *  b) const

solves x H = b

◆ ftran() [2/2]

void CoinSimpFactorization::ftran ( double *  b,
double *  sol,
bool  save 
) const

does FTRAN

◆ ftran2() [2/2]

void CoinSimpFactorization::ftran2 ( double *  b1,
double *  sol1,
double *  b2,
double *  sol2 
) const

same as above but with two columns

◆ btran() [2/2]

void CoinSimpFactorization::btran ( double *  b,
double *  sol 
) const

does BTRAN

◆ checkPivot() [2/2]

int CoinSimpFactorization::checkPivot ( double  saveFromU,
double  oldPivot 
) const
protected

Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular.


Friends And Related Function Documentation

◆ CoinSimpFactorizationUnitTest [1/2]

void CoinSimpFactorizationUnitTest ( const std::string &  mpsDir)
friend

◆ CoinSimpFactorizationUnitTest [2/2]

void CoinSimpFactorizationUnitTest ( const std::string &  mpsDir)
friend

Member Data Documentation

◆ denseVector_

double * CoinSimpFactorization::denseVector_
protected

work array (should be initialized to zero)

Definition at line 274 of file CoinSimpFactorization.hpp.

◆ workArea2_

double * CoinSimpFactorization::workArea2_
protected

work array

Definition at line 276 of file CoinSimpFactorization.hpp.

◆ workArea3_

double * CoinSimpFactorization::workArea3_
protected

work array

Definition at line 278 of file CoinSimpFactorization.hpp.

◆ vecLabels_

int * CoinSimpFactorization::vecLabels_
protected

array of labels (should be initialized to zero)

Definition at line 280 of file CoinSimpFactorization.hpp.

◆ indVector_

int * CoinSimpFactorization::indVector_
protected

array of indices

Definition at line 282 of file CoinSimpFactorization.hpp.

◆ auxVector_

double * CoinSimpFactorization::auxVector_
protected

auxiliary vector

Definition at line 285 of file CoinSimpFactorization.hpp.

◆ auxInd_

int * CoinSimpFactorization::auxInd_
protected

auxiliary vector

Definition at line 287 of file CoinSimpFactorization.hpp.

◆ vecKeep_

double * CoinSimpFactorization::vecKeep_
protected

vector to keep for LUupdate

Definition at line 290 of file CoinSimpFactorization.hpp.

◆ indKeep_

int * CoinSimpFactorization::indKeep_
protected

indices of this vector

Definition at line 292 of file CoinSimpFactorization.hpp.

◆ keepSize_

int CoinSimpFactorization::keepSize_
mutableprotected

number of nonzeros

Definition at line 294 of file CoinSimpFactorization.hpp.

◆ LrowStarts_

int * CoinSimpFactorization::LrowStarts_
protected

Starts of the rows of L.

Definition at line 297 of file CoinSimpFactorization.hpp.

◆ LrowLengths_

int * CoinSimpFactorization::LrowLengths_
protected

Lengths of the rows of L.

Definition at line 299 of file CoinSimpFactorization.hpp.

◆ Lrows_

double * CoinSimpFactorization::Lrows_
protected

L by rows.

Definition at line 301 of file CoinSimpFactorization.hpp.

◆ LrowInd_

int * CoinSimpFactorization::LrowInd_
protected

indices in the rows of L

Definition at line 303 of file CoinSimpFactorization.hpp.

◆ LrowSize_

int CoinSimpFactorization::LrowSize_
protected

Size of Lrows_;.

Definition at line 305 of file CoinSimpFactorization.hpp.

◆ LrowCap_

int CoinSimpFactorization::LrowCap_
protected

Capacity of Lrows_.

Definition at line 307 of file CoinSimpFactorization.hpp.

◆ LcolStarts_

int * CoinSimpFactorization::LcolStarts_
protected

Starts of the columns of L.

Definition at line 310 of file CoinSimpFactorization.hpp.

◆ LcolLengths_

int * CoinSimpFactorization::LcolLengths_
protected

Lengths of the columns of L.

Definition at line 312 of file CoinSimpFactorization.hpp.

◆ Lcolumns_

double * CoinSimpFactorization::Lcolumns_
protected

L by columns.

Definition at line 314 of file CoinSimpFactorization.hpp.

◆ LcolInd_

int * CoinSimpFactorization::LcolInd_
protected

indices in the columns of L

Definition at line 316 of file CoinSimpFactorization.hpp.

◆ LcolSize_

int CoinSimpFactorization::LcolSize_
protected

numbers of elements in L

Definition at line 318 of file CoinSimpFactorization.hpp.

◆ LcolCap_

int CoinSimpFactorization::LcolCap_
protected

maximum capacity of L

Definition at line 320 of file CoinSimpFactorization.hpp.

◆ UrowStarts_

int * CoinSimpFactorization::UrowStarts_
protected

Starts of the rows of U.

Definition at line 323 of file CoinSimpFactorization.hpp.

◆ UrowLengths_

int * CoinSimpFactorization::UrowLengths_
protected

Lengths of the rows of U.

Definition at line 325 of file CoinSimpFactorization.hpp.

◆ Urows_

double * CoinSimpFactorization::Urows_
protected

U by rows.

Definition at line 331 of file CoinSimpFactorization.hpp.

◆ UrowInd_

int * CoinSimpFactorization::UrowInd_
protected

Indices in the rows of U.

Definition at line 333 of file CoinSimpFactorization.hpp.

◆ UrowMaxCap_

int CoinSimpFactorization::UrowMaxCap_
protected

maximum capacity of Urows

Definition at line 335 of file CoinSimpFactorization.hpp.

◆ UrowEnd_

int CoinSimpFactorization::UrowEnd_
protected

number of used places in Urows

Definition at line 337 of file CoinSimpFactorization.hpp.

◆ firstRowInU_

int CoinSimpFactorization::firstRowInU_
protected

first row in U

Definition at line 339 of file CoinSimpFactorization.hpp.

◆ lastRowInU_

int CoinSimpFactorization::lastRowInU_
protected

last row in U

Definition at line 341 of file CoinSimpFactorization.hpp.

◆ prevRowInU_

int * CoinSimpFactorization::prevRowInU_
protected

previous row in U

Definition at line 343 of file CoinSimpFactorization.hpp.

◆ nextRowInU_

int * CoinSimpFactorization::nextRowInU_
protected

next row in U

Definition at line 345 of file CoinSimpFactorization.hpp.

◆ UcolStarts_

int * CoinSimpFactorization::UcolStarts_
protected

Starts of the columns of U.

Definition at line 348 of file CoinSimpFactorization.hpp.

◆ UcolLengths_

int * CoinSimpFactorization::UcolLengths_
protected

Lengths of the columns of U.

Definition at line 350 of file CoinSimpFactorization.hpp.

◆ Ucolumns_

double * CoinSimpFactorization::Ucolumns_
protected

U by columns.

Definition at line 356 of file CoinSimpFactorization.hpp.

◆ UcolInd_

int * CoinSimpFactorization::UcolInd_
protected

Indices in the columns of U.

Definition at line 358 of file CoinSimpFactorization.hpp.

◆ prevColInU_

int * CoinSimpFactorization::prevColInU_
protected

previous column in U

Definition at line 360 of file CoinSimpFactorization.hpp.

◆ nextColInU_

int * CoinSimpFactorization::nextColInU_
protected

next column in U

Definition at line 362 of file CoinSimpFactorization.hpp.

◆ firstColInU_

int CoinSimpFactorization::firstColInU_
protected

first column in U

Definition at line 364 of file CoinSimpFactorization.hpp.

◆ lastColInU_

int CoinSimpFactorization::lastColInU_
protected

last column in U

Definition at line 366 of file CoinSimpFactorization.hpp.

◆ UcolMaxCap_

int CoinSimpFactorization::UcolMaxCap_
protected

maximum capacity of Ucolumns_

Definition at line 368 of file CoinSimpFactorization.hpp.

◆ UcolEnd_

int CoinSimpFactorization::UcolEnd_
protected

last used position in Ucolumns_

Definition at line 370 of file CoinSimpFactorization.hpp.

◆ colSlack_

int * CoinSimpFactorization::colSlack_
protected

indicator of slack variables

Definition at line 372 of file CoinSimpFactorization.hpp.

◆ invOfPivots_

double * CoinSimpFactorization::invOfPivots_
protected

inverse values of the elements of diagonal of U

Definition at line 375 of file CoinSimpFactorization.hpp.

◆ colOfU_

int * CoinSimpFactorization::colOfU_
protected

permutation of columns

Definition at line 378 of file CoinSimpFactorization.hpp.

◆ colPosition_

int * CoinSimpFactorization::colPosition_
protected

position of column after permutation

Definition at line 380 of file CoinSimpFactorization.hpp.

◆ rowOfU_

int * CoinSimpFactorization::rowOfU_
protected

permutations of rows

Definition at line 382 of file CoinSimpFactorization.hpp.

◆ rowPosition_

int * CoinSimpFactorization::rowPosition_
protected

position of row after permutation

Definition at line 384 of file CoinSimpFactorization.hpp.

◆ secRowOfU_

int * CoinSimpFactorization::secRowOfU_
protected

permutations of rows during LUupdate

Definition at line 386 of file CoinSimpFactorization.hpp.

◆ secRowPosition_

int * CoinSimpFactorization::secRowPosition_
protected

position of row after permutation during LUupdate

Definition at line 388 of file CoinSimpFactorization.hpp.

◆ EtaPosition_

int * CoinSimpFactorization::EtaPosition_
protected

position of Eta vector

Definition at line 391 of file CoinSimpFactorization.hpp.

◆ EtaStarts_

int * CoinSimpFactorization::EtaStarts_
protected

Starts of eta vectors.

Definition at line 393 of file CoinSimpFactorization.hpp.

◆ EtaLengths_

int * CoinSimpFactorization::EtaLengths_
protected

Lengths of eta vectors.

Definition at line 395 of file CoinSimpFactorization.hpp.

◆ EtaInd_

int * CoinSimpFactorization::EtaInd_
protected

columns of eta vectors

Definition at line 397 of file CoinSimpFactorization.hpp.

◆ Eta_

double * CoinSimpFactorization::Eta_
protected

elements of eta vectors

Definition at line 399 of file CoinSimpFactorization.hpp.

◆ EtaSize_

int CoinSimpFactorization::EtaSize_
protected

number of elements in Eta_

Definition at line 401 of file CoinSimpFactorization.hpp.

◆ lastEtaRow_

int CoinSimpFactorization::lastEtaRow_
protected

last eta row

Definition at line 403 of file CoinSimpFactorization.hpp.

◆ maxEtaRows_

int CoinSimpFactorization::maxEtaRows_
protected

maximum number of eta vectors

Definition at line 405 of file CoinSimpFactorization.hpp.

◆ EtaMaxCap_

int CoinSimpFactorization::EtaMaxCap_
protected

Capacity of Eta_.

Definition at line 407 of file CoinSimpFactorization.hpp.

◆ minIncrease_

int CoinSimpFactorization::minIncrease_
protected

minimum storage increase

Definition at line 410 of file CoinSimpFactorization.hpp.

◆ updateTol_

double CoinSimpFactorization::updateTol_
protected

maximum size for the diagonal of U after update

Definition at line 412 of file CoinSimpFactorization.hpp.

◆ doSuhlHeuristic_

bool CoinSimpFactorization::doSuhlHeuristic_
protected

do Shul heuristic

Definition at line 414 of file CoinSimpFactorization.hpp.

◆ maxU_

double CoinSimpFactorization::maxU_
protected

maximum of U

Definition at line 416 of file CoinSimpFactorization.hpp.

◆ maxGrowth_

double CoinSimpFactorization::maxGrowth_
protected

bound on the growth rate

Definition at line 418 of file CoinSimpFactorization.hpp.

◆ maxA_

double CoinSimpFactorization::maxA_
protected

maximum of A

Definition at line 420 of file CoinSimpFactorization.hpp.

◆ pivotCandLimit_

int CoinSimpFactorization::pivotCandLimit_
protected

maximum number of candidates for pivot

Definition at line 422 of file CoinSimpFactorization.hpp.

◆ numberSlacks_

int CoinSimpFactorization::numberSlacks_
protected

number of slacks in basis

Definition at line 424 of file CoinSimpFactorization.hpp.

◆ firstNumberSlacks_

int CoinSimpFactorization::firstNumberSlacks_
protected

number of slacks in irst basis

Definition at line 426 of file CoinSimpFactorization.hpp.


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