CoinDenseFactorization

This deals with Factorization and Updates This is a simple dense version so other people can write a better one.

This deals with Factorization and Updates This is a simple dense version so other people can write a better one.

Inheritance

Inherits from: CoinOtherFactorization

Description

I am assuming that 32 bits is enough for number of rows or columns, but CoinBigIndex may be redefined to get 64 bits.

Public Methods

CoinDenseFactorization

Default constructor.

 CoinDenseFactorization()

CoinDenseFactorization

Copy constructor.

 CoinDenseFactorization(const CoinDenseFactorization & other)

Parameters:

~CoinDenseFactorization

Destructor.

 ~CoinDenseFactorization()

operator=

= copy

CoinDenseFactorization & operator=(const CoinDenseFactorization & other)

Parameters:

clone

Clone.

CoinOtherFactorization * clone()

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:

numberElements

Total number of elements in factorization.

int numberElements()

maximumCoefficient

Returns maximum absolute value in factorization.

double maximumCoefficient()

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  = 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:

clearArrays

Get rid of all memory.

void clearArrays()

indices

Returns array to put basis indices in.

int * indices()

permute

Returns permute in.

int * permute()

gutsOfDestructor

The real work of desstructor.

void gutsOfDestructor()

gutsOfInitialize

The real work of constructor.

void gutsOfInitialize()

gutsOfCopy

The real work of copy.

void gutsOfCopy(const CoinDenseFactorization & other)

Parameters:

Source

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