Clp
1.17.8
|
This just implements AbcFactorization when an AbcMatrix object is passed. More...
#include <AbcSimplexFactorization.hpp>
Public Member Functions | |
factorization | |
int | factorize (AbcSimplex *model, int solveType, bool valuesPass) |
When part of LP - given by basic variables. More... | |
Constructors, destructor | |
AbcSimplexFactorization (int numberRows=0) | |
Default constructor. More... | |
~AbcSimplexFactorization () | |
Destructor. More... | |
Copy method | |
AbcSimplexFactorization (const AbcSimplexFactorization &, int denseIfSmaller=0) | |
The copy constructor. More... | |
AbcSimplexFactorization & | operator= (const AbcSimplexFactorization &) |
void | setFactorization (AbcSimplexFactorization &rhs) |
Sets factorization. More... | |
rank one updates which do exist | |
double | checkReplacePart1 (CoinIndexedVector *regionSparse, int pivotRow) |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U. More... | |
double | checkReplacePart1 (CoinIndexedVector *regionSparse, CoinIndexedVector *partialUpdate, int pivotRow) |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update in vector. More... | |
int | checkReplacePart2 (int pivotRow, double btranAlpha, double ftranAlpha, double ftAlpha) |
Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room, 5 max pivots. More... | |
void | replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double alpha) |
Replaces one Column to basis, partial update already in U. More... | |
void | replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, CoinIndexedVector *partialUpdate, int pivotRow, double alpha) |
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 | |
int | updateColumnFT (CoinIndexedVector ®ionSparseFT) |
Updates one column (FTRAN) Tries to do FT update number returned is negative if no room. More... | |
int | updateColumnFTPart1 (CoinIndexedVector ®ionSparseFT) |
void | updateColumnFTPart2 (CoinIndexedVector ®ionSparseFT) |
void | updateColumnFT (CoinIndexedVector ®ionSparseFT, CoinIndexedVector &partialUpdate, int which) |
Updates one column (FTRAN) Tries to do FT update puts partial update in vector. More... | |
int | updateColumn (CoinIndexedVector ®ionSparse) const |
Updates one column (FTRAN) More... | |
int | updateTwoColumnsFT (CoinIndexedVector ®ionSparseFT, CoinIndexedVector ®ionSparseOther) |
Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room. More... | |
int | updateColumnTranspose (CoinIndexedVector ®ionSparse) const |
Updates one column (BTRAN) More... | |
void | updateColumnCpu (CoinIndexedVector ®ionSparse, int whichCpu) const |
Updates one column (FTRAN) More... | |
void | updateColumnTransposeCpu (CoinIndexedVector ®ionSparse, int whichCpu) const |
Updates one column (BTRAN) More... | |
void | updateFullColumn (CoinIndexedVector ®ionSparse) const |
Updates one full column (FTRAN) More... | |
void | updateFullColumnTranspose (CoinIndexedVector ®ionSparse) const |
Updates one full column (BTRAN) More... | |
void | updateWeights (CoinIndexedVector ®ionSparse) const |
Updates one column for dual steepest edge weights (FTRAN) More... | |
Lifted from CoinFactorization | |
int | numberElements () const |
Total number of elements in factorization. More... | |
int | maximumPivots () const |
Maximum number of pivots between factorizations. More... | |
void | maximumPivots (int value) |
Set maximum number of pivots between factorizations. More... | |
bool | usingFT () const |
Returns true if doing FT. More... | |
int | pivots () const |
Returns number of pivots since factorization. More... | |
void | setModel (AbcSimplex *model) |
Sets model. More... | |
void | setPivots (int value) const |
Sets number of pivots since factorization. More... | |
double | areaFactor () const |
Whether larger areas needed. More... | |
void | areaFactor (double value) |
Set whether larger areas needed. More... | |
double | zeroTolerance () const |
Zero tolerance. More... | |
void | zeroTolerance (double value) |
Set zero tolerance. More... | |
void | saferTolerances (double zeroTolerance, double pivotTolerance) |
Set tolerances to safer of existing and given. More... | |
int | status () const |
Returns status. More... | |
void | setStatus (int value) |
Sets status. More... | |
int | numberDense () const |
Returns number of dense rows. More... | |
bool | timeToRefactorize () const |
void | clearArrays () |
Get rid of all memory. More... | |
int | numberRows () const |
Number of Rows after factorization. More... | |
int | numberSlacks () const |
Number of slacks at last factorization. More... | |
double | pivotTolerance () const |
Pivot tolerance. More... | |
void | pivotTolerance (double value) |
Set pivot tolerance. More... | |
double | minimumPivotTolerance () const |
Minimum pivot tolerance. More... | |
void | minimumPivotTolerance (double value) |
Set minimum pivot tolerance. More... | |
double * | pivotRegion () const |
pivot region More... | |
void | almostDestructor () |
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed. More... | |
void | setDenseThreshold (int number) |
So we can temporarily switch off dense. More... | |
int | getDenseThreshold () const |
void | forceOtherFactorization (int which) |
If nonzero force use of 1,dense 2,small 3,long. More... | |
void | goDenseOrSmall (int numberRows) |
Go over to dense code. More... | |
int | goDenseThreshold () const |
Get switch to dense if number rows <= this. More... | |
void | setGoDenseThreshold (int value) |
Set switch to dense if number rows <= this. More... | |
int | goSmallThreshold () const |
Get switch to small if number rows <= this. More... | |
void | setGoSmallThreshold (int value) |
Set switch to small if number rows <= this. More... | |
int | goLongThreshold () const |
Get switch to long/ordered if number rows >= this. More... | |
void | setGoLongThreshold (int value) |
Set switch to long/ordered if number rows >= this. More... | |
int | typeOfFactorization () const |
Returns type. More... | |
void | synchronize (const ClpFactorization *otherFactorization, const AbcSimplex *model) |
Synchronize stuff. More... | |
other stuff | |
void | goSparse () |
makes a row copy of L for speed and to allow very sparse problems More... | |
void | checkMarkArrays () const |
bool | needToReorder () const |
Says whether to redo pivot order. More... | |
CoinAbcAnyFactorization * | factorization () const |
Pointer to factorization. More... | |
Private Attributes | |
data | |
AbcSimplex * | model_ |
Pointer to model. More... | |
CoinAbcAnyFactorization * | coinAbcFactorization_ |
Pointer to factorization. More... | |
int | forceB_ |
If nonzero force use of 1,dense 2,small 3,long. More... | |
int | goDenseThreshold_ |
Switch to dense if number rows <= this. More... | |
int | goSmallThreshold_ |
Switch to small if number rows <= this. More... | |
int | goLongThreshold_ |
Switch to long/ordered if number rows >= this. More... | |
int | numberSlacks_ |
Number of slacks at last factorization. More... | |
This just implements AbcFactorization when an AbcMatrix object is passed.
Definition at line 26 of file AbcSimplexFactorization.hpp.
AbcSimplexFactorization::AbcSimplexFactorization | ( | int | numberRows = 0 | ) |
Default constructor.
AbcSimplexFactorization::~AbcSimplexFactorization | ( | ) |
Destructor.
AbcSimplexFactorization::AbcSimplexFactorization | ( | const AbcSimplexFactorization & | , |
int | denseIfSmaller = 0 |
||
) |
The copy constructor.
int AbcSimplexFactorization::factorize | ( | AbcSimplex * | model, |
int | solveType, | ||
bool | valuesPass | ||
) |
When part of LP - given by basic variables.
Actually does factorization. Arrays passed in have non negative value to say basic. If status is okay, basic variables have pivot row - this is only needed if increasingRows_ >1. Allows scaling If status is singular, then basic variables have pivot row and ones thrown out have -1 returns 0 -okay, -1 singular, -2 too many in basis, -99 memory
AbcSimplexFactorization& AbcSimplexFactorization::operator= | ( | const AbcSimplexFactorization & | ) |
void AbcSimplexFactorization::setFactorization | ( | AbcSimplexFactorization & | rhs | ) |
Sets factorization.
|
inline |
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 80 of file AbcSimplexFactorization.hpp.
|
inline |
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update in vector.
Definition at line 94 of file AbcSimplexFactorization.hpp.
|
inline |
Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room, 5 max pivots.
Definition at line 118 of file AbcSimplexFactorization.hpp.
void AbcSimplexFactorization::replaceColumnPart3 | ( | const AbcSimplex * | model, |
CoinIndexedVector * | regionSparse, | ||
CoinIndexedVector * | tableauColumn, | ||
int | pivotRow, | ||
double | alpha | ||
) |
Replaces one Column to basis, partial update already in U.
void AbcSimplexFactorization::replaceColumnPart3 | ( | const AbcSimplex * | model, |
CoinIndexedVector * | regionSparse, | ||
CoinIndexedVector * | tableauColumn, | ||
CoinIndexedVector * | partialUpdate, | ||
int | pivotRow, | ||
double | alpha | ||
) |
Replaces one Column to basis, partial update in vector.
|
inline |
Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.
Definition at line 197 of file AbcSimplexFactorization.hpp.
|
inline |
Definition at line 201 of file AbcSimplexFactorization.hpp.
|
inline |
Definition at line 205 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one column (FTRAN) Tries to do FT update puts partial update in vector.
Definition at line 212 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one column (FTRAN)
Definition at line 219 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room.
Also updates regionOther
Definition at line 227 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one column (BTRAN)
Definition at line 233 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one column (FTRAN)
Definition at line 238 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one column (BTRAN)
Definition at line 249 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one full column (FTRAN)
Definition at line 260 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one full column (BTRAN)
Definition at line 265 of file AbcSimplexFactorization.hpp.
|
inline |
Updates one column for dual steepest edge weights (FTRAN)
Definition at line 270 of file AbcSimplexFactorization.hpp.
|
inline |
Total number of elements in factorization.
Definition at line 284 of file AbcSimplexFactorization.hpp.
|
inline |
Maximum number of pivots between factorizations.
Definition at line 289 of file AbcSimplexFactorization.hpp.
|
inline |
Set maximum number of pivots between factorizations.
Definition at line 294 of file AbcSimplexFactorization.hpp.
|
inline |
Returns true if doing FT.
Definition at line 299 of file AbcSimplexFactorization.hpp.
|
inline |
Returns number of pivots since factorization.
Definition at line 304 of file AbcSimplexFactorization.hpp.
|
inline |
Sets model.
Definition at line 309 of file AbcSimplexFactorization.hpp.
|
inline |
Sets number of pivots since factorization.
Definition at line 314 of file AbcSimplexFactorization.hpp.
|
inline |
Whether larger areas needed.
Definition at line 319 of file AbcSimplexFactorization.hpp.
|
inline |
Set whether larger areas needed.
Definition at line 324 of file AbcSimplexFactorization.hpp.
|
inline |
Zero tolerance.
Definition at line 329 of file AbcSimplexFactorization.hpp.
|
inline |
Set zero tolerance.
Definition at line 334 of file AbcSimplexFactorization.hpp.
void AbcSimplexFactorization::saferTolerances | ( | double | zeroTolerance, |
double | pivotTolerance | ||
) |
Set tolerances to safer of existing and given.
|
inline |
Returns status.
Definition at line 341 of file AbcSimplexFactorization.hpp.
|
inline |
Sets status.
Definition at line 346 of file AbcSimplexFactorization.hpp.
|
inline |
Returns number of dense rows.
Definition at line 358 of file AbcSimplexFactorization.hpp.
bool AbcSimplexFactorization::timeToRefactorize | ( | ) | const |
|
inline |
Get rid of all memory.
Definition at line 367 of file AbcSimplexFactorization.hpp.
|
inline |
Number of Rows after factorization.
Definition at line 372 of file AbcSimplexFactorization.hpp.
|
inline |
Number of slacks at last factorization.
Definition at line 377 of file AbcSimplexFactorization.hpp.
|
inline |
Pivot tolerance.
Definition at line 382 of file AbcSimplexFactorization.hpp.
|
inline |
Set pivot tolerance.
Definition at line 387 of file AbcSimplexFactorization.hpp.
|
inline |
Minimum pivot tolerance.
Definition at line 392 of file AbcSimplexFactorization.hpp.
|
inline |
Set minimum pivot tolerance.
Definition at line 397 of file AbcSimplexFactorization.hpp.
|
inline |
pivot region
Definition at line 402 of file AbcSimplexFactorization.hpp.
|
inline |
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
Delete all stuff (leaves as after CoinFactorization())
Definition at line 411 of file AbcSimplexFactorization.hpp.
void AbcSimplexFactorization::setDenseThreshold | ( | int | number | ) |
So we can temporarily switch off dense.
int AbcSimplexFactorization::getDenseThreshold | ( | ) | const |
void AbcSimplexFactorization::forceOtherFactorization | ( | int | which | ) |
If nonzero force use of 1,dense 2,small 3,long.
void AbcSimplexFactorization::goDenseOrSmall | ( | int | numberRows | ) |
Go over to dense code.
|
inline |
Get switch to dense if number rows <= this.
Definition at line 423 of file AbcSimplexFactorization.hpp.
|
inline |
Set switch to dense if number rows <= this.
Definition at line 428 of file AbcSimplexFactorization.hpp.
|
inline |
Get switch to small if number rows <= this.
Definition at line 433 of file AbcSimplexFactorization.hpp.
|
inline |
Set switch to small if number rows <= this.
Definition at line 438 of file AbcSimplexFactorization.hpp.
|
inline |
Get switch to long/ordered if number rows >= this.
Definition at line 443 of file AbcSimplexFactorization.hpp.
|
inline |
Set switch to long/ordered if number rows >= this.
Definition at line 448 of file AbcSimplexFactorization.hpp.
|
inline |
Returns type.
Definition at line 453 of file AbcSimplexFactorization.hpp.
void AbcSimplexFactorization::synchronize | ( | const ClpFactorization * | otherFactorization, |
const AbcSimplex * | model | ||
) |
Synchronize stuff.
void AbcSimplexFactorization::goSparse | ( | ) |
makes a row copy of L for speed and to allow very sparse problems
|
inline |
Definition at line 467 of file AbcSimplexFactorization.hpp.
|
inline |
Says whether to redo pivot order.
Definition at line 478 of file AbcSimplexFactorization.hpp.
|
inline |
Pointer to factorization.
Definition at line 485 of file AbcSimplexFactorization.hpp.
|
private |
Pointer to model.
Definition at line 502 of file AbcSimplexFactorization.hpp.
|
private |
Pointer to factorization.
Definition at line 505 of file AbcSimplexFactorization.hpp.
|
private |
If nonzero force use of 1,dense 2,small 3,long.
Definition at line 519 of file AbcSimplexFactorization.hpp.
|
private |
Switch to dense if number rows <= this.
Definition at line 521 of file AbcSimplexFactorization.hpp.
|
private |
Switch to small if number rows <= this.
Definition at line 523 of file AbcSimplexFactorization.hpp.
|
private |
Switch to long/ordered if number rows >= this.
Definition at line 525 of file AbcSimplexFactorization.hpp.
|
private |
Number of slacks at last factorization.
Definition at line 527 of file AbcSimplexFactorization.hpp.