Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

ClpFactorization Class Reference

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

#include <ClpFactorization.hpp>

List of all members.

Public Member Functions

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.
ClpFactorizationoperator= (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
ClpNetworkBasisnetworkBasis_
 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 19 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.

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.

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.

void ClpFactorization::goSparse  ) 
 

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

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 106 of file ClpFactorization.hpp.

References networkBasis_.

void ClpFactorization::getWeights int *  weights  )  const
 

Fills weighted row list.


Member Data Documentation

ClpNetworkBasis* ClpFactorization::networkBasis_ [private]
 

Pointer to network basis.

Definition at line 124 of file ClpFactorization.hpp.

Referenced by networkBasis().


The documentation for this class was generated from the following file:
Generated on Sun Jun 11 02:00:26 2006 by  doxygen 1.3.9.1