ClpFactorization Class Reference

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

#include <ClpFactorization.hpp>

Inheritance diagram for ClpFactorization:
Inheritance graph
[legend]
Collaboration diagram for ClpFactorization:
Collaboration graph
[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.
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 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.

Reimplemented from CoinFactorization.

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

Pointer to network basis.

Definition at line 302 of file ClpFactorization.hpp.


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

Generated on 15 Mar 2015 for Coin-All by  doxygen 1.6.1