Go to the documentation of this file.
12 #ifndef CoinOslFactorization_H
13 #define CoinOslFactorization_H
144 virtual void postProcess(
const int *sequence,
int *pivotVariable);
155 int rowIsBasic[],
int columnIsBasic[],
156 double areaFactor = 0.0);
179 virtual int *
starts()
const;
213 bool checkBeforeModifying =
false,
214 double acceptablePivot = 1.0e-8);
228 bool noPermute =
false);
233 bool noPermute =
false)
const;
238 bool noPermute =
false);
275 int checkPivot(
double saveFromU,
double oldPivot)
const;
virtual void setUsefulInformation(const int *info, int whereFrom)
Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for repl...
virtual void getAreas(int numberRows, int numberColumns, int maximumL, int maximumU)
Gets space for a factorization.
int maximumPivots() const
Maximum number of pivots between factorizations.
virtual void preProcess()
PreProcesses column ordered copy of basis.
CoinOslFactorization()
Default constructor.
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.
virtual int * numberInColumn() const
Number of entries in each column.
virtual int updateColumnTranspose(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
Updates one column (BTRAN) from regionSparse2 regionSparse starts as zero and is zero at end Note - i...
int numberRows() const
Number of Rows after factorization.
virtual int factor()
Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use number...
struct _EKKfactinfo EKKfactinfo
virtual void clearArrays()
Get rid of all memory.
int checkPivot(double saveFromU, double oldPivot) const
Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular.
virtual int * permuteBack() const
Returns permute back.
void gutsOfInitialize(bool zapFact=true)
The real work of constructor.
virtual int numberElements() const
Total number of elements in factorization.
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 checkBeforeModify...
virtual int * permute() const
Returns permute in.
int numberRows_
Number of Rows in factorization.
virtual CoinOtherFactorization * clone() const
Clone.
virtual int updateTwoColumnsFT(CoinIndexedVector *regionSparse1, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3, bool noPermute=false)
does FTRAN on two columns
virtual int * starts() const
Returns array to put basis starts in.
double CoinFactorizationDouble
virtual int * pivotRow() const
Returns pivot row.
virtual CoinFactorizationDouble * elements() const
Returns array to put basis elements in.
int numberColumns() const
Total number of columns in factorization.
double maximumCoefficient() const
Returns maximum absolute value in factorization.
friend void CoinOslFactorizationUnitTest(const std::string &mpsDir)
void gutsOfCopy(const CoinOslFactorization &other)
The real work of copy.
Abstract base class which also has some scalars so can be used from Dense or Simp.
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...
virtual CoinFactorizationDouble * workArea() const
Returns work area.
Sparse Matrix Base Class.
CoinOslFactorization & operator=(const CoinOslFactorization &other)
= copy
virtual int * numberInRow() const
Number of entries in each row.
virtual void postProcess(const int *sequence, int *pivotVariable)
Does post processing on valid factorization - putting variables on correct rows.
double conditionNumber() const
Condition number - product of pivots after factorization.
This deals with Factorization and Updates This is ripped off from OSL!!!!!!!!!
void gutsOfDestructor(bool clearFact=true)
The real work of desstructor.
EKKfactinfo factInfo_
Osl factorization data.
virtual ~CoinOslFactorization()
Destructor.
virtual void makeNonSingular(int *sequence, int numberColumns)
Makes a non-singular basis by replacing variables.
virtual int * indices() const
Get rid of all memory.
virtual bool wantsTableauColumn() const
Returns true if wants tableauColumn in replaceColumn.
int numberColumns_
Number of Columns in factorization.
int switch_off_sparse_update
int numberPivots_
Number pivots since last factorization.
int factorize(const CoinPackedMatrix &matrix, int rowIsBasic[], int columnIsBasic[], double areaFactor=0.0)
When part of LP - given by basic variables.
virtual int * intWorkArea() const
Returns int work area.