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
Public Member Functions | Protected Member Functions | Friends | List of all members
CoinSimpFactorization Class Reference

`#include <CoinSimpFactorization.hpp>`

Inheritance diagram for CoinSimpFactorization:
[legend]
Collaboration diagram for CoinSimpFactorization:
[legend]

## Public Member Functions
void | gutsOfDestructor ()
| The real work of destructor. More...
void | gutsOfInitialize ()
| The real work of constructor. More...
void | gutsOfCopy (const CoinSimpFactorization &other)
| The real work of copy. More...
void | factorize (int numberOfRows, int numberOfColumns, const int colStarts[], const int indicesRow[], const double elements[])
| calls factorization More...
int | mainLoopFactor (FactorPointers &pointers)
| main loop of factorization More...
void | copyLbyRows ()
| copies L by rows More...
void | copyUbyColumns ()
| copies U by columns More...
int | findPivot (FactorPointers &pointers, int &r, int &s, bool &ifSlack)
| finds a pivot element using Markowitz count More...
int | findPivotShCol (FactorPointers &pointers, int &r, int &s)
| finds a pivot in a shortest column More...
int | findPivotSimp (FactorPointers &pointers, int &r, int &s)
| finds a pivot in the first column available More...
void | GaussEliminate (FactorPointers &pointers, int &r, int &s)
| does Gauss elimination More...
int | findShortRow (const int column, const int length, int &minRow, int &minRowLength, FactorPointers &pointers)
| finds short row that intersects a given column More...
int | findShortColumn (const int row, const int length, int &minCol, int &minColLength, FactorPointers &pointers)
| finds short column that intersects a given row More...
double | findMaxInRrow (const int row, FactorPointers &pointers)
| finds maximum absolute value in a row More...
void | pivoting (const int pivotRow, const int pivotColumn, const double invPivot, FactorPointers &pointers)
| does pivoting More...
void | updateCurrentRow (const int pivotRow, const int row, const double multiplier, FactorPointers &pointers, int &newNonZeros)
| part of pivoting More...
void | increaseLsize ()
| allocates more space for L More...
void | increaseRowSize (const int row, const int newSize)
| allocates more space for a row of U More...
void | increaseColSize (const int column, const int newSize, const bool b)
| allocates more space for a column of U More...
void | enlargeUrow (const int numNewElements)
| allocates more space for rows of U More...
void | enlargeUcol (const int numNewElements, const bool b)
| allocates more space for columns of U More...
int | findInRow (const int row, const int column)
| finds a given row in a column More...
int | findInColumn (const int column, const int row)
| finds a given column in a row More...
void | removeRowFromActSet (const int row, FactorPointers &pointers)
| declares a row inactive More...
void | removeColumnFromActSet (const int column, FactorPointers &pointers)
| declares a column inactive More...
void | allocateSpaceForU ()
| allocates space for U More...
void | allocateSomeArrays ()
| allocates several working arrays More...
void | initialSomeNumbers ()
| initializes some numbers More...
void | Lxeqb (double *b) const
| solves L x = b More...
void | Lxeqb2 (double *b1, double *b2) const
| same as above but with two rhs More...
void | Uxeqb (double *b, double *sol) const
| solves U x = b More...
void | Uxeqb2 (double *b1, double *sol1, double *sol2, double *b2) const
| same as above but with two rhs More...
void | xLeqb (double *b) const
| solves x L = b More...
void | xUeqb (double *b, double *sol) const
| solves x U = b More...
int | LUupdate (int newBasicCol)
| updates factorization after a Simplex iteration More...
void | newEta (int row, int numNewElements)
| creates a new eta vector More...
void | copyRowPermutations ()
| makes a copy of row permutations More...
void | Hxeqb (double *b) const
| solves H x = b, where H is a product of eta matrices More...
void | Hxeqb2 (double *b1, double *b2) const
| same as above but with two rhs More...
void | xHeqb (double *b) const
| solves x H = b More...
void | ftran (double *b, double *sol, bool save) const
| does FTRAN More...
void | ftran2 (double *b1, double *sol1, double *b2, double *sol2) const
| same as above but with two columns More...
void | btran (double *b, double *sol) const
| does BTRAN More...
Constructors and destructor and copy
| CoinSimpFactorization ()
| Default constructor. More...
| CoinSimpFactorization (const CoinSimpFactorization &other)
| Copy constructor. More...
virtual | ~CoinSimpFactorization ()
| Destructor. More...
CoinSimpFactorization & | operator= (const CoinSimpFactorization &other)
| = copy More...
virtual CoinOtherFactorization * | clone () const
| Clone. More...
Do factorization - public
virtual void | getAreas (int numberRows, int numberColumns, int maximumL, int maximumU)
| Gets space for a factorization. More...
virtual void | preProcess ()
| PreProcesses column ordered copy of basis. More...
virtual int | factor ()
| Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo. More...
virtual void | postProcess (const int *sequence, int *pivotVariable)
| Does post processing on valid factorization - putting variables on correct rows. More...
virtual void | makeNonSingular (int *sequence, int numberColumns)
| Makes a non-singular basis by replacing variables. More...
general stuff such as status
virtual int | numberElements () const
| Total number of elements in factorization. More...
double | maximumCoefficient () const
| Returns maximum absolute value in factorization. More...
rank one updates which do exist
virtual int | replaceColumn (CoinIndexedVector *regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying=false, double acceptablePivot=1.0e-8)
| 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. More...
various uses of factorization (return code number elements)
which user may want to know about
virtual int | updateColumnFT (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false)
| 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. More...
virtual int | updateColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const
| This version has same effect as above with FTUpdate==false so number returned is always >=0. More...
virtual int | updateTwoColumnsFT (CoinIndexedVector *regionSparse1, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3, bool noPermute=false)
| does FTRAN on two columns More...
int | upColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false, bool save=false) const
| does updatecolumn if save==true keeps column for replace column More...
virtual int | updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
| 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. More...
int | upColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
| does updateColumnTranspose, the other is a wrapper More...
various uses of factorization
*** Below this user may not want to know about which user may not want to know about (left over from my LP code)
void | clearArrays ()
| Get rid of all memory. More...
int * | indices () const
| Returns array to put basis indices in. More...
virtual int * | permute () const
| Returns permute in. More...
Public Member Functions inherited from CoinOtherFactorization
| CoinOtherFactorization ()
| Default constructor. More...
| CoinOtherFactorization (const CoinOtherFactorization &other)
| Copy constructor. More...
virtual | ~CoinOtherFactorization ()
| Destructor. More...
CoinOtherFactorization & | operator= (const CoinOtherFactorization &other)
| = copy More...
int | status () const
| Returns status. More...
void | setStatus (int value)
| Sets status. More...
int | pivots () const
| Returns number of pivots since factorization. More...
void | setPivots (int value)
| Sets number of pivots since factorization. More...
void | setNumberRows (int value)
| Set number of Rows after factorization. More...
int | numberRows () const
| Number of Rows after factorization. More...
int | numberColumns () const
| Total number of columns in factorization. More...
int | numberGoodColumns () const
| Number of good columns in factorization. More...
void | relaxAccuracyCheck (double value)
| Allows change of pivot accuracy check 1.0 == none >1.0 relaxed. More...
double | getAccuracyCheck () const
int | maximumPivots () const
| Maximum number of pivots between factorizations. More...
virtual void | maximumPivots (int value)
| Set maximum pivots. More...
double | pivotTolerance () const
| Pivot tolerance. More...
void | pivotTolerance (double value)
double | zeroTolerance () const
| Zero tolerance. More...
void | zeroTolerance (double value)
double | slackValue () const
| Whether slack value is +1 or -1. More...
void | slackValue (double value)
virtual CoinFactorizationDouble * | elements () const
| Returns array to put basis elements in. More...
virtual int * | pivotRow () const
| Returns pivot row. More...
virtual CoinFactorizationDouble * | workArea () const
| Returns work area. More...
virtual int * | intWorkArea () const
| Returns int work area. More...
virtual int * | numberInRow () const
| Number of entries in each row. More...
virtual int * | numberInColumn () const
| Number of entries in each column. More...
virtual int * | starts () const
| Returns array to put basis starts in. More...
virtual int * | permuteBack () const
| Returns permute back. More...
int | solveMode () const
| Get solve mode e.g. More...
void | setSolveMode (int value)
| Set solve mode e.g. More...
virtual bool | wantsTableauColumn () const
| Returns true if wants tableauColumn in replaceColumn. More...
virtual void | setUsefulInformation (const int *info, int whereFrom)
| Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn. More...

## Protected Member Functions
int | checkPivot (double saveFromU, double oldPivot) const
| More...

## Protected Attributes
data
double * | denseVector_
| work array (should be initialized to zero) More...
double * | workArea2_
| work array More...
double * | workArea3_
| work array More...
int * | vecLabels_
| array of labels (should be initialized to zero) More...
int * | indVector_
| array of indices More...
double * | auxVector_
| auxiliary vector More...
int * | auxInd_
| auxiliary vector More...
double * | vecKeep_
| vector to keep for LUupdate More...
int * | indKeep_
| indices of this vector More...
int | keepSize_
| number of nonzeros More...
int * | LrowStarts_
| Starts of the rows of L. More...
int * | LrowLengths_
| Lengths of the rows of L. More...
double * | Lrows_
| L by rows. More...
int * | LrowInd_
| indices in the rows of L More...
int | LrowSize_
| Size of Lrows_;. More...
int | LrowCap_
| Capacity of Lrows_. More...
int * | LcolStarts_
| Starts of the columns of L. More...
int * | LcolLengths_
| Lengths of the columns of L. More...
double * | Lcolumns_
| L by columns. More...
int * | LcolInd_
| indices in the columns of L More...
int | LcolSize_
| numbers of elements in L More...
int | LcolCap_
| maximum capacity of L More...
int * | UrowStarts_
| Starts of the rows of U. More...
int * | UrowLengths_
| Lengths of the rows of U. More...
double * | Urows_
| U by rows. More...
int * | UrowInd_
| Indices in the rows of U. More...
int | UrowMaxCap_
| maximum capacity of Urows More...
int | UrowEnd_
| number of used places in Urows More...
int | firstRowInU_
| first row in U More...
int | lastRowInU_
| last row in U More...
int * | prevRowInU_
| previous row in U More...
int * | nextRowInU_
| next row in U More...
int * | UcolStarts_
| Starts of the columns of U. More...
int * | UcolLengths_
| Lengths of the columns of U. More...
double * | Ucolumns_
| U by columns. More...
int * | UcolInd_
| Indices in the columns of U. More...
int * | prevColInU_
| previous column in U More...
int * | nextColInU_
| next column in U More...
int | firstColInU_
| first column in U More...
int | lastColInU_
| last column in U More...
int | UcolMaxCap_
| maximum capacity of Ucolumns_ More...
int | UcolEnd_
| last used position in Ucolumns_ More...
int * | colSlack_
| indicator of slack variables More...
double * | invOfPivots_
| inverse values of the elements of diagonal of U More...
int * | colOfU_
| permutation of columns More...
int * | colPosition_
| position of column after permutation More...
int * | rowOfU_
| permutations of rows More...
int * | rowPosition_
| position of row after permutation More...
int * | secRowOfU_
| permutations of rows during LUupdate More...
int * | secRowPosition_
| position of row after permutation during LUupdate More...
int * | EtaPosition_
| position of Eta vector More...
int * | EtaStarts_
| Starts of eta vectors. More...
int * | EtaLengths_
| Lengths of eta vectors. More...
int * | EtaInd_
| columns of eta vectors More...
double * | Eta_
| elements of eta vectors More...
int | EtaSize_
| number of elements in Eta_ More...
int | lastEtaRow_
| last eta row More...
int | maxEtaRows_
| maximum number of eta vectors More...
int | EtaMaxCap_
| Capacity of Eta_. More...
int | minIncrease_
| minimum storage increase More...
double | updateTol_
| maximum size for the diagonal of U after update More...
bool | doSuhlHeuristic_
| do Shul heuristic More...
double | maxU_
| maximum of U More...
double | maxGrowth_
| bound on the growth rate More...
double | maxA_
| maximum of A More...
int | pivotCandLimit_
| maximum number of candidates for pivot More...
int | numberSlacks_
| number of slacks in basis More...
int | firstNumberSlacks_
| number of slacks in irst basis More...
Protected Attributes inherited from CoinOtherFactorization
double | pivotTolerance_
| Pivot tolerance. More...
double | zeroTolerance_
| Zero tolerance. More...
double | slackValue_
| Whether slack value is +1 or -1. More...
double | relaxCheck_
| Relax check on accuracy in replaceColumn. More...
int | factorElements_
| Number of elements after factorization. More...
int | numberRows_
| Number of Rows in factorization. More...
int | numberColumns_
| Number of Columns in factorization. More...
int | numberGoodU_
| Number factorized in U (not row singletons) More...
int | maximumPivots_
| Maximum number of pivots before factorization. More...
int | numberPivots_
| Number pivots since last factorization. More...
int | status_
| Status of factorization. More...
int | maximumRows_
| Maximum rows ever (i.e. use to copy arrays etc) More...
int | maximumSpace_
| Maximum length of iterating area. More...
int * | pivotRow_
| Pivot row. More...
CoinFactorizationDouble * | elements_
| Elements of factorization and updates length is maxR*maxR+maxSpace will always be long enough so can have nR*nR ints in maxSpace. More...
CoinFactorizationDouble * | workArea_
| Work area of numberRows_. More...
int | solveMode_
| Solve mode e.g. More...

## Friends
void | CoinSimpFactorizationUnitTest (const std::string &mpsDir)

## Detailed Description

Definition at line 37 of file CoinSimpFactorization.hpp.

## Constructor & Destructor Documentation

CoinSimpFactorization::CoinSimpFactorization | ( |  | ) |

Default constructor.

CoinSimpFactorization::CoinSimpFactorization | ( | const CoinSimpFactorization & | other | ) |

Copy constructor.

virtual CoinSimpFactorization::~CoinSimpFactorization | ( |  | ) |
| virtual

Destructor.

## Member Function Documentation

CoinSimpFactorization& CoinSimpFactorization::operator= | ( | const CoinSimpFactorization & | other | ) |

= copy

virtual CoinOtherFactorization* CoinSimpFactorization::clone | ( |  | ) | const
| virtual

Clone.

Implements CoinOtherFactorization.

virtual void CoinSimpFactorization::getAreas | ( | int | numberRows,
|  | int | numberColumns,
|  | int | maximumL,
|  | int | maximumU
| ) |  |
| virtual

Gets space for a factorization.

Implements CoinOtherFactorization.

virtual void CoinSimpFactorization::preProcess | ( |  | ) |
| virtual

PreProcesses column ordered copy of basis.

Implements CoinOtherFactorization.

virtual int CoinSimpFactorization::factor | ( |  | ) |
| virtual

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

Implements CoinOtherFactorization.

virtual void CoinSimpFactorization::postProcess | ( | const int * | sequence,
|  | int * | pivotVariable
| ) |  |
| virtual

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

Implements CoinOtherFactorization.

virtual void CoinSimpFactorization::makeNonSingular | ( | int * | sequence,
|  | int | numberColumns
| ) |  |
| virtual

Makes a non-singular basis by replacing variables.

Implements CoinOtherFactorization.

virtual int CoinSimpFactorization::numberElements | ( |  | ) | const
| inline virtual

Total number of elements in factorization.

Implements CoinOtherFactorization.

Definition at line 81 of file CoinSimpFactorization.hpp.

double CoinSimpFactorization::maximumCoefficient | ( |  | ) | const

Returns maximum absolute value in factorization.

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

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.

Whether to set this depends on speed considerations. You could just do this on first iteration after factorization and thereafter re-factorize partial update already in U

Implements CoinOtherFactorization.

virtual int CoinSimpFactorization::updateColumnFT | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2,
|  | bool | noPermute = `false`
| ) |  |
| virtual

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.

Note - if regionSparse2 packed on input - will be packed on output

Implements CoinOtherFactorization.

virtual int CoinSimpFactorization::updateColumn | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2,
|  | bool | noPermute = `false`
| ) |  | const
| virtual

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

Implements CoinOtherFactorization.

virtual int CoinSimpFactorization::updateTwoColumnsFT | ( | CoinIndexedVector * | regionSparse1,
|  | CoinIndexedVector * | regionSparse2,
|  | CoinIndexedVector * | regionSparse3,
|  | bool | noPermute = `false`
| ) |  |
| virtual

does FTRAN on two columns

Implements CoinOtherFactorization.

int CoinSimpFactorization::upColumn | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2,
|  | bool | noPermute = `false`,
|  | bool | save = `false`
| ) |  | const

does updatecolumn if save==true keeps column for replace column

virtual int CoinSimpFactorization::updateColumnTranspose | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2
| ) |  | const
| virtual

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.

Implements CoinOtherFactorization.

int CoinSimpFactorization::upColumnTranspose | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2
| ) |  | const

does updateColumnTranspose, the other is a wrapper

void CoinSimpFactorization::clearArrays | ( |  | ) |
| inline virtual

Get rid of all memory.

Reimplemented from CoinOtherFactorization.

Definition at line 150 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::indices | ( |  | ) | const
| inline virtual

Returns array to put basis indices in.

Implements CoinOtherFactorization.

Definition at line 155 of file CoinSimpFactorization.hpp.

virtual int* CoinSimpFactorization::permute | ( |  | ) | const
| inline virtual

Returns permute in.

Implements CoinOtherFactorization.

Definition at line 160 of file CoinSimpFactorization.hpp.

void CoinSimpFactorization::gutsOfDestructor | ( |  | ) |

The real work of destructor.

void CoinSimpFactorization::gutsOfInitialize | ( |  | ) |

The real work of constructor.

void CoinSimpFactorization::gutsOfCopy | ( | const CoinSimpFactorization & | other | ) |

The real work of copy.

void CoinSimpFactorization::factorize | ( | int | numberOfRows,
|  | int | numberOfColumns,
|  | const int | colStarts[],
|  | const int | indicesRow[],
|  | const double | elements[]
| ) |  |

calls factorization

int CoinSimpFactorization::mainLoopFactor | ( | FactorPointers & | pointers | ) |

main loop of factorization

void CoinSimpFactorization::copyLbyRows | ( |  | ) |

copies L by rows

void CoinSimpFactorization::copyUbyColumns | ( |  | ) |

copies U by columns

int CoinSimpFactorization::findPivot | ( | FactorPointers & | pointers,
|  | int & | r,
|  | int & | s,
|  | bool & | ifSlack
| ) |  |

finds a pivot element using Markowitz count

int CoinSimpFactorization::findPivotShCol | ( | FactorPointers & | pointers,
|  | int & | r,
|  | int & | s
| ) |  |

finds a pivot in a shortest column

int CoinSimpFactorization::findPivotSimp | ( | FactorPointers & | pointers,
|  | int & | r,
|  | int & | s
| ) |  |

finds a pivot in the first column available

void CoinSimpFactorization::GaussEliminate | ( | FactorPointers & | pointers,
|  | int & | r,
|  | int & | s
| ) |  |

does Gauss elimination

int CoinSimpFactorization::findShortRow | ( | const int | column,
|  | const int | length,
|  | int & | minRow,
|  | int & | minRowLength,
|  | FactorPointers & | pointers
| ) |  |

finds short row that intersects a given column

int CoinSimpFactorization::findShortColumn | ( | const int | row,
|  | const int | length,
|  | int & | minCol,
|  | int & | minColLength,
|  | FactorPointers & | pointers
| ) |  |

finds short column that intersects a given row

double CoinSimpFactorization::findMaxInRrow | ( | const int | row,
|  | FactorPointers & | pointers
| ) |  |

finds maximum absolute value in a row

void CoinSimpFactorization::pivoting | ( | const int | pivotRow,
|  | const int | pivotColumn,
|  | const double | invPivot,
|  | FactorPointers & | pointers
| ) |  |

does pivoting

void CoinSimpFactorization::updateCurrentRow | ( | const int | pivotRow,
|  | const int | row,
|  | const double | multiplier,
|  | FactorPointers & | pointers,
|  | int & | newNonZeros
| ) |  |

part of pivoting

void CoinSimpFactorization::increaseLsize | ( |  | ) |

allocates more space for L

void CoinSimpFactorization::increaseRowSize | ( | const int | row,
|  | const int | newSize
| ) |  |

allocates more space for a row of U

void CoinSimpFactorization::increaseColSize | ( | const int | column,
|  | const int | newSize,
|  | const bool | b
| ) |  |

allocates more space for a column of U

void CoinSimpFactorization::enlargeUrow | ( | const int | numNewElements | ) |

allocates more space for rows of U

void CoinSimpFactorization::enlargeUcol | ( | const int | numNewElements,
|  | const bool | b
| ) |  |

allocates more space for columns of U

int CoinSimpFactorization::findInRow | ( | const int | row,
|  | const int | column
| ) |  |

finds a given row in a column

int CoinSimpFactorization::findInColumn | ( | const int | column,
|  | const int | row
| ) |  |

finds a given column in a row

void CoinSimpFactorization::removeRowFromActSet | ( | const int | row,
|  | FactorPointers & | pointers
| ) |  |

declares a row inactive

void CoinSimpFactorization::removeColumnFromActSet | ( | const int | column,
|  | FactorPointers & | pointers
| ) |  |

declares a column inactive

void CoinSimpFactorization::allocateSpaceForU | ( |  | ) |

allocates space for U

void CoinSimpFactorization::allocateSomeArrays | ( |  | ) |

allocates several working arrays

void CoinSimpFactorization::initialSomeNumbers | ( |  | ) |

initializes some numbers

void CoinSimpFactorization::Lxeqb | ( | double * | b | ) | const

solves L x = b

void CoinSimpFactorization::Lxeqb2 | ( | double * | b1,
|  | double * | b2
| ) |  | const

same as above but with two rhs

void CoinSimpFactorization::Uxeqb | ( | double * | b,
|  | double * | sol
| ) |  | const

solves U x = b

void CoinSimpFactorization::Uxeqb2 | ( | double * | b1,
|  | double * | sol1,
|  | double * | sol2,
|  | double * | b2
| ) |  | const

same as above but with two rhs

void CoinSimpFactorization::xLeqb | ( | double * | b | ) | const

solves x L = b

void CoinSimpFactorization::xUeqb | ( | double * | b,
|  | double * | sol
| ) |  | const

solves x U = b

int CoinSimpFactorization::LUupdate | ( | int | newBasicCol | ) |

updates factorization after a Simplex iteration

void CoinSimpFactorization::newEta | ( | int | row,
|  | int | numNewElements
| ) |  |

creates a new eta vector

void CoinSimpFactorization::copyRowPermutations | ( |  | ) |

makes a copy of row permutations

void CoinSimpFactorization::Hxeqb | ( | double * | b | ) | const

solves H x = b, where H is a product of eta matrices

void CoinSimpFactorization::Hxeqb2 | ( | double * | b1,
|  | double * | b2
| ) |  | const

same as above but with two rhs

void CoinSimpFactorization::xHeqb | ( | double * | b | ) | const

solves x H = b

void CoinSimpFactorization::ftran | ( | double * | b,
|  | double * | sol,
|  | bool | save
| ) |  | const

does FTRAN

void CoinSimpFactorization::ftran2 | ( | double * | b1,
|  | double * | sol1,
|  | double * | b2,
|  | double * | sol2
| ) |  | const

same as above but with two columns

void CoinSimpFactorization::btran | ( | double * | b,
|  | double * | sol
| ) |  | const

does BTRAN

int CoinSimpFactorization::checkPivot | ( | double | saveFromU,
|  | double | oldPivot
| ) |  | const
| protected

Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular

## Friends And Related Function Documentation

void CoinSimpFactorizationUnitTest | ( | const std::string & | mpsDir | ) |
| friend

## Member Data Documentation

double* CoinSimpFactorization::denseVector_
| protected

work array (should be initialized to zero)

Definition at line 274 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::workArea2_
| protected

work array

Definition at line 276 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::workArea3_
| protected

work array

Definition at line 278 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::vecLabels_
| protected

array of labels (should be initialized to zero)

Definition at line 280 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::indVector_
| protected

array of indices

Definition at line 282 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::auxVector_
| protected

auxiliary vector

Definition at line 285 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::auxInd_
| protected

auxiliary vector

Definition at line 287 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::vecKeep_
| protected

vector to keep for LUupdate

Definition at line 290 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::indKeep_
| protected

indices of this vector

Definition at line 292 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::keepSize_
| mutable protected

number of nonzeros

Definition at line 294 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::LrowStarts_
| protected

Starts of the rows of L.

Definition at line 297 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::LrowLengths_
| protected

Lengths of the rows of L.

Definition at line 299 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::Lrows_
| protected

L by rows.

Definition at line 301 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::LrowInd_
| protected

indices in the rows of L

Definition at line 303 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::LrowSize_
| protected

Size of Lrows_;.

Definition at line 305 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::LrowCap_
| protected

Capacity of Lrows_.

Definition at line 307 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::LcolStarts_
| protected

Starts of the columns of L.

Definition at line 310 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::LcolLengths_
| protected

Lengths of the columns of L.

Definition at line 312 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::Lcolumns_
| protected

L by columns.

Definition at line 314 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::LcolInd_
| protected

indices in the columns of L

Definition at line 316 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::LcolSize_
| protected

numbers of elements in L

Definition at line 318 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::LcolCap_
| protected

maximum capacity of L

Definition at line 320 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::UrowStarts_
| protected

Starts of the rows of U.

Definition at line 323 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::UrowLengths_
| protected

Lengths of the rows of U.

Definition at line 325 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::Urows_
| protected

U by rows.

Definition at line 331 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::UrowInd_
| protected

Indices in the rows of U.

Definition at line 333 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::UrowMaxCap_
| protected

maximum capacity of Urows

Definition at line 335 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::UrowEnd_
| protected

number of used places in Urows

Definition at line 337 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::firstRowInU_
| protected

first row in U

Definition at line 339 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::lastRowInU_
| protected

last row in U

Definition at line 341 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::prevRowInU_
| protected

previous row in U

Definition at line 343 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::nextRowInU_
| protected

next row in U

Definition at line 345 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::UcolStarts_
| protected

Starts of the columns of U.

Definition at line 348 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::UcolLengths_
| protected

Lengths of the columns of U.

Definition at line 350 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::Ucolumns_
| protected

U by columns.

Definition at line 356 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::UcolInd_
| protected

Indices in the columns of U.

Definition at line 358 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::prevColInU_
| protected

previous column in U

Definition at line 360 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::nextColInU_
| protected

next column in U

Definition at line 362 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::firstColInU_
| protected

first column in U

Definition at line 364 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::lastColInU_
| protected

last column in U

Definition at line 366 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::UcolMaxCap_
| protected

maximum capacity of Ucolumns_

Definition at line 368 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::UcolEnd_
| protected

last used position in Ucolumns_

Definition at line 370 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::colSlack_
| protected

indicator of slack variables

Definition at line 372 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::invOfPivots_
| protected

inverse values of the elements of diagonal of U

Definition at line 375 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::colOfU_
| protected

permutation of columns

Definition at line 378 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::colPosition_
| protected

position of column after permutation

Definition at line 380 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::rowOfU_
| protected

permutations of rows

Definition at line 382 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::rowPosition_
| protected

position of row after permutation

Definition at line 384 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::secRowOfU_
| protected

permutations of rows during LUupdate

Definition at line 386 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::secRowPosition_
| protected

position of row after permutation during LUupdate

Definition at line 388 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::EtaPosition_
| protected

position of Eta vector

Definition at line 391 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::EtaStarts_
| protected

Starts of eta vectors.

Definition at line 393 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::EtaLengths_
| protected

Lengths of eta vectors.

Definition at line 395 of file CoinSimpFactorization.hpp.

int* CoinSimpFactorization::EtaInd_
| protected

columns of eta vectors

Definition at line 397 of file CoinSimpFactorization.hpp.

double* CoinSimpFactorization::Eta_
| protected

elements of eta vectors

Definition at line 399 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::EtaSize_
| protected

number of elements in Eta_

Definition at line 401 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::lastEtaRow_
| protected

last eta row

Definition at line 403 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::maxEtaRows_
| protected

maximum number of eta vectors

Definition at line 405 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::EtaMaxCap_
| protected

Capacity of Eta_.

Definition at line 407 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::minIncrease_
| protected

minimum storage increase

Definition at line 410 of file CoinSimpFactorization.hpp.

double CoinSimpFactorization::updateTol_
| protected

maximum size for the diagonal of U after update

Definition at line 412 of file CoinSimpFactorization.hpp.

bool CoinSimpFactorization::doSuhlHeuristic_
| protected

do Shul heuristic

Definition at line 414 of file CoinSimpFactorization.hpp.

double CoinSimpFactorization::maxU_
| protected

maximum of U

Definition at line 416 of file CoinSimpFactorization.hpp.

double CoinSimpFactorization::maxGrowth_
| protected

bound on the growth rate

Definition at line 418 of file CoinSimpFactorization.hpp.

double CoinSimpFactorization::maxA_
| protected

maximum of A

Definition at line 420 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::pivotCandLimit_
| protected

maximum number of candidates for pivot

Definition at line 422 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::numberSlacks_
| protected

number of slacks in basis

Definition at line 424 of file CoinSimpFactorization.hpp.

int CoinSimpFactorization::firstNumberSlacks_
| protected

number of slacks in irst basis

Definition at line 426 of file CoinSimpFactorization.hpp.

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

- /tmp/Clp-1.17.6/CoinUtils/src/CoinSimpFactorization.hpp