Dip
0.92.4
|
Abstract base class which also has some scalars so can be used from Dense or Simp. More...
#include <CoinAbcDenseFactorization.hpp>
Public Member Functions | |
Constructors and destructor and copy | |
CoinAbcAnyFactorization () | |
Default constructor. More... | |
CoinAbcAnyFactorization (const CoinAbcAnyFactorization &other) | |
Copy constructor. More... | |
virtual | ~CoinAbcAnyFactorization () |
Destructor. More... | |
CoinAbcAnyFactorization & | operator= (const CoinAbcAnyFactorization &other) |
= copy More... | |
virtual CoinAbcAnyFactorization * | clone () const =0 |
Clone. More... | |
general stuff such as status | |
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... | |
int | numberSlacks () const |
Returns number of slacks. More... | |
void | setNumberSlacks (int value) |
Sets number of slacks. More... | |
void | setNumberRows (int value) |
Set number of Rows after factorization. More... | |
int | numberRows () const |
Number of Rows after factorization. More... | |
CoinSimplexInt | numberDense () const |
Number of dense rows after 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 |
Returns status. More... | |
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) |
Returns status. More... | |
double | minimumPivotTolerance () const |
Minimum pivot tolerance. More... | |
void | minimumPivotTolerance (double value) |
Returns status. More... | |
virtual CoinFactorizationDouble * | pivotRegion () const |
Returns status. More... | |
double | areaFactor () const |
Area factor. More... | |
void | areaFactor (CoinSimplexDouble value) |
Returns status. More... | |
double | zeroTolerance () const |
Zero tolerance. More... | |
void | zeroTolerance (double value) |
Returns status. More... | |
virtual CoinFactorizationDouble * | elements () const |
Returns array to put basis elements in. More... | |
virtual int * | pivotRow () const |
Returns pivot row. More... | |
virtual CoinFactorizationDouble * | workArea () 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 CoinBigIndex * | starts () const |
Returns array to put basis starts in. More... | |
virtual int * | permuteBack () const |
Returns permute back. More... | |
virtual void | goSparse () |
Sees whether to go sparse. More... | |
virtual void | checkMarkArrays () const |
Returns status. 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... | |
virtual void | clearArrays () |
Get rid of all memory. More... | |
virtual general stuff such as permutation | |
virtual int * | indices () const =0 |
Returns array to put basis indices in. More... | |
virtual int * | permute () const =0 |
Returns permute in. More... | |
virtual int * | pivotColumn () const |
Returns pivotColumn or permute. More... | |
virtual int | numberElements () const =0 |
Total number of elements in factorization. More... | |
Do factorization - public | |
virtual void | getAreas (int numberRows, int numberColumns, CoinBigIndex maximumL, CoinBigIndex maximumU)=0 |
Gets space for a factorization. More... | |
virtual void | preProcess ()=0 |
PreProcesses column ordered copy of basis. More... | |
virtual int | factor (AbcSimplex *model)=0 |
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)=0 |
Does post processing on valid factorization - putting variables on correct rows. More... | |
virtual void | makeNonSingular (int *sequence)=0 |
Makes a non-singular basis by replacing variables. More... | |
rank one updates which do exist | |
virtual double | checkReplacePart1 (CoinIndexedVector *, int) |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U. More... | |
virtual double | checkReplacePart1 (CoinIndexedVector *, CoinIndexedVector *, int) |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U. More... | |
virtual void | checkReplacePart1a (CoinIndexedVector *, int) |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U. More... | |
virtual double | checkReplacePart1b (CoinIndexedVector *, int) |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U. More... | |
virtual int | checkReplacePart2 (int pivotRow, double btranAlpha, double ftranAlpha, double ftAlpha, double acceptablePivot=1.0e-8)=0 |
Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room, 5 max pivots. More... | |
virtual void | replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double alpha)=0 |
Replaces one Column to basis, partial update already in U. More... | |
virtual void | replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, CoinIndexedVector *partialUpdate, int pivotRow, double alpha)=0 |
Replaces one Column to basis, partial update in vector. More... | |
various uses of factorization (return code number elements) | |
which user may want to know about | |
virtual int | updateColumnFT (CoinIndexedVector ®ionSparse)=0 |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room. More... | |
virtual int | updateColumnFTPart1 (CoinIndexedVector ®ionSparse)=0 |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room. More... | |
virtual void | updateColumnFTPart2 (CoinIndexedVector ®ionSparse)=0 |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room. More... | |
virtual void | updateColumnFT (CoinIndexedVector ®ionSparseFT, CoinIndexedVector &partialUpdate, int which)=0 |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room. More... | |
virtual int | updateColumn (CoinIndexedVector ®ionSparse) const =0 |
This version has same effect as above with FTUpdate==false so number returned is always >=0. More... | |
virtual int | updateTwoColumnsFT (CoinIndexedVector ®ionFT, CoinIndexedVector ®ionOther)=0 |
does FTRAN on two unpacked columns More... | |
virtual int | updateColumnTranspose (CoinIndexedVector ®ionSparse) const =0 |
Updates one column (BTRAN) from unpacked regionSparse. More... | |
virtual void | updateFullColumn (CoinIndexedVector ®ionSparse) const =0 |
This version does FTRAN on array when indices not set up. More... | |
virtual void | updateFullColumnTranspose (CoinIndexedVector ®ionSparse) const =0 |
Updates one column (BTRAN) from unpacked regionSparse. More... | |
virtual void | updateWeights (CoinIndexedVector ®ionSparse) const =0 |
Updates one column for dual steepest edge weights (FTRAN) More... | |
virtual void | updateColumnCpu (CoinIndexedVector ®ionSparse, int whichCpu) const |
Updates one column (FTRAN) More... | |
virtual void | updateColumnTransposeCpu (CoinIndexedVector ®ionSparse, int whichCpu) const |
Updates one column (BTRAN) More... | |
Protected Attributes | |
data | |
double | pivotTolerance_ |
Pivot tolerance. More... | |
double | minimumPivotTolerance_ |
Minimum pivot tolerance. More... | |
double | areaFactor_ |
Area factor. More... | |
double | zeroTolerance_ |
Zero tolerance. More... | |
double | relaxCheck_ |
Relax check on accuracy in replaceColumn. More... | |
CoinBigIndex | factorElements_ |
Number of elements after factorization. More... | |
int | numberRows_ |
Number of Rows in factorization. More... | |
int | numberDense_ |
Number of dense rows 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 | numberSlacks_ |
Number slacks. More... | |
int | status_ |
Status of factorization. More... | |
int | maximumRows_ |
Maximum rows ever (i.e. use to copy arrays etc) More... | |
int * | pivotRow_ |
Pivot row. More... | |
CoinFactorizationDouble * | elements_ |
Elements of factorization and updates length is maxR*maxR+maxSpace will always be long enough so can have nR*nR ints in maxSpace. More... | |
CoinFactorizationDouble * | workArea_ |
Work area of numberRows_. More... | |
int | solveMode_ |
Solve mode e.g. More... | |
Abstract base class which also has some scalars so can be used from Dense or Simp.
Definition at line 23 of file CoinAbcDenseFactorization.hpp.
CoinAbcAnyFactorization::CoinAbcAnyFactorization | ( | ) |
Default constructor.
CoinAbcAnyFactorization::CoinAbcAnyFactorization | ( | const CoinAbcAnyFactorization & | other | ) |
Copy constructor.
|
virtual |
Destructor.
CoinAbcAnyFactorization& CoinAbcAnyFactorization::operator= | ( | const CoinAbcAnyFactorization & | other | ) |
= copy
|
pure virtual |
Clone.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
|
inline |
Returns status.
Definition at line 45 of file CoinAbcDenseFactorization.hpp.
Referenced by AbcSimplexFactorization::status().
|
inline |
Sets status.
Definition at line 50 of file CoinAbcDenseFactorization.hpp.
References status_.
Referenced by AbcSimplexFactorization::setStatus().
|
inline |
Returns number of pivots since factorization.
Definition at line 55 of file CoinAbcDenseFactorization.hpp.
References numberPivots_.
Referenced by AbcSimplexFactorization::pivots().
|
inline |
Sets number of pivots since factorization.
Definition at line 67 of file CoinAbcDenseFactorization.hpp.
Referenced by AbcSimplexFactorization::setPivots().
|
inline |
Returns number of slacks.
Definition at line 72 of file CoinAbcDenseFactorization.hpp.
References numberSlacks_.
|
inline |
Sets number of slacks.
Definition at line 77 of file CoinAbcDenseFactorization.hpp.
References numberSlacks_.
|
inline |
Set number of Rows after factorization.
Definition at line 82 of file CoinAbcDenseFactorization.hpp.
References numberRows_.
|
inline |
Number of Rows after factorization.
Definition at line 87 of file CoinAbcDenseFactorization.hpp.
References numberRows_.
Referenced by AbcSimplexFactorization::numberRows().
|
inline |
Number of dense rows after factorization.
Definition at line 92 of file CoinAbcDenseFactorization.hpp.
References numberDense_.
|
inline |
Number of good columns in factorization.
Definition at line 97 of file CoinAbcDenseFactorization.hpp.
References numberGoodU_.
|
inline |
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
Definition at line 102 of file CoinAbcDenseFactorization.hpp.
References relaxCheck_.
|
inline |
Returns status.
Definition at line 106 of file CoinAbcDenseFactorization.hpp.
References relaxCheck_.
|
inline |
Maximum number of pivots between factorizations.
Definition at line 111 of file CoinAbcDenseFactorization.hpp.
References maximumPivots_.
Referenced by AbcSimplexFactorization::maximumPivots().
|
virtual |
Set maximum pivots.
Reimplemented in CoinAbcTypeFactorization.
|
inline |
Pivot tolerance.
Definition at line 119 of file CoinAbcDenseFactorization.hpp.
References pivotTolerance_.
Referenced by AbcSimplexFactorization::pivotTolerance().
void CoinAbcAnyFactorization::pivotTolerance | ( | double | value | ) |
Returns status.
|
inline |
Minimum pivot tolerance.
Definition at line 125 of file CoinAbcDenseFactorization.hpp.
References minimumPivotTolerance_.
Referenced by AbcSimplexFactorization::minimumPivotTolerance().
void CoinAbcAnyFactorization::minimumPivotTolerance | ( | double | value | ) |
Returns status.
|
inlinevirtual |
Returns status.
Reimplemented in CoinAbcTypeFactorization.
Definition at line 130 of file CoinAbcDenseFactorization.hpp.
Referenced by AbcSimplexFactorization::pivotRegion().
|
inline |
Area factor.
Definition at line 135 of file CoinAbcDenseFactorization.hpp.
References areaFactor_.
Referenced by AbcSimplexFactorization::areaFactor().
|
inline |
Returns status.
Definition at line 139 of file CoinAbcDenseFactorization.hpp.
References areaFactor_.
|
inline |
Zero tolerance.
Definition at line 144 of file CoinAbcDenseFactorization.hpp.
References zeroTolerance_.
Referenced by AbcSimplexFactorization::zeroTolerance().
void CoinAbcAnyFactorization::zeroTolerance | ( | double | value | ) |
Returns status.
|
virtual |
Returns array to put basis elements in.
Reimplemented in CoinAbcTypeFactorization.
|
virtual |
Returns pivot row.
|
virtual |
Returns work area.
|
virtual |
Returns int work area.
|
virtual |
Number of entries in each row.
Reimplemented in CoinAbcTypeFactorization.
|
virtual |
Number of entries in each column.
Reimplemented in CoinAbcTypeFactorization.
|
virtual |
Returns array to put basis starts in.
Reimplemented in CoinAbcTypeFactorization.
|
virtual |
Returns permute back.
|
inlinevirtual |
Sees whether to go sparse.
Reimplemented in CoinAbcTypeFactorization.
Definition at line 166 of file CoinAbcDenseFactorization.hpp.
|
inlinevirtual |
Returns status.
Reimplemented in CoinAbcTypeFactorization.
Definition at line 168 of file CoinAbcDenseFactorization.hpp.
Referenced by AbcSimplexFactorization::checkMarkArrays().
|
inline |
Get solve mode e.g.
0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated
Definition at line 176 of file CoinAbcDenseFactorization.hpp.
References solveMode_.
|
inline |
Set solve mode e.g.
0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated
Definition at line 184 of file CoinAbcDenseFactorization.hpp.
References solveMode_.
|
virtual |
Returns true if wants tableauColumn in replaceColumn.
Reimplemented in CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::usingFT().
|
virtual |
Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn.
|
inlinevirtual |
Get rid of all memory.
Reimplemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Definition at line 196 of file CoinAbcDenseFactorization.hpp.
Referenced by AbcSimplexFactorization::almostDestructor().
|
pure virtual |
Returns array to put basis indices in.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
|
pure virtual |
Returns permute in.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
|
virtual |
Returns pivotColumn or permute.
Reimplemented in CoinAbcTypeFactorization.
|
pure virtual |
Total number of elements in factorization.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
|
pure virtual |
Gets space for a factorization.
Implemented in CoinAbcTypeFactorization, and CoinAbcDenseFactorization.
|
pure virtual |
PreProcesses column ordered copy of basis.
Implemented in CoinAbcTypeFactorization, and CoinAbcDenseFactorization.
|
pure virtual |
Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.
Implemented in CoinAbcTypeFactorization, and CoinAbcDenseFactorization.
|
pure virtual |
Does post processing on valid factorization - putting variables on correct rows.
Implemented in CoinAbcTypeFactorization, and CoinAbcDenseFactorization.
|
pure virtual |
Makes a non-singular basis by replacing variables.
Implemented in CoinAbcTypeFactorization, and CoinAbcDenseFactorization.
|
inlinevirtual |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.
Reimplemented in CoinAbcTypeFactorization.
Definition at line 283 of file CoinAbcDenseFactorization.hpp.
Referenced by AbcSimplexFactorization::checkReplacePart1().
|
inlinevirtual |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.
Reimplemented in CoinAbcTypeFactorization.
Definition at line 293 of file CoinAbcDenseFactorization.hpp.
|
inlinevirtual |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.
Definition at line 299 of file CoinAbcDenseFactorization.hpp.
|
inlinevirtual |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.
Definition at line 303 of file CoinAbcDenseFactorization.hpp.
|
pure virtual |
Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room, 5 max pivots.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::checkReplacePart2().
|
pure virtual |
Replaces one Column to basis, partial update already in U.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
|
pure virtual |
Replaces one Column to basis, partial update in vector.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
|
pure virtual |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateColumnFT().
|
pure virtual |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateColumnFTPart1().
|
pure virtual |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateColumnFTPart2().
|
pure virtual |
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negative if no room.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
|
pure virtual |
This version has same effect as above with FTUpdate==false so number returned is always >=0.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateColumn().
|
pure virtual |
does FTRAN on two unpacked columns
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateTwoColumnsFT().
|
pure virtual |
Updates one column (BTRAN) from unpacked regionSparse.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateColumnTranspose().
|
pure virtual |
This version does FTRAN on array when indices not set up.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateFullColumn().
|
pure virtual |
Updates one column (BTRAN) from unpacked regionSparse.
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateFullColumnTranspose().
|
pure virtual |
Updates one column for dual steepest edge weights (FTRAN)
Implemented in CoinAbcDenseFactorization, and CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateWeights().
|
virtual |
Updates one column (FTRAN)
Reimplemented in CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateColumnCpu().
|
virtual |
Updates one column (BTRAN)
Reimplemented in CoinAbcTypeFactorization.
Referenced by AbcSimplexFactorization::updateColumnTransposeCpu().
|
protected |
Pivot tolerance.
Definition at line 386 of file CoinAbcDenseFactorization.hpp.
Referenced by pivotTolerance().
|
protected |
Minimum pivot tolerance.
Definition at line 388 of file CoinAbcDenseFactorization.hpp.
Referenced by minimumPivotTolerance().
|
protected |
Area factor.
Definition at line 390 of file CoinAbcDenseFactorization.hpp.
Referenced by areaFactor().
|
protected |
Zero tolerance.
Definition at line 392 of file CoinAbcDenseFactorization.hpp.
Referenced by CoinAbcTypeFactorization::scan(), and zeroTolerance().
|
protected |
Relax check on accuracy in replaceColumn.
Definition at line 397 of file CoinAbcDenseFactorization.hpp.
Referenced by getAccuracyCheck(), and relaxAccuracyCheck().
|
protected |
Number of elements after factorization.
Definition at line 399 of file CoinAbcDenseFactorization.hpp.
|
protected |
Number of Rows in factorization.
Definition at line 401 of file CoinAbcDenseFactorization.hpp.
Referenced by CoinAbcTypeFactorization::deleteLink(), CoinAbcDenseFactorization::indices(), CoinAbcTypeFactorization::lastCount(), CoinAbcTypeFactorization::modifyLink(), CoinAbcTypeFactorization::nextCount(), numberRows(), CoinAbcTypeFactorization::pivotLinkedBackwards(), CoinAbcTypeFactorization::pivotLinkedForwards(), CoinAbcTypeFactorization::scan(), setNumberRows(), and CoinAbcTypeFactorization::startColumnR().
|
protected |
Number of dense rows in factorization.
Definition at line 403 of file CoinAbcDenseFactorization.hpp.
Referenced by numberDense().
|
protected |
Number factorized in U (not row singletons)
Definition at line 405 of file CoinAbcDenseFactorization.hpp.
Referenced by numberGoodColumns().
|
protected |
Maximum number of pivots before factorization.
Definition at line 407 of file CoinAbcDenseFactorization.hpp.
Referenced by maximumPivots().
|
protected |
Number pivots since last factorization.
Definition at line 409 of file CoinAbcDenseFactorization.hpp.
Referenced by pivots().
|
protected |
Number slacks.
Definition at line 411 of file CoinAbcDenseFactorization.hpp.
Referenced by numberSlacks(), and setNumberSlacks().
|
protected |
Status of factorization.
Definition at line 413 of file CoinAbcDenseFactorization.hpp.
Referenced by setStatus().
|
protected |
Maximum rows ever (i.e. use to copy arrays etc)
Definition at line 415 of file CoinAbcDenseFactorization.hpp.
|
protected |
Pivot row.
Definition at line 420 of file CoinAbcDenseFactorization.hpp.
|
protected |
Elements of factorization and updates length is maxR*maxR+maxSpace will always be long enough so can have nR*nR ints in maxSpace.
Definition at line 425 of file CoinAbcDenseFactorization.hpp.
Referenced by CoinAbcDenseFactorization::indices().
|
protected |
Work area of numberRows_.
Definition at line 427 of file CoinAbcDenseFactorization.hpp.
|
protected |
Solve mode e.g.
0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated
Definition at line 432 of file CoinAbcDenseFactorization.hpp.
Referenced by setSolveMode(), and solveMode().