CoinOtherFactorization

Abstract base class which also has some scalars so can be used from Dense or Simp.

Abstract base class which also has some scalars so can be used from Dense or Simp.

Derived classes: CoinDenseFactorization, CoinOslFactorization, CoinSimpFactorization

Public Methods

CoinOtherFactorization

Default constructor.

 CoinOtherFactorization()

CoinOtherFactorization

Copy constructor.

 CoinOtherFactorization(const CoinOtherFactorization & other)

Parameters:

~CoinOtherFactorization

Destructor.

 ~CoinOtherFactorization()

operator=

= copy

CoinOtherFactorization & operator=(const CoinOtherFactorization & other)

Parameters:

clone

Clone.

CoinOtherFactorization * clone()

status

Returns status.

int status()

setStatus

Sets status.

void setStatus(int value)

Parameters:

pivots

Returns number of pivots since factorization.

int pivots()

setPivots

Sets number of pivots since factorization.

void setPivots(int value)

Parameters:

setNumberRows

Set number of Rows after factorization.

void setNumberRows(int value)

Parameters:

numberRows

Number of Rows after factorization.

int numberRows()

numberColumns

Total number of columns in factorization.

int numberColumns()

numberGoodColumns

Number of good columns in factorization.

int numberGoodColumns()

relaxAccuracyCheck

Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.

void relaxAccuracyCheck(double value)

Parameters:

getAccuracyCheck

double getAccuracyCheck()

maximumPivots

Maximum number of pivots between factorizations.

int maximumPivots()

maximumPivots

Set maximum pivots.

void maximumPivots(int value)

Parameters:

pivotTolerance

Pivot tolerance.

double pivotTolerance()

pivotTolerance

void pivotTolerance(double value)

Parameters:

zeroTolerance

Zero tolerance.

double zeroTolerance()

zeroTolerance

void zeroTolerance(double value)

Parameters:

slackValue

Whether slack value is +1 or -1.

double slackValue()

slackValue

void slackValue(double value)

Parameters:

elements

Returns array to put basis elements in.

CoinFactorizationDouble2 * elements()

pivotRow

Returns pivot row.

int * pivotRow()

workArea

Returns work area.

CoinFactorizationDouble2 * workArea()

intWorkArea

Returns int work area.

int * intWorkArea()

numberInRow

Number of entries in each row.

int * numberInRow()

numberInColumn

Number of entries in each column.

int * numberInColumn()

starts

Returns array to put basis starts in.

int * starts()

permuteBack

Returns permute back.

int * permuteBack()

solveMode

Get solve mode e.g.

int solveMode()

setSolveMode

Set solve mode e.g.

void setSolveMode(int value)

Parameters:

wantsTableauColumn

Returns true if wants tableauColumn in replaceColumn.

bool wantsTableauColumn()

setUsefulInformation

Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn.

void setUsefulInformation(const int * info, int whereFrom)

Parameters:

clearArrays

Get rid of all memory.

void clearArrays()

indices

Returns array to put basis indices in.

int * indices()

permute

Returns permute in.

int * permute()

numberElements

Total number of elements in factorization.

int numberElements()

getAreas

Gets space for a factorization.

void getAreas(int numberRows, int numberColumns, int maximumL, int maximumU)

Parameters:

preProcess

PreProcesses column ordered copy of basis.

void preProcess()

factor

Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.

int factor()

postProcess

Does post processing on valid factorization - putting variables on correct rows.

void postProcess(const int * sequence, int * pivotVariable)

Parameters:

makeNonSingular

Makes a non-singular basis by replacing variables.

void makeNonSingular(int * sequence, int numberColumns)

Parameters:

replaceColumn

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.

int replaceColumn(CoinIndexedVector * regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying = false, double acceptablePivot = 1.0e-8)

Parameters:

updateColumnFT

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.

int updateColumnFT(CoinIndexedVector * regionSparse, CoinIndexedVector * regionSparse2, bool noPermute = false)

Parameters:

updateColumn

This version has same effect as above with FTUpdate==false so number returned is always >=0.

int updateColumn(CoinIndexedVector * regionSparse, CoinIndexedVector * regionSparse2, bool noPermute = false)

Parameters:

updateTwoColumnsFT

does FTRAN on two columns

int updateTwoColumnsFT(CoinIndexedVector * regionSparse1, CoinIndexedVector * regionSparse2, CoinIndexedVector * regionSparse3, bool noPermute = false)

Parameters:

updateColumnTranspose

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.

int updateColumnTranspose(CoinIndexedVector * regionSparse, CoinIndexedVector * regionSparse2)

Parameters:

Source

Header: layer-0/CoinUtils/src/CoinDenseFactorization.hpp