Clp 1.17.6

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
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. 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 &regionSparseFT)
| Updates one column (FTRAN) Tries to do FT update number returned is negative if no room. More...
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. More...
int | updateColumn (CoinIndexedVector &regionSparse) const
| Updates one column (FTRAN) More...
int | updateTwoColumnsFT (CoinIndexedVector &regionSparseFT, CoinIndexedVector &regionSparseOther)
| Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room. More...
int | updateColumnTranspose (CoinIndexedVector &regionSparse) const
| Updates one column (BTRAN) More...
void | updateColumnCpu (CoinIndexedVector &regionSparse, int whichCpu) const
| Updates one column (FTRAN) More...
void | updateColumnTransposeCpu (CoinIndexedVector &regionSparse, int whichCpu) const
| Updates one column (BTRAN) More...
void | updateFullColumn (CoinIndexedVector &regionSparse) const
| Updates one full column (FTRAN) More...
void | updateFullColumnTranspose (CoinIndexedVector &regionSparse) const
| Updates one full column (BTRAN) More...
void | updateWeights (CoinIndexedVector &regionSparse) 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...

## Detailed Description

This just implements AbcFactorization when an AbcMatrix object is passed.

Definition at line 26 of file AbcSimplexFactorization.hpp.

## Constructor & Destructor Documentation

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

Default constructor.

AbcSimplexFactorization::~AbcSimplexFactorization | ( |  | ) |

Destructor.

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

The copy constructor.

## Member Function Documentation

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.

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.

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.

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.

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

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

Definition at line 201 of file AbcSimplexFactorization.hpp.

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

Definition at line 205 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 212 of file AbcSimplexFactorization.hpp.

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

Updates one column (FTRAN)

Definition at line 219 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 227 of file AbcSimplexFactorization.hpp.

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

Updates one column (BTRAN)

Definition at line 233 of file AbcSimplexFactorization.hpp.

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

Updates one column (FTRAN)

Definition at line 238 of file AbcSimplexFactorization.hpp.

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

Updates one column (BTRAN)

Definition at line 249 of file AbcSimplexFactorization.hpp.

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

Updates one full column (FTRAN)

Definition at line 260 of file AbcSimplexFactorization.hpp.

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

Updates one full column (BTRAN)

Definition at line 265 of file AbcSimplexFactorization.hpp.

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

Updates one column for dual steepest edge weights (FTRAN)

Definition at line 270 of file AbcSimplexFactorization.hpp.

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

Total number of elements in factorization.

Definition at line 284 of file AbcSimplexFactorization.hpp.

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

Maximum number of pivots between factorizations.

Definition at line 289 of file AbcSimplexFactorization.hpp.

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

Set maximum number of pivots between factorizations.

Definition at line 294 of file AbcSimplexFactorization.hpp.

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

Returns true if doing FT.

Definition at line 299 of file AbcSimplexFactorization.hpp.

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

Returns number of pivots since factorization.

Definition at line 304 of file AbcSimplexFactorization.hpp.

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

Sets model.

Definition at line 309 of file AbcSimplexFactorization.hpp.

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

Sets number of pivots since factorization.

Definition at line 314 of file AbcSimplexFactorization.hpp.

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

Whether larger areas needed.

Definition at line 319 of file AbcSimplexFactorization.hpp.

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

Set whether larger areas needed.

Definition at line 324 of file AbcSimplexFactorization.hpp.

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

Zero tolerance.

Definition at line 329 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::zeroTolerance | ( | double | value | ) |
| 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.

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

Returns status.

Definition at line 341 of file AbcSimplexFactorization.hpp.

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

Sets status.

Definition at line 346 of file AbcSimplexFactorization.hpp.

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

Returns number of dense rows.

Definition at line 358 of file AbcSimplexFactorization.hpp.

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

void AbcSimplexFactorization::clearArrays | ( |  | ) |
| inline

Get rid of all memory.

Definition at line 367 of file AbcSimplexFactorization.hpp.

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

Number of Rows after factorization.

Definition at line 372 of file AbcSimplexFactorization.hpp.

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

Number of slacks at last factorization.

Definition at line 377 of file AbcSimplexFactorization.hpp.

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

Pivot tolerance.

Definition at line 382 of file AbcSimplexFactorization.hpp.

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

Set pivot tolerance.

Definition at line 387 of file AbcSimplexFactorization.hpp.

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

Minimum pivot tolerance.

Definition at line 392 of file AbcSimplexFactorization.hpp.

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

Set minimum pivot tolerance.

Definition at line 397 of file AbcSimplexFactorization.hpp.

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

pivot region

Definition at line 402 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 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.

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

Get switch to dense if number rows <= this.

Definition at line 423 of file AbcSimplexFactorization.hpp.

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

Set switch to dense if number rows <= this.

Definition at line 428 of file AbcSimplexFactorization.hpp.

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

Get switch to small if number rows <= this.

Definition at line 433 of file AbcSimplexFactorization.hpp.

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

Set switch to small if number rows <= this.

Definition at line 438 of file AbcSimplexFactorization.hpp.

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

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

Definition at line 443 of file AbcSimplexFactorization.hpp.

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

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

Definition at line 448 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::typeOfFactorization | ( |  | ) | const
| 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

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

Definition at line 467 of file AbcSimplexFactorization.hpp.

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

Says whether to redo pivot order.

Definition at line 478 of file AbcSimplexFactorization.hpp.

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

Pointer to factorization.

Definition at line 485 of file AbcSimplexFactorization.hpp.

## Member Data Documentation

AbcSimplex* AbcSimplexFactorization::model_
| private

Pointer to model.

Definition at line 502 of file AbcSimplexFactorization.hpp.

CoinAbcAnyFactorization* AbcSimplexFactorization::coinAbcFactorization_
| private

Pointer to factorization.

Definition at line 505 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::forceB_
| private

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

Definition at line 519 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goDenseThreshold_
| private

Switch to dense if number rows <= this.

Definition at line 521 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goSmallThreshold_
| private

Switch to small if number rows <= this.

Definition at line 523 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goLongThreshold_
| private

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

Definition at line 525 of file AbcSimplexFactorization.hpp.

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:

- /tmp/Clp-1.17.6/Clp/src/AbcSimplexFactorization.hpp