Dip
0.92.4
|
Abstract base class which also has some scalars so can be used from Dense or Simp. More...
#include <CoinDenseFactorization.hpp>
Public Member Functions | |
Constructors and destructor and copy | |
CoinOtherFactorization () | |
Default constructor. More... | |
CoinOtherFactorization (const CoinOtherFactorization &other) | |
Copy constructor. More... | |
virtual | ~CoinOtherFactorization () |
Destructor. More... | |
CoinOtherFactorization & | operator= (const CoinOtherFactorization &other) |
= copy More... | |
virtual CoinOtherFactorization * | 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... | |
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 |
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 | zeroTolerance () const |
Zero tolerance. More... | |
void | zeroTolerance (double value) |
Returns status. More... | |
double | slackValue () const |
Whether slack value is +1 or -1. More... | |
void | slackValue (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 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... | |
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 | numberElements () const =0 |
Total number of elements in factorization. More... | |
Do factorization - public | |
virtual void | getAreas (int numberRows, int numberColumns, int maximumL, int maximumU)=0 |
Gets space for a factorization. More... | |
virtual void | preProcess ()=0 |
PreProcesses column ordered copy of basis. More... | |
virtual int | factor ()=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, int numberColumns)=0 |
Makes a non-singular basis by replacing variables. More... | |
rank one updates which do exist | |
virtual int | replaceColumn (CoinIndexedVector *regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying=false, double acceptablePivot=1.0e-8)=0 |
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)=0 |
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 =0 |
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)=0 |
does FTRAN on two columns More... | |
virtual int | updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const =0 |
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... | |
Protected Attributes | |
data | |
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... | |
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 26 of file CoinDenseFactorization.hpp.
CoinOtherFactorization::CoinOtherFactorization | ( | ) |
Default constructor.
CoinOtherFactorization::CoinOtherFactorization | ( | const CoinOtherFactorization & | other | ) |
Copy constructor.
|
virtual |
Destructor.
CoinOtherFactorization& CoinOtherFactorization::operator= | ( | const CoinOtherFactorization & | other | ) |
= copy
|
pure virtual |
Clone.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
inline |
Returns status.
Definition at line 48 of file CoinDenseFactorization.hpp.
Referenced by ClpFactorization::status().
|
inline |
Sets status.
Definition at line 53 of file CoinDenseFactorization.hpp.
References status_.
Referenced by ClpFactorization::setStatus().
|
inline |
Returns number of pivots since factorization.
Definition at line 58 of file CoinDenseFactorization.hpp.
References numberPivots_.
Referenced by ClpFactorization::pivots().
|
inline |
Sets number of pivots since factorization.
Definition at line 63 of file CoinDenseFactorization.hpp.
References numberPivots_.
|
inline |
Set number of Rows after factorization.
Definition at line 68 of file CoinDenseFactorization.hpp.
References numberRows_.
|
inline |
Number of Rows after factorization.
Definition at line 73 of file CoinDenseFactorization.hpp.
References numberRows_.
Referenced by ClpFactorization::numberRows().
|
inline |
Total number of columns in factorization.
Definition at line 78 of file CoinDenseFactorization.hpp.
References numberColumns_.
|
inline |
Number of good columns in factorization.
Definition at line 83 of file CoinDenseFactorization.hpp.
References numberGoodU_.
|
inline |
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
Definition at line 88 of file CoinDenseFactorization.hpp.
References relaxCheck_.
|
inline |
|
inline |
Maximum number of pivots between factorizations.
Definition at line 97 of file CoinDenseFactorization.hpp.
References maximumPivots_.
Referenced by ClpFactorization::maximumPivots().
|
virtual |
Set maximum pivots.
Reimplemented in CoinOslFactorization.
|
inline |
Pivot tolerance.
Definition at line 105 of file CoinDenseFactorization.hpp.
References pivotTolerance_.
Referenced by ClpFactorization::pivotTolerance().
void CoinOtherFactorization::pivotTolerance | ( | double | value | ) |
Returns status.
|
inline |
Zero tolerance.
Definition at line 111 of file CoinDenseFactorization.hpp.
References zeroTolerance_.
Referenced by ClpFactorization::zeroTolerance().
void CoinOtherFactorization::zeroTolerance | ( | double | value | ) |
Returns status.
|
inline |
Whether slack value is +1 or -1.
Definition at line 118 of file CoinDenseFactorization.hpp.
void CoinOtherFactorization::slackValue | ( | double | value | ) |
Returns status.
|
virtual |
Returns array to put basis elements in.
Reimplemented in CoinOslFactorization.
|
virtual |
Returns pivot row.
Reimplemented in CoinOslFactorization.
|
virtual |
Returns work area.
Reimplemented in CoinOslFactorization.
|
virtual |
Returns int work area.
Reimplemented in CoinOslFactorization.
|
virtual |
Number of entries in each row.
Reimplemented in CoinOslFactorization.
|
virtual |
Number of entries in each column.
Reimplemented in CoinOslFactorization.
|
virtual |
Returns array to put basis starts in.
Reimplemented in CoinOslFactorization.
|
virtual |
Returns permute back.
Reimplemented in CoinOslFactorization.
|
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 144 of file CoinDenseFactorization.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 152 of file CoinDenseFactorization.hpp.
References solveMode_.
|
virtual |
Returns true if wants tableauColumn in replaceColumn.
Reimplemented in CoinOslFactorization.
|
virtual |
Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn.
Reimplemented in CoinOslFactorization.
|
inlinevirtual |
Get rid of all memory.
Reimplemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
Definition at line 164 of file CoinDenseFactorization.hpp.
Referenced by ClpFactorization::almostDestructor(), and ClpFactorization::clearArrays().
|
pure virtual |
Returns array to put basis indices in.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
Returns permute in.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
Referenced by ClpFactorization::permute(), and ClpFactorization::pivotColumn().
|
pure virtual |
Total number of elements in factorization.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
Gets space for a factorization.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
PreProcesses column ordered copy of basis.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
Does post processing on valid factorization - putting variables on correct rows.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
Makes a non-singular basis by replacing variables.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure 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
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure 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
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
This version has same effect as above with FTUpdate==false so number returned is always >=0.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure virtual |
does FTRAN on two columns
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
pure 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.
Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.
|
protected |
Pivot tolerance.
Definition at line 253 of file CoinDenseFactorization.hpp.
Referenced by pivotTolerance().
|
protected |
Zero tolerance.
Definition at line 255 of file CoinDenseFactorization.hpp.
Referenced by zeroTolerance().
|
protected |
Whether slack value is +1 or -1.
Definition at line 258 of file CoinDenseFactorization.hpp.
|
protected |
Relax check on accuracy in replaceColumn.
Definition at line 265 of file CoinDenseFactorization.hpp.
Referenced by getAccuracyCheck(), and relaxAccuracyCheck().
|
protected |
Number of elements after factorization.
Definition at line 267 of file CoinDenseFactorization.hpp.
|
protected |
Number of Rows in factorization.
Definition at line 269 of file CoinDenseFactorization.hpp.
Referenced by CoinSimpFactorization::indices(), CoinDenseFactorization::indices(), numberRows(), and setNumberRows().
|
protected |
Number of Columns in factorization.
Definition at line 271 of file CoinDenseFactorization.hpp.
Referenced by numberColumns().
|
protected |
Number factorized in U (not row singletons)
Definition at line 273 of file CoinDenseFactorization.hpp.
Referenced by numberGoodColumns().
|
protected |
Maximum number of pivots before factorization.
Definition at line 275 of file CoinDenseFactorization.hpp.
Referenced by maximumPivots().
|
protected |
Number pivots since last factorization.
Definition at line 277 of file CoinDenseFactorization.hpp.
Referenced by pivots(), and setPivots().
|
protected |
Status of factorization.
Definition at line 279 of file CoinDenseFactorization.hpp.
Referenced by setStatus().
|
protected |
Maximum rows ever (i.e. use to copy arrays etc)
Definition at line 281 of file CoinDenseFactorization.hpp.
|
protected |
Maximum length of iterating area.
Definition at line 283 of file CoinDenseFactorization.hpp.
|
protected |
Pivot row.
Definition at line 285 of file CoinDenseFactorization.hpp.
Referenced by CoinSimpFactorization::permute().
|
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 290 of file CoinDenseFactorization.hpp.
Referenced by CoinSimpFactorization::indices(), and CoinDenseFactorization::indices().
|
protected |
Work area of numberRows_.
Definition at line 292 of file CoinDenseFactorization.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 297 of file CoinDenseFactorization.hpp.
Referenced by setSolveMode(), and solveMode().