Loading...
Searching...
No Matches
AbcSimplexFactorization Class Reference

This just implements AbcFactorization when an AbcMatrix object is passed. More...

`#include <AbcSimplexFactorization.hpp>`

Collaboration diagram for AbcSimplexFactorization:
[legend]

## 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 &)
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.
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)
which user may want to know about
int | updateColumnFT (CoinIndexedVector &regionSparseFT)
| Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.
int | updateColumnFTPart1 (CoinIndexedVector &regionSparseFT)
void | updateColumnFTPart2 (CoinIndexedVector &regionSparseFT)
void | updateColumnFT (CoinIndexedVector &regionSparseFT, CoinIndexedVector &partialUpdate, int which)
| Updates one column (FTRAN) Tries to do FT update puts partial update in vector.
int | updateColumn (CoinIndexedVector &regionSparse) const
| Updates one column (FTRAN).
int | updateTwoColumnsFT (CoinIndexedVector &regionSparseFT, CoinIndexedVector &regionSparseOther)
| Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room.
int | updateColumnTranspose (CoinIndexedVector &regionSparse) const
| Updates one column (BTRAN).
void | updateColumnCpu (CoinIndexedVector &regionSparse, int whichCpu) const
| Updates one column (FTRAN).
void | updateColumnTransposeCpu (CoinIndexedVector &regionSparse, int whichCpu) const
| Updates one column (BTRAN).
void | updateFullColumn (CoinIndexedVector &regionSparse) const
| Updates one full column (FTRAN).
void | updateFullColumnTranspose (CoinIndexedVector &regionSparse) const
| Updates one full column (BTRAN).
void | updateWeights (CoinIndexedVector &regionSparse) 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 | setModel (AbcSimplex *model)
| Sets model.
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
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
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
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.

## Detailed Description

This just implements AbcFactorization when an AbcMatrix object is passed.

Definition at line 26 of file AbcSimplexFactorization.hpp.

## Constructor & Destructor Documentation

## AbcSimplexFactorization() [1/2]

AbcSimplexFactorization::AbcSimplexFactorization | ( | int | numberRows = 0 | ) |

Default constructor.

## ~AbcSimplexFactorization()

AbcSimplexFactorization::~AbcSimplexFactorization | ( |  | ) |

Destructor.

## AbcSimplexFactorization() [2/2]

AbcSimplexFactorization::AbcSimplexFactorization | ( | const AbcSimplexFactorization & | ,
|  | int | denseIfSmaller = 0 )

The copy constructor.

## Member Function Documentation

## factorize()

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

## operator=()

AbcSimplexFactorization & AbcSimplexFactorization::operator= | ( | const AbcSimplexFactorization & |  | ) |

## setFactorization()

void AbcSimplexFactorization::setFactorization | ( | AbcSimplexFactorization & | rhs | ) |

Sets factorization.

## checkReplacePart1() [1/2]

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 80 of file AbcSimplexFactorization.hpp.

## checkReplacePart1() [2/2]

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 94 of file AbcSimplexFactorization.hpp.

## checkReplacePart2()

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 118 of file AbcSimplexFactorization.hpp.

## replaceColumnPart3() [1/2]

void AbcSimplexFactorization::replaceColumnPart3 | ( | const AbcSimplex * | model,
|  | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | tableauColumn,
|  | int | pivotRow,
|  | double | alpha )

Replaces one Column to basis, partial update already in U.

## replaceColumnPart3() [2/2]

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.

## updateColumnFT() [1/2]

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 197 of file AbcSimplexFactorization.hpp.

## updateColumnFTPart1()

int AbcSimplexFactorization::updateColumnFTPart1 | ( | CoinIndexedVector & | regionSparseFT | ) |

inline

Definition at line 201 of file AbcSimplexFactorization.hpp.

## updateColumnFTPart2()

void AbcSimplexFactorization::updateColumnFTPart2 | ( | CoinIndexedVector & | regionSparseFT | ) |

inline

Definition at line 205 of file AbcSimplexFactorization.hpp.

## updateColumnFT() [2/2]

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 212 of file AbcSimplexFactorization.hpp.

## updateColumn()

int AbcSimplexFactorization::updateColumn | ( | CoinIndexedVector & | regionSparse | ) | const

inline

Updates one column (FTRAN).

Definition at line 219 of file AbcSimplexFactorization.hpp.

## updateTwoColumnsFT()

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 227 of file AbcSimplexFactorization.hpp.

## updateColumnTranspose()

int AbcSimplexFactorization::updateColumnTranspose | ( | CoinIndexedVector & | regionSparse | ) | const

inline

Updates one column (BTRAN).

Definition at line 233 of file AbcSimplexFactorization.hpp.

## updateColumnCpu()

void AbcSimplexFactorization::updateColumnCpu | ( | CoinIndexedVector & | regionSparse,
|  | int | whichCpu ) const

inline

Updates one column (FTRAN).

Definition at line 238 of file AbcSimplexFactorization.hpp.

## updateColumnTransposeCpu()

void AbcSimplexFactorization::updateColumnTransposeCpu | ( | CoinIndexedVector & | regionSparse,
|  | int | whichCpu ) const

inline

Updates one column (BTRAN).

Definition at line 249 of file AbcSimplexFactorization.hpp.

## updateFullColumn()

void AbcSimplexFactorization::updateFullColumn | ( | CoinIndexedVector & | regionSparse | ) | const

inline

Updates one full column (FTRAN).

Definition at line 260 of file AbcSimplexFactorization.hpp.

## updateFullColumnTranspose()

void AbcSimplexFactorization::updateFullColumnTranspose | ( | CoinIndexedVector & | regionSparse | ) | const

inline

Updates one full column (BTRAN).

Definition at line 265 of file AbcSimplexFactorization.hpp.

## updateWeights()

void AbcSimplexFactorization::updateWeights | ( | CoinIndexedVector & | regionSparse | ) | const

inline

Updates one column for dual steepest edge weights (FTRAN).

Definition at line 270 of file AbcSimplexFactorization.hpp.

## numberElements()

int AbcSimplexFactorization::numberElements | ( |  | ) | const

inline

Total number of elements in factorization.

Definition at line 284 of file AbcSimplexFactorization.hpp.

## maximumPivots() [1/2]

int AbcSimplexFactorization::maximumPivots | ( |  | ) | const

inline

Maximum number of pivots between factorizations.

Definition at line 289 of file AbcSimplexFactorization.hpp.

## maximumPivots() [2/2]

void AbcSimplexFactorization::maximumPivots | ( | int | value | ) |

inline

Set maximum number of pivots between factorizations.

Definition at line 294 of file AbcSimplexFactorization.hpp.

## usingFT()

bool AbcSimplexFactorization::usingFT | ( |  | ) | const

inline

Returns true if doing FT.

Definition at line 299 of file AbcSimplexFactorization.hpp.

## pivots()

int AbcSimplexFactorization::pivots | ( |  | ) | const

inline

Returns number of pivots since factorization.

Definition at line 304 of file AbcSimplexFactorization.hpp.

## setModel()

void AbcSimplexFactorization::setModel | ( | AbcSimplex * | model | ) |

inline

Sets model.

Definition at line 309 of file AbcSimplexFactorization.hpp.

## setPivots()

void AbcSimplexFactorization::setPivots | ( | int | value | ) | const

inline

Sets number of pivots since factorization.

Definition at line 314 of file AbcSimplexFactorization.hpp.

## areaFactor() [1/2]

double AbcSimplexFactorization::areaFactor | ( |  | ) | const

inline

Whether larger areas needed.

Definition at line 319 of file AbcSimplexFactorization.hpp.

## areaFactor() [2/2]

void AbcSimplexFactorization::areaFactor | ( | double | value | ) |

inline

Set whether larger areas needed.

Definition at line 324 of file AbcSimplexFactorization.hpp.

## zeroTolerance() [1/2]

double AbcSimplexFactorization::zeroTolerance | ( |  | ) | const

inline

Zero tolerance.

Definition at line 329 of file AbcSimplexFactorization.hpp.

## zeroTolerance() [2/2]

void AbcSimplexFactorization::zeroTolerance | ( | double | value | ) |

inline

Set zero tolerance.

Definition at line 334 of file AbcSimplexFactorization.hpp.

## saferTolerances()

void AbcSimplexFactorization::saferTolerances | ( | double | zeroTolerance,
|  | double | pivotTolerance )

Set tolerances to safer of existing and given.

## status()

int AbcSimplexFactorization::status | ( |  | ) | const

inline

Returns status.

Definition at line 341 of file AbcSimplexFactorization.hpp.

## setStatus()

void AbcSimplexFactorization::setStatus | ( | int | value | ) |

inline

Sets status.

Definition at line 346 of file AbcSimplexFactorization.hpp.

## numberDense()

int AbcSimplexFactorization::numberDense | ( |  | ) | const

inline

Returns number of dense rows.

Definition at line 358 of file AbcSimplexFactorization.hpp.

## timeToRefactorize()

bool AbcSimplexFactorization::timeToRefactorize | ( |  | ) | const

## clearArrays()

void AbcSimplexFactorization::clearArrays | ( |  | ) |

inline

Get rid of all memory.

Definition at line 367 of file AbcSimplexFactorization.hpp.

## numberRows()

int AbcSimplexFactorization::numberRows | ( |  | ) | const

inline

Number of Rows after factorization.

Definition at line 372 of file AbcSimplexFactorization.hpp.

## numberSlacks()

int AbcSimplexFactorization::numberSlacks | ( |  | ) | const

inline

Number of slacks at last factorization.

Definition at line 377 of file AbcSimplexFactorization.hpp.

## pivotTolerance() [1/2]

double AbcSimplexFactorization::pivotTolerance | ( |  | ) | const

inline

Pivot tolerance.

Definition at line 382 of file AbcSimplexFactorization.hpp.

## pivotTolerance() [2/2]

void AbcSimplexFactorization::pivotTolerance | ( | double | value | ) |

inline

Set pivot tolerance.

Definition at line 387 of file AbcSimplexFactorization.hpp.

## minimumPivotTolerance() [1/2]

double AbcSimplexFactorization::minimumPivotTolerance | ( |  | ) | const

inline

Minimum pivot tolerance.

Definition at line 392 of file AbcSimplexFactorization.hpp.

## minimumPivotTolerance() [2/2]

void AbcSimplexFactorization::minimumPivotTolerance | ( | double | value | ) |

inline

Set minimum pivot tolerance.

Definition at line 397 of file AbcSimplexFactorization.hpp.

## pivotRegion()

double * AbcSimplexFactorization::pivotRegion | ( |  | ) | const

inline

pivot region

Definition at line 402 of file AbcSimplexFactorization.hpp.

## almostDestructor()

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 411 of file AbcSimplexFactorization.hpp.

## setDenseThreshold()

void AbcSimplexFactorization::setDenseThreshold | ( | int | number | ) |

So we can temporarily switch off dense.

## getDenseThreshold()

int AbcSimplexFactorization::getDenseThreshold | ( |  | ) | const

## forceOtherFactorization()

void AbcSimplexFactorization::forceOtherFactorization | ( | int | which | ) |

If nonzero force use of 1,dense 2,small 3,long.

## goDenseOrSmall()

void AbcSimplexFactorization::goDenseOrSmall | ( | int | numberRows | ) |

Go over to dense code.

## goDenseThreshold()

int AbcSimplexFactorization::goDenseThreshold | ( |  | ) | const

inline

Get switch to dense if number rows <= this.

Definition at line 423 of file AbcSimplexFactorization.hpp.

## setGoDenseThreshold()

void AbcSimplexFactorization::setGoDenseThreshold | ( | int | value | ) |

inline

Set switch to dense if number rows <= this.

Definition at line 428 of file AbcSimplexFactorization.hpp.

## goSmallThreshold()

int AbcSimplexFactorization::goSmallThreshold | ( |  | ) | const

inline

Get switch to small if number rows <= this.

Definition at line 433 of file AbcSimplexFactorization.hpp.

## setGoSmallThreshold()

void AbcSimplexFactorization::setGoSmallThreshold | ( | int | value | ) |

inline

Set switch to small if number rows <= this.

Definition at line 438 of file AbcSimplexFactorization.hpp.

## goLongThreshold()

int AbcSimplexFactorization::goLongThreshold | ( |  | ) | const

inline

Get switch to long/ordered if number rows >= this.

Definition at line 443 of file AbcSimplexFactorization.hpp.

## setGoLongThreshold()

void AbcSimplexFactorization::setGoLongThreshold | ( | int | value | ) |

inline

Set switch to long/ordered if number rows >= this.

Definition at line 448 of file AbcSimplexFactorization.hpp.

## typeOfFactorization()

int AbcSimplexFactorization::typeOfFactorization | ( |  | ) | const

inline

Returns type.

Definition at line 453 of file AbcSimplexFactorization.hpp.

## synchronize()

void AbcSimplexFactorization::synchronize | ( | const ClpFactorization * | otherFactorization,
|  | const AbcSimplex * | model )

Synchronize stuff.

## goSparse()

void AbcSimplexFactorization::goSparse | ( |  | ) |

makes a row copy of L for speed and to allow very sparse problems

## checkMarkArrays()

void AbcSimplexFactorization::checkMarkArrays | ( |  | ) | const

inline

Definition at line 467 of file AbcSimplexFactorization.hpp.

## needToReorder()

bool AbcSimplexFactorization::needToReorder | ( |  | ) | const

inline

Says whether to redo pivot order.

Definition at line 478 of file AbcSimplexFactorization.hpp.

## factorization()

CoinAbcAnyFactorization * AbcSimplexFactorization::factorization | ( |  | ) | const

inline

Pointer to factorization.

Definition at line 485 of file AbcSimplexFactorization.hpp.

## Member Data Documentation

## model_

AbcSimplex* AbcSimplexFactorization::model_

private

Pointer to model.

Definition at line 502 of file AbcSimplexFactorization.hpp.

## coinAbcFactorization_

CoinAbcAnyFactorization* AbcSimplexFactorization::coinAbcFactorization_

private

Pointer to factorization.

Definition at line 505 of file AbcSimplexFactorization.hpp.

## forceB_

int AbcSimplexFactorization::forceB_

private

If nonzero force use of 1,dense 2,small 3,long.

Definition at line 519 of file AbcSimplexFactorization.hpp.

## goDenseThreshold_

int AbcSimplexFactorization::goDenseThreshold_

private

Switch to dense if number rows <= this.

Definition at line 521 of file AbcSimplexFactorization.hpp.

## goSmallThreshold_

int AbcSimplexFactorization::goSmallThreshold_

private

Switch to small if number rows <= this.

Definition at line 523 of file AbcSimplexFactorization.hpp.

## goLongThreshold_

int AbcSimplexFactorization::goLongThreshold_

private

Switch to long/ordered if number rows >= this.

Definition at line 525 of file AbcSimplexFactorization.hpp.

## numberSlacks_

int AbcSimplexFactorization::numberSlacks_

private

Number of slacks at last factorization.

Definition at line 527 of file AbcSimplexFactorization.hpp.

The documentation for this class was generated from the following file:

- Clp/src/AbcSimplexFactorization.hpp