# CoinOtherFactorization Class Reference

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

`#include <CoinDenseFactorization.hpp>`

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

List of all members.

## Public Member Functions
Constructors and destructor and copy
| CoinOtherFactorization ()
| Default constructor.
| CoinOtherFactorization (const CoinOtherFactorization &other)
| Copy constructor.
virtual | ~CoinOtherFactorization ()
| Destructor.
CoinOtherFactorization & | operator= (const CoinOtherFactorization &other)
| = copy
virtual CoinOtherFactorization * | clone () const =0
| Clone.
general stuff such as status
int | status () const
| Returns status.
void | setStatus (int value)
| Sets status.
int | pivots () const
| Returns number of pivots since factorization.
void | setPivots (int value)
| Sets number of pivots since factorization.
void | setNumberRows (int value)
| Set number of Rows after factorization.
int | numberRows () const
| Number of Rows after factorization.
int | numberColumns () const
| Total number of columns in factorization.
int | numberGoodColumns () const
| Number of good columns in factorization.
void | relaxAccuracyCheck (double value)
| Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
double | getAccuracyCheck () const
int | maximumPivots () const
| Maximum number of pivots between factorizations.
virtual void | maximumPivots (int value)
| Set maximum pivots.
double | pivotTolerance () const
| Pivot tolerance.
void | pivotTolerance (double value)
double | zeroTolerance () const
| Zero tolerance.
void | zeroTolerance (double value)
double | slackValue () const
| Whether slack value is +1 or -1.
void | slackValue (double value)
virtual CoinFactorizationDouble * | elements () const
| Returns array to put basis elements in.
virtual int * | pivotRow () const
| Returns pivot row.
virtual CoinFactorizationDouble * | workArea () const
| Returns work area.
virtual int * | intWorkArea () const
| Returns int work area.
virtual int * | numberInRow () const
| Number of entries in each row.
virtual int * | numberInColumn () const
| Number of entries in each column.
virtual CoinBigIndex * | starts () const
| Returns array to put basis starts in.
virtual int * | permuteBack () const
| Returns permute back.
int | solveMode () const
| Get solve mode e.g.
void | setSolveMode (int value)
| Set solve mode e.g.
virtual bool | wantsTableauColumn () const
| Returns true if wants tableauColumn in replaceColumn.
virtual void | setUsefulInformation (const int *info, int whereFrom)
| Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn.
virtual void | clearArrays ()
| Get rid of all memory.
virtual general stuff such as permutation
virtual int * | indices () const =0
| Returns array to put basis indices in.
virtual int * | permute () const =0
| Returns permute in.
virtual int | numberElements () const =0
| Total number of elements in factorization.
Do factorization - public
virtual void | getAreas (int numberRows, int numberColumns, CoinBigIndex maximumL, CoinBigIndex maximumU)=0
| Gets space for a factorization.
virtual void | preProcess ()=0
| PreProcesses column ordered copy of basis.
virtual int | factor ()=0
| Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.
virtual void | postProcess (const int *sequence, int *pivotVariable)=0
| Does post processing on valid factorization - putting variables on correct rows.
virtual void | makeNonSingular (int *sequence, int numberColumns)=0
| Makes a non-singular basis by replacing variables.
rank one updates which do exist
virtual int | replaceColumn (CoinIndexedVector *regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying=false, double acceptablePivot=1.0e-8)=0
| 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.
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)=0
| 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.
virtual int | updateColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const =0
| This version has same effect as above with FTUpdate==false so number returned is always >=0.
virtual int | updateTwoColumnsFT (CoinIndexedVector *regionSparse1, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3, bool noPermute=false)=0
| does FTRAN on two columns
virtual int | updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const =0
| 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.
## Protected Attributes
data
double | pivotTolerance_
| Pivot tolerance.
double | zeroTolerance_
| Zero tolerance.
double | slackValue_
| Whether slack value is +1 or -1.
double | relaxCheck_
| Relax check on accuracy in replaceColumn.
CoinBigIndex | factorElements_
| Number of elements after factorization.
int | numberRows_
| Number of Rows in factorization.
int | numberColumns_
| Number of Columns in factorization.
int | numberGoodU_
| Number factorized in U (not row singletons).
int | maximumPivots_
| Maximum number of pivots before factorization.
int | numberPivots_
| Number pivots since last factorization.
int | status_
| Status of factorization.
int | maximumRows_
| Maximum rows ever (i.e. use to copy arrays etc).
CoinBigIndex | maximumSpace_
| Maximum length of iterating area.
int * | pivotRow_
| Pivot row.
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.
CoinFactorizationDouble * | workArea_
| Work area of numberRows_.
int | solveMode_
| Solve mode e.g.

## Detailed Description

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

Definition at line 27 of file CoinDenseFactorization.hpp.

## Constructor & Destructor Documentation

CoinOtherFactorization::CoinOtherFactorization | ( |  | ) |

Default constructor.

CoinOtherFactorization::CoinOtherFactorization | ( | const CoinOtherFactorization & | other | ) |

Copy constructor.

virtual CoinOtherFactorization::~CoinOtherFactorization | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

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

= copy

Reimplemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual CoinOtherFactorization* CoinOtherFactorization::clone | ( |  | ) | const`[pure virtual]`

Clone.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

int CoinOtherFactorization::status | ( |  | ) | const`[inline]`

Returns status.

Definition at line 50 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setStatus | ( | int | value | ) | `[inline]`

Sets status.

Definition at line 54 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::pivots | ( |  | ) | const`[inline]`

Returns number of pivots since factorization.

Definition at line 57 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setPivots | ( | int | value | ) | `[inline]`

Sets number of pivots since factorization.

Definition at line 61 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setNumberRows | ( | int | value | ) | `[inline]`

Set number of Rows after factorization.

Definition at line 64 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberRows | ( |  | ) | const`[inline]`

Number of Rows after factorization.

Definition at line 67 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberColumns | ( |  | ) | const`[inline]`

Total number of columns in factorization.

Definition at line 71 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberGoodColumns | ( |  | ) | const`[inline]`

Number of good columns in factorization.

Definition at line 75 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::relaxAccuracyCheck | ( | double | value | ) | `[inline]`

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

Definition at line 79 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::getAccuracyCheck | ( |  | ) | const`[inline]`

Definition at line 81 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::maximumPivots | ( |  | ) | const`[inline]`

Maximum number of pivots between factorizations.

Definition at line 84 of file CoinDenseFactorization.hpp.

virtual void CoinOtherFactorization::maximumPivots | ( | int | value | ) | `[virtual]`

Set maximum pivots.

Reimplemented in CoinOslFactorization.

double CoinOtherFactorization::pivotTolerance | ( |  | ) | const`[inline]`

Pivot tolerance.

Definition at line 91 of file CoinDenseFactorization.hpp.

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

double CoinOtherFactorization::zeroTolerance | ( |  | ) | const`[inline]`

Zero tolerance.

Definition at line 96 of file CoinDenseFactorization.hpp.

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

double CoinOtherFactorization::slackValue | ( |  | ) | const`[inline]`

Whether slack value is +1 or -1.

Definition at line 102 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::slackValue | ( | double | value | ) |

virtual CoinFactorizationDouble* CoinOtherFactorization::elements | ( |  | ) | const`[virtual]`

Returns array to put basis elements in.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::pivotRow | ( |  | ) | const`[virtual]`

Returns pivot row.

Reimplemented in CoinOslFactorization.

virtual CoinFactorizationDouble* CoinOtherFactorization::workArea | ( |  | ) | const`[virtual]`

Returns work area.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::intWorkArea | ( |  | ) | const`[virtual]`

Returns int work area.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::numberInRow | ( |  | ) | const`[virtual]`

Number of entries in each row.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::numberInColumn | ( |  | ) | const`[virtual]`

Number of entries in each column.

Reimplemented in CoinOslFactorization.

virtual CoinBigIndex* CoinOtherFactorization::starts | ( |  | ) | const`[virtual]`

Returns array to put basis starts in.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::permuteBack | ( |  | ) | const`[virtual]`

Returns permute back.

Reimplemented in CoinOslFactorization.

int CoinOtherFactorization::solveMode | ( |  | ) | const`[inline]`

Get solve mode e.g.

0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated

Definition at line 127 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setSolveMode | ( | int | value | ) | `[inline]`

Set solve mode e.g.

0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated

Definition at line 133 of file CoinDenseFactorization.hpp.

virtual bool CoinOtherFactorization::wantsTableauColumn | ( |  | ) | const`[virtual]`

Returns true if wants tableauColumn in replaceColumn.

Reimplemented in CoinOslFactorization.

virtual void CoinOtherFactorization::setUsefulInformation | ( | const int * | info,
|  | int | whereFrom |
| ) |  |  | `[virtual]`

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

Reimplemented in CoinOslFactorization.

virtual void CoinOtherFactorization::clearArrays | ( |  | ) | `[inline, virtual]`

Get rid of all memory.

Reimplemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

Definition at line 143 of file CoinDenseFactorization.hpp.

virtual int* CoinOtherFactorization::indices | ( |  | ) | const`[pure virtual]`

Returns array to put basis indices in.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int* CoinOtherFactorization::permute | ( |  | ) | const`[pure virtual]`

Returns permute in.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::numberElements | ( |  | ) | const`[pure virtual]`

Total number of elements in factorization.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::getAreas | ( | int | numberRows,
|  | int | numberColumns,
|  | CoinBigIndex | maximumL,
|  | CoinBigIndex | maximumU |
| ) |  |  | `[pure virtual]`

Gets space for a factorization.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::preProcess | ( |  | ) | `[pure virtual]`

PreProcesses column ordered copy of basis.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::factor | ( |  | ) | `[pure virtual]`

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

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::postProcess | ( | const int * | sequence,
|  | int * | pivotVariable |
| ) |  |  | `[pure virtual]`

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

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::makeNonSingular | ( | int * | sequence,
|  | int | numberColumns |
| ) |  |  | `[pure virtual]`

Makes a non-singular basis by replacing variables.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::replaceColumn | ( | CoinIndexedVector * | regionSparse,
|  | int | pivotRow,
|  | double | pivotCheck,
|  | bool | checkBeforeModifying = `false`,
|  | double | acceptablePivot = `1.0e-8` |
| ) |  |  | `[pure 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

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateColumnFT | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2,
|  | bool | noPermute = `false` |
| ) |  |  | `[pure 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

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateColumn | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2,
|  | bool | noPermute = `false` |
| ) |  |  | const`[pure virtual]`

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

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateTwoColumnsFT | ( | CoinIndexedVector * | regionSparse1,
|  | CoinIndexedVector * | regionSparse2,
|  | CoinIndexedVector * | regionSparse3,
|  | bool | noPermute = `false` |
| ) |  |  | `[pure virtual]`

does FTRAN on two columns

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateColumnTranspose | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2 |
| ) |  |  | const`[pure 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.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

## Member Data Documentation

double CoinOtherFactorization::pivotTolerance_`[protected]`

Pivot tolerance.

Definition at line 229 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::zeroTolerance_`[protected]`

Zero tolerance.

Definition at line 231 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::slackValue_`[protected]`

Whether slack value is +1 or -1.

Definition at line 234 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::relaxCheck_`[protected]`

Relax check on accuracy in replaceColumn.

Definition at line 241 of file CoinDenseFactorization.hpp.

CoinBigIndex CoinOtherFactorization::factorElements_`[protected]`

Number of elements after factorization.

Definition at line 243 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberRows_`[protected]`

Number of Rows in factorization.

Definition at line 245 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberColumns_`[protected]`

Number of Columns in factorization.

Definition at line 247 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberGoodU_`[protected]`

Number factorized in U (not row singletons).

Definition at line 249 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::maximumPivots_`[protected]`

Maximum number of pivots before factorization.

Definition at line 251 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberPivots_`[protected]`

Number pivots since last factorization.

Definition at line 253 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::status_`[protected]`

Status of factorization.

Definition at line 255 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::maximumRows_`[protected]`

Maximum rows ever (i.e. use to copy arrays etc).

Definition at line 257 of file CoinDenseFactorization.hpp.

CoinBigIndex CoinOtherFactorization::maximumSpace_`[protected]`

Maximum length of iterating area.

Definition at line 259 of file CoinDenseFactorization.hpp.

int* CoinOtherFactorization::pivotRow_`[protected]`

Pivot row.

Definition at line 261 of file CoinDenseFactorization.hpp.

CoinFactorizationDouble* CoinOtherFactorization::elements_`[protected]`

Elements of factorization and updates length is maxR*maxR+maxSpace will always be long enough so can have nR*nR ints in maxSpace.

Definition at line 266 of file CoinDenseFactorization.hpp.

CoinFactorizationDouble* CoinOtherFactorization::workArea_`[protected]`

Work area of numberRows_.

Definition at line 268 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::solveMode_`[protected]`

Solve mode e.g.

0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated

Definition at line 273 of file CoinDenseFactorization.hpp.

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

- /home/coin/svn-release/CoinUtils-2.10.9/CoinUtils/src/CoinDenseFactorization.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines