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

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# ClpFactorization Class Reference

This just implements CoinFactorization when an ClpMatrixBase object is passed. More...

`#include <ClpFactorization.hpp>`

Inheritance diagram for ClpFactorization:

[legend]
Collaboration diagram for ClpFactorization:

[legend]
List of all members.

## Public Member Functions
bool | timeToRefactorize () const
void | setDefaultValues ()
| Sets default values.
void | goDense ()
| Go over to dense code.
factorization
int | factorize (ClpSimplex *model, int solveType, bool valuesPass)
| When part of LP - given by basic variables.
Constructors, destructor
| ClpFactorization ()
| Default constructor.
| ~ClpFactorization ()
| Destructor.
Copy method
| ClpFactorization (const ClpFactorization &)
| The copy constructor.
| ClpFactorization (const CoinFactorization &)
| The copy constructor from an CoinFactorization.
ClpFactorization & | operator= (const ClpFactorization &)
| The copy constructor.
rank one updates which do exist
int | replaceColumn (const ClpSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double pivotCheck, bool checkBeforeModifying=false)
| 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
int | updateColumnFT (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2)
| Updates one column (FTRAN) from region2 Tries to do FT update number returned is negative if no room region1 starts as zero and is zero at end.
int | updateColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const
| Updates one column (FTRAN) from region2 Tries to do FT update number returned is negative if no room region1 starts as zero and is zero at end.
int | updateColumnForDebug (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const
| For debug (no statistics update).
int | updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
| Updates one column (BTRAN) from region2 region1 starts as zero and is zero at end.
other stuff
void | goSparse ()
| makes a row copy of L for speed and to allow very sparse problems
void | cleanUp ()
| Cleans up i.e. gets rid of network basis.
bool | needToReorder () const
| Says whether to redo pivot order.
bool | networkBasis () const
| Says if a network basis.
void | getWeights (int *weights) const
| Fills weighted row list.
## Private Attributes
data
ClpNetworkBasis * | networkBasis_
| Pointer to network basis.

## Detailed Description

This just implements CoinFactorization when an ClpMatrixBase object is passed.

If a network then has a dummy CoinFactorization and a genuine ClpNetworkBasis object

Definition at line 22 of file ClpFactorization.hpp.

## Constructor & Destructor Documentation

ClpFactorization::ClpFactorization | ( |  | ) |

Default constructor.

ClpFactorization::~ClpFactorization | ( |  | ) |

Destructor.

ClpFactorization::ClpFactorization | ( | const ClpFactorization & |  | ) |

The copy constructor.

ClpFactorization::ClpFactorization | ( | const CoinFactorization & |  | ) |

The copy constructor from an CoinFactorization.

## Member Function Documentation

int ClpFactorization::factorize | ( | ClpSimplex * | 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

ClpFactorization& ClpFactorization::operator= | ( | const ClpFactorization & |  | ) |

The copy constructor.

int ClpFactorization::replaceColumn | ( | const ClpSimplex * | model,
|  | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | tableauColumn,
|  | int | pivotRow,
|  | double | pivotCheck,
|  | bool | checkBeforeModifying = `false` |
| ) |  |  |

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

int ClpFactorization::updateColumnFT | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2 |
| ) |  |  |

Updates one column (FTRAN) from region2 Tries to do FT update number returned is negative if no room region1 starts as zero and is zero at end.

Reimplemented from CoinFactorization.

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

Updates one column (FTRAN) from region2 Tries to do FT update number returned is negative if no room region1 starts as zero and is zero at end.

Reimplemented from CoinFactorization.

int ClpFactorization::updateColumnForDebug | ( | CoinIndexedVector * | regionSparse,
|  | CoinIndexedVector * | regionSparse2,
|  | bool | noPermute = `false` |
| ) |  |  | const

For debug (no statistics update).

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

Updates one column (BTRAN) from region2 region1 starts as zero and is zero at end.

Reimplemented from CoinFactorization.

bool ClpFactorization::timeToRefactorize | ( |  | ) | const`[inline]`

Definition at line 256 of file ClpFactorization.hpp.

void ClpFactorization::setDefaultValues | ( |  | ) | `[inline]`

Sets default values.

Definition at line 263 of file ClpFactorization.hpp.

void ClpFactorization::goDense | ( |  | ) | `[inline]`

Go over to dense code.

Definition at line 270 of file ClpFactorization.hpp.

void ClpFactorization::goSparse | ( |  | ) |

makes a row copy of L for speed and to allow very sparse problems

Reimplemented from CoinFactorization.

void ClpFactorization::cleanUp | ( |  | ) |

Cleans up i.e. gets rid of network basis.

bool ClpFactorization::needToReorder | ( |  | ) | const

Says whether to redo pivot order.

bool ClpFactorization::networkBasis | ( |  | ) | const`[inline]`

Says if a network basis.

Definition at line 284 of file ClpFactorization.hpp.

void ClpFactorization::getWeights | ( | int * | weights | ) | const

Fills weighted row list.

## Member Data Documentation

ClpNetworkBasis* ClpFactorization::networkBasis_`[private]`

Pointer to network basis.

Definition at line 302 of file ClpFactorization.hpp.

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

- /home/coin/SVN-release/Osi-0.98.1/Clp/src/ClpFactorization.hpp