CoinDenseFactorization
This deals with Factorization and Updates This is a simple dense version so other people can write a better one.
This deals with Factorization and Updates This is a simple dense version so other people can write a better one.
Inheritance
Inherits from: CoinOtherFactorization
Description
I am assuming that 32 bits is enough for number of rows or columns, but CoinBigIndex may be redefined to get 64 bits.
Public Methods
CoinDenseFactorization
Default constructor.
CoinDenseFactorization()
CoinDenseFactorization
Copy constructor.
CoinDenseFactorization(const CoinDenseFactorization & other)
Parameters:
other(const CoinDenseFactorization &)
~CoinDenseFactorization
Destructor.
~CoinDenseFactorization()
operator=
= copy
CoinDenseFactorization & operator=(const CoinDenseFactorization & other)
Parameters:
other(const CoinDenseFactorization &)
clone
Clone.
CoinOtherFactorization * clone()
getAreas
Gets space for a factorization.
void getAreas(int numberRows, int numberColumns, int maximumL, int maximumU)
Parameters:
numberRows(int)numberColumns(int)maximumL(int)maximumU(int)
preProcess
PreProcesses column ordered copy of basis.
void preProcess()
factor
Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.
int factor()
postProcess
Does post processing on valid factorization - putting variables on correct rows.
void postProcess(const int * sequence, int * pivotVariable)
Parameters:
sequence(const int *)pivotVariable(int *)
makeNonSingular
Makes a non-singular basis by replacing variables.
void makeNonSingular(int * sequence, int numberColumns)
Parameters:
sequence(int *)numberColumns(int)
numberElements
Total number of elements in factorization.
int numberElements()
maximumCoefficient
Returns maximum absolute value in factorization.
double maximumCoefficient()
replaceColumn
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.
int replaceColumn(CoinIndexedVector * regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying = false, double acceptablePivot = 1.0e-8)
Parameters:
regionSparse(CoinIndexedVector *)pivotRow(int)pivotCheck(double)checkBeforeModifying(bool)acceptablePivot(double)
updateColumnFT
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 updateColumnFT(CoinIndexedVector * regionSparse, CoinIndexedVector * regionSparse2, bool = false)
Parameters:
regionSparse(CoinIndexedVector *)regionSparse2(CoinIndexedVector *)- `` (bool)
updateColumn
This version has same effect as above with FTUpdate==false so number returned is always >=0.
int updateColumn(CoinIndexedVector * regionSparse, CoinIndexedVector * regionSparse2, bool noPermute = false)
Parameters:
regionSparse(CoinIndexedVector *)regionSparse2(CoinIndexedVector *)noPermute(bool)
updateTwoColumnsFT
does FTRAN on two columns
int updateTwoColumnsFT(CoinIndexedVector * regionSparse1, CoinIndexedVector * regionSparse2, CoinIndexedVector * regionSparse3, bool noPermute = false)
Parameters:
regionSparse1(CoinIndexedVector *)regionSparse2(CoinIndexedVector *)regionSparse3(CoinIndexedVector *)noPermute(bool)
updateColumnTranspose
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.
int updateColumnTranspose(CoinIndexedVector * regionSparse, CoinIndexedVector * regionSparse2)
Parameters:
regionSparse(CoinIndexedVector *)regionSparse2(CoinIndexedVector *)
clearArrays
Get rid of all memory.
void clearArrays()
indices
Returns array to put basis indices in.
int * indices()
permute
Returns permute in.
int * permute()
gutsOfDestructor
The real work of desstructor.
void gutsOfDestructor()
gutsOfInitialize
The real work of constructor.
void gutsOfInitialize()
gutsOfCopy
The real work of copy.
void gutsOfCopy(const CoinDenseFactorization & other)
Parameters:
other(const CoinDenseFactorization &)
Source
Header: layer-0/CoinUtils/src/CoinDenseFactorization.hpp