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. | |
Constructors, destructor | |
| AbcSimplexFactorization (int numberRows=0) | |
| Default constructor. | |
| ~AbcSimplexFactorization () | |
| Destructor. | |
Copy method | |
| AbcSimplexFactorization (const AbcSimplexFactorization &, int denseIfSmaller=0) | |
| The copy constructor. | |
| AbcSimplexFactorization & | operator= (const AbcSimplexFactorization &) |
| The copy constructor. | |
| void | setFactorization (AbcSimplexFactorization &rhs) |
| Sets factorization. | |
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. | |
| 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. | |
| void | checkReplacePart1a (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. | |
| double | checkReplacePart1b (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. | |
| 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. | |
| void | replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double alpha) |
| Replaces one Column to basis, partial update already in U. | |
| void | replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, CoinIndexedVector *partialUpdate, int pivotRow, double alpha) |
| Replaces one Column to basis, partial update in vector. | |
various uses of factorization (return code number elements) | |
| int | updateColumnFT (CoinIndexedVector ®ionSparseFT) |
| Updates one column (FTRAN) Tries to do FT update number returned is negative if no room. | |
| int | updateColumnFTPart1 (CoinIndexedVector ®ionSparseFT) |
| Updates one column (FTRAN) Tries to do FT update number returned is negative if no room. | |
| void | updateColumnFTPart2 (CoinIndexedVector ®ionSparseFT) |
| Updates one column (FTRAN) Tries to do FT update number returned is negative if no room. | |
| void | updateColumnFT (CoinIndexedVector ®ionSparseFT, CoinIndexedVector &partialUpdate, int which) |
| Updates one column (FTRAN) Tries to do FT update puts partial update in vector. | |
| int | updateColumn (CoinIndexedVector ®ionSparse) const |
| Updates one column (FTRAN). | |
| int | updateTwoColumnsFT (CoinIndexedVector ®ionSparseFT, CoinIndexedVector ®ionSparseOther) |
| Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room. | |
| int | updateColumnTranspose (CoinIndexedVector ®ionSparse) const |
| Updates one column (BTRAN). | |
| void | updateColumnCpu (CoinIndexedVector ®ionSparse, int whichCpu) const |
| Updates one column (FTRAN). | |
| void | updateColumnTransposeCpu (CoinIndexedVector ®ionSparse, int whichCpu) const |
| Updates one column (BTRAN). | |
| void | updateFullColumn (CoinIndexedVector ®ionSparse) const |
| Updates one full column (FTRAN). | |
| void | updateFullColumnTranspose (CoinIndexedVector ®ionSparse) const |
| Updates one full column (BTRAN). | |
| void | updateWeights (CoinIndexedVector ®ionSparse) const |
| Updates one column for dual steepest edge weights (FTRAN). | |
Lifted from CoinFactorization | |
| int | numberElements () const |
| Total number of elements in factorization. | |
| int | maximumPivots () const |
| Maximum number of pivots between factorizations. | |
| void | maximumPivots (int value) |
| Set maximum number of pivots between factorizations. | |
| bool | usingFT () const |
| Returns true if doing FT. | |
| int | pivots () const |
| Returns number of pivots since factorization. | |
| void | setPivots (int value) const |
| Sets number of pivots since factorization. | |
| double | areaFactor () const |
| Whether larger areas needed. | |
| void | areaFactor (double value) |
| Set whether larger areas needed. | |
| double | zeroTolerance () const |
| Zero tolerance. | |
| void | zeroTolerance (double value) |
| Set zero tolerance. | |
| void | saferTolerances (double zeroTolerance, double pivotTolerance) |
| Set tolerances to safer of existing and given. | |
| int | status () const |
| Returns status. | |
| void | setStatus (int value) |
| Sets status. | |
| int | numberDense () const |
| Returns number of dense rows. | |
| bool | timeToRefactorize () const |
| Total number of elements in factorization. | |
| void | clearArrays () |
| Get rid of all memory. | |
| int | numberRows () const |
| Number of Rows after factorization. | |
| int | numberSlacks () const |
| Number of slacks at last factorization. | |
| double | pivotTolerance () const |
| Pivot tolerance. | |
| void | pivotTolerance (double value) |
| Set pivot tolerance. | |
| double | minimumPivotTolerance () const |
| Minimum pivot tolerance. | |
| void | minimumPivotTolerance (double value) |
| Set minimum pivot tolerance. | |
| double * | pivotRegion () const |
| pivot region | |
| void | almostDestructor () |
| Allows change of pivot accuracy check 1.0 == none >1.0 relaxed. | |
| void | setDenseThreshold (int number) |
| So we can temporarily switch off dense. | |
| int | getDenseThreshold () const |
| Total number of elements in factorization. | |
| void | forceOtherFactorization (int which) |
| If nonzero force use of 1,dense 2,small 3,long. | |
| void | goDenseOrSmall (int numberRows) |
| Go over to dense code. | |
| int | goDenseThreshold () const |
| Get switch to dense if number rows <= this. | |
| void | setGoDenseThreshold (int value) |
| Set switch to dense if number rows <= this. | |
| int | goSmallThreshold () const |
| Get switch to small if number rows <= this. | |
| void | setGoSmallThreshold (int value) |
| Set switch to small if number rows <= this. | |
| int | goLongThreshold () const |
| Get switch to long/ordered if number rows >= this. | |
| void | setGoLongThreshold (int value) |
| Set switch to long/ordered if number rows >= this. | |
| int | typeOfFactorization () const |
| Returns type. | |
| void | synchronize (const ClpFactorization *otherFactorization, const AbcSimplex *model) |
| Synchronize stuff. | |
other stuff | |
| void | goSparse () |
| makes a row copy of L for speed and to allow very sparse problems | |
| void | checkMarkArrays () const |
| makes a row copy of L for speed and to allow very sparse problems | |
| bool | needToReorder () const |
| Says whether to redo pivot order. | |
| CoinAbcAnyFactorization * | factorization () const |
| Pointer to factorization. | |
Private Attributes | |
data | |
| AbcSimplex * | model_ |
| Pointer to model. | |
| CoinAbcAnyFactorization * | coinAbcFactorization_ |
| Pointer to factorization. | |
| int | forceB_ |
| If nonzero force use of 1,dense 2,small 3,long. | |
| int | goDenseThreshold_ |
| Switch to dense if number rows <= this. | |
| int | goSmallThreshold_ |
| Switch to small if number rows <= this. | |
| int | goLongThreshold_ |
| Switch to long/ordered if number rows >= this. | |
| int | numberSlacks_ |
| Number of slacks at last factorization. | |
This just implements AbcFactorization when an AbcMatrix object is passed.
Definition at line 22 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 & | ) |
The copy constructor.
| void AbcSimplexFactorization::setFactorization | ( | AbcSimplexFactorization & | rhs | ) |
Sets factorization.
| double AbcSimplexFactorization::checkReplacePart1 | ( | CoinIndexedVector * | regionSparse, | |
| int | pivotRow | |||
| ) | [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 75 of file AbcSimplexFactorization.hpp.
| double AbcSimplexFactorization::checkReplacePart1 | ( | CoinIndexedVector * | regionSparse, | |
| CoinIndexedVector * | partialUpdate, | |||
| int | pivotRow | |||
| ) | [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 86 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::checkReplacePart1a | ( | CoinIndexedVector * | regionSparse, | |
| int | pivotRow | |||
| ) | [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 94 of file AbcSimplexFactorization.hpp.
| double AbcSimplexFactorization::checkReplacePart1b | ( | CoinIndexedVector * | regionSparse, | |
| int | pivotRow | |||
| ) | [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 97 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::checkReplacePart2 | ( | int | pivotRow, | |
| double | btranAlpha, | |||
| double | ftranAlpha, | |||
| double | ftAlpha | |||
| ) | [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 102 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.
| int AbcSimplexFactorization::updateColumnFT | ( | CoinIndexedVector & | regionSparseFT | ) | [inline] |
Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.
Definition at line 175 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::updateColumnFTPart1 | ( | CoinIndexedVector & | regionSparseFT | ) | [inline] |
Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.
Definition at line 177 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::updateColumnFTPart2 | ( | CoinIndexedVector & | regionSparseFT | ) | [inline] |
Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.
Definition at line 179 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::updateColumnFT | ( | CoinIndexedVector & | regionSparseFT, | |
| CoinIndexedVector & | partialUpdate, | |||
| int | which | |||
| ) | [inline] |
Updates one column (FTRAN) Tries to do FT update puts partial update in vector.
Definition at line 184 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::updateColumn | ( | CoinIndexedVector & | regionSparse | ) | const [inline] |
Updates one column (FTRAN).
Definition at line 189 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::updateTwoColumnsFT | ( | CoinIndexedVector & | regionSparseFT, | |
| CoinIndexedVector & | regionSparseOther | |||
| ) | [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 195 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::updateColumnTranspose | ( | CoinIndexedVector & | regionSparse | ) | const [inline] |
Updates one column (BTRAN).
Definition at line 199 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::updateColumnCpu | ( | CoinIndexedVector & | regionSparse, | |
| int | whichCpu | |||
| ) | const [inline] |
Updates one column (FTRAN).
Definition at line 202 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::updateColumnTransposeCpu | ( | CoinIndexedVector & | regionSparse, | |
| int | whichCpu | |||
| ) | const [inline] |
Updates one column (BTRAN).
Definition at line 205 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::updateFullColumn | ( | CoinIndexedVector & | regionSparse | ) | const [inline] |
Updates one full column (FTRAN).
Definition at line 208 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::updateFullColumnTranspose | ( | CoinIndexedVector & | regionSparse | ) | const [inline] |
Updates one full column (BTRAN).
Definition at line 211 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::updateWeights | ( | CoinIndexedVector & | regionSparse | ) | const [inline] |
Updates one column for dual steepest edge weights (FTRAN).
Definition at line 214 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::numberElements | ( | ) | const [inline] |
Total number of elements in factorization.
Definition at line 220 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::maximumPivots | ( | ) | const [inline] |
Maximum number of pivots between factorizations.
Definition at line 224 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::maximumPivots | ( | int | value | ) | [inline] |
Set maximum number of pivots between factorizations.
Definition at line 228 of file AbcSimplexFactorization.hpp.
| bool AbcSimplexFactorization::usingFT | ( | ) | const [inline] |
Returns true if doing FT.
Definition at line 232 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::pivots | ( | ) | const [inline] |
Returns number of pivots since factorization.
Definition at line 235 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::setPivots | ( | int | value | ) | const [inline] |
Sets number of pivots since factorization.
Definition at line 239 of file AbcSimplexFactorization.hpp.
| double AbcSimplexFactorization::areaFactor | ( | ) | const [inline] |
Whether larger areas needed.
Definition at line 243 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::areaFactor | ( | double | value | ) | [inline] |
Set whether larger areas needed.
Definition at line 247 of file AbcSimplexFactorization.hpp.
| double AbcSimplexFactorization::zeroTolerance | ( | ) | const [inline] |
Zero tolerance.
Definition at line 251 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::zeroTolerance | ( | double | value | ) | [inline] |
Set zero tolerance.
Definition at line 255 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::saferTolerances | ( | double | zeroTolerance, | |
| double | pivotTolerance | |||
| ) |
Set tolerances to safer of existing and given.
| int AbcSimplexFactorization::status | ( | ) | const [inline] |
Returns status.
Definition at line 261 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::setStatus | ( | int | value | ) | [inline] |
Sets status.
Definition at line 265 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::numberDense | ( | ) | const [inline] |
Returns number of dense rows.
Definition at line 274 of file AbcSimplexFactorization.hpp.
| bool AbcSimplexFactorization::timeToRefactorize | ( | ) | const [inline] |
Total number of elements in factorization.
Definition at line 277 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::clearArrays | ( | ) | [inline] |
Get rid of all memory.
Definition at line 281 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::numberRows | ( | ) | const [inline] |
Number of Rows after factorization.
Definition at line 285 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::numberSlacks | ( | ) | const [inline] |
Number of slacks at last factorization.
Definition at line 289 of file AbcSimplexFactorization.hpp.
| double AbcSimplexFactorization::pivotTolerance | ( | ) | const [inline] |
Pivot tolerance.
Definition at line 292 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::pivotTolerance | ( | double | value | ) | [inline] |
Set pivot tolerance.
Definition at line 296 of file AbcSimplexFactorization.hpp.
| double AbcSimplexFactorization::minimumPivotTolerance | ( | ) | const [inline] |
Minimum pivot tolerance.
Definition at line 300 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::minimumPivotTolerance | ( | double | value | ) | [inline] |
Set minimum pivot tolerance.
Definition at line 304 of file AbcSimplexFactorization.hpp.
| double* AbcSimplexFactorization::pivotRegion | ( | ) | const [inline] |
pivot region
Definition at line 308 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::almostDestructor | ( | ) | [inline] |
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
Delete all stuff (leaves as after CoinFactorization())
Definition at line 315 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::setDenseThreshold | ( | int | number | ) |
So we can temporarily switch off dense.
| int AbcSimplexFactorization::getDenseThreshold | ( | ) | const |
Total number of elements in factorization.
| 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.
| int AbcSimplexFactorization::goDenseThreshold | ( | ) | const [inline] |
Get switch to dense if number rows <= this.
Definition at line 326 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::setGoDenseThreshold | ( | int | value | ) | [inline] |
Set switch to dense if number rows <= this.
Definition at line 330 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::goSmallThreshold | ( | ) | const [inline] |
Get switch to small if number rows <= this.
Definition at line 334 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::setGoSmallThreshold | ( | int | value | ) | [inline] |
Set switch to small if number rows <= this.
Definition at line 338 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::goLongThreshold | ( | ) | const [inline] |
Get switch to long/ordered if number rows >= this.
Definition at line 342 of file AbcSimplexFactorization.hpp.
| void AbcSimplexFactorization::setGoLongThreshold | ( | int | value | ) | [inline] |
Set switch to long/ordered if number rows >= this.
Definition at line 346 of file AbcSimplexFactorization.hpp.
| int AbcSimplexFactorization::typeOfFactorization | ( | ) | const [inline] |
Returns type.
Definition at line 350 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
| void AbcSimplexFactorization::checkMarkArrays | ( | ) | const [inline] |
makes a row copy of L for speed and to allow very sparse problems
Definition at line 361 of file AbcSimplexFactorization.hpp.
| bool AbcSimplexFactorization::needToReorder | ( | ) | const [inline] |
Says whether to redo pivot order.
Definition at line 365 of file AbcSimplexFactorization.hpp.
| CoinAbcAnyFactorization* AbcSimplexFactorization::factorization | ( | ) | const [inline] |
Pointer to factorization.
Definition at line 367 of file AbcSimplexFactorization.hpp.
AbcSimplex* AbcSimplexFactorization::model_ [private] |
Pointer to model.
Definition at line 377 of file AbcSimplexFactorization.hpp.
Pointer to factorization.
Definition at line 379 of file AbcSimplexFactorization.hpp.
int AbcSimplexFactorization::forceB_ [private] |
If nonzero force use of 1,dense 2,small 3,long.
Definition at line 381 of file AbcSimplexFactorization.hpp.
int AbcSimplexFactorization::goDenseThreshold_ [private] |
Switch to dense if number rows <= this.
Definition at line 383 of file AbcSimplexFactorization.hpp.
int AbcSimplexFactorization::goSmallThreshold_ [private] |
Switch to small if number rows <= this.
Definition at line 385 of file AbcSimplexFactorization.hpp.
int AbcSimplexFactorization::goLongThreshold_ [private] |
Switch to long/ordered if number rows >= this.
Definition at line 387 of file AbcSimplexFactorization.hpp.
int AbcSimplexFactorization::numberSlacks_ [private] |
Number of slacks at last factorization.
Definition at line 389 of file AbcSimplexFactorization.hpp.
1.6.1