Clp  trunk
AbcSimplexFactorization Class Reference

This just implements AbcFactorization when an AbcMatrix object is passed. More...

#include <AbcSimplexFactorization.hpp>

List of all members.

Public Member Functions

factorization
int factorize (AbcSimplex *model, int solveType, bool valuesPass)
 When part of LP - given by basic variables.
Constructors, destructor
 AbcSimplexFactorization (int numberRows=0)
 Default constructor.
 ~AbcSimplexFactorization ()
 Destructor.
Copy method
 AbcSimplexFactorization (const AbcSimplexFactorization &, int denseIfSmaller=0)
 The copy constructor.
AbcSimplexFactorizationoperator= (const AbcSimplexFactorization &)
void setFactorization (AbcSimplexFactorization &rhs)
 Sets factorization.
rank one updates which do exist
double checkReplacePart1 (CoinIndexedVector *regionSparse, int pivotRow)
 Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.
double checkReplacePart1 (CoinIndexedVector *regionSparse, CoinIndexedVector *partialUpdate, int pivotRow)
 Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update in vector.
void checkReplacePart1a (CoinIndexedVector *regionSparse, int pivotRow)
 Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.
double checkReplacePart1b (CoinIndexedVector *regionSparse, int pivotRow)
int checkReplacePart2 (int pivotRow, double btranAlpha, double ftranAlpha, double ftAlpha)
 Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room, 5 max pivots.
void replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double alpha)
 Replaces one Column to basis, partial update already in U.
void replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, CoinIndexedVector *partialUpdate, int pivotRow, double alpha)
 Replaces one Column to basis, partial update in vector.
various uses of factorization (return code number elements)

which user may want to know about

int updateColumnFT (CoinIndexedVector &regionSparseFT)
 Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.
int updateColumnFTPart1 (CoinIndexedVector &regionSparseFT)
void updateColumnFTPart2 (CoinIndexedVector &regionSparseFT)
void updateColumnFT (CoinIndexedVector &regionSparseFT, CoinIndexedVector &partialUpdate, int which)
 Updates one column (FTRAN) Tries to do FT update puts partial update in vector.
int updateColumn (CoinIndexedVector &regionSparse) const
 Updates one column (FTRAN)
int updateTwoColumnsFT (CoinIndexedVector &regionSparseFT, CoinIndexedVector &regionSparseOther)
 Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room.
int updateColumnTranspose (CoinIndexedVector &regionSparse) const
 Updates one column (BTRAN)
void updateColumnCpu (CoinIndexedVector &regionSparse, int whichCpu) const
 Updates one column (FTRAN)
void updateColumnTransposeCpu (CoinIndexedVector &regionSparse, int whichCpu) const
 Updates one column (BTRAN)
void updateFullColumn (CoinIndexedVector &regionSparse) const
 Updates one full column (FTRAN)
void updateFullColumnTranspose (CoinIndexedVector &regionSparse) const
 Updates one full column (BTRAN)
void updateWeights (CoinIndexedVector &regionSparse) const
 Updates one column for dual steepest edge weights (FTRAN)
Lifted from CoinFactorization
int numberElements () const
 Total number of elements in factorization.
int maximumPivots () const
 Maximum number of pivots between factorizations.
void maximumPivots (int value)
 Set maximum number of pivots between factorizations.
bool usingFT () const
 Returns true if doing FT.
int pivots () const
 Returns number of pivots since factorization.
void setPivots (int value) const
 Sets number of pivots since factorization.
double areaFactor () const
 Whether larger areas needed.
void areaFactor (double value)
 Set whether larger areas needed.
double zeroTolerance () const
 Zero tolerance.
void zeroTolerance (double value)
 Set zero tolerance.
void saferTolerances (double zeroTolerance, double pivotTolerance)
 Set tolerances to safer of existing and given.
int status () const
 Returns status.
void setStatus (int value)
 Sets status.
int numberDense () const
 Returns number of dense rows.
bool timeToRefactorize () const
void clearArrays ()
 Get rid of all memory.
int numberRows () const
 Number of Rows after factorization.
int numberSlacks () const
 Number of slacks at last factorization.
double pivotTolerance () const
 Pivot tolerance.
void pivotTolerance (double value)
 Set pivot tolerance.
double minimumPivotTolerance () const
 Minimum pivot tolerance.
void minimumPivotTolerance (double value)
 Set minimum pivot tolerance.
double * pivotRegion () const
 pivot region
void almostDestructor ()
 Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
void setDenseThreshold (int number)
 So we can temporarily switch off dense.
int getDenseThreshold () const
void forceOtherFactorization (int which)
 If nonzero force use of 1,dense 2,small 3,long.
void goDenseOrSmall (int numberRows)
 Go over to dense code.
int goDenseThreshold () const
 Get switch to dense if number rows <= this.
void setGoDenseThreshold (int value)
 Set switch to dense if number rows <= this.
int goSmallThreshold () const
 Get switch to small if number rows <= this.
void setGoSmallThreshold (int value)
 Set switch to small if number rows <= this.
int goLongThreshold () const
 Get switch to long/ordered if number rows >= this.
void setGoLongThreshold (int value)
 Set switch to long/ordered if number rows >= this.
int typeOfFactorization () const
 Returns type.
void synchronize (const ClpFactorization *otherFactorization, const AbcSimplex *model)
 Synchronize stuff.
other stuff
void goSparse ()
 makes a row copy of L for speed and to allow very sparse problems
void checkMarkArrays () const
bool needToReorder () const
 Says whether to redo pivot order.
CoinAbcAnyFactorizationfactorization () const
 Pointer to factorization.

Detailed Description

This just implements AbcFactorization when an AbcMatrix object is passed.

Definition at line 22 of file AbcSimplexFactorization.hpp.


Constructor & Destructor Documentation

Default constructor.

Destructor.

The copy constructor.


Member Function Documentation

int AbcSimplexFactorization::factorize ( AbcSimplex 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

AbcSimplexFactorization& AbcSimplexFactorization::operator= ( const AbcSimplexFactorization )

Sets factorization.

double AbcSimplexFactorization::checkReplacePart1 ( CoinIndexedVector *  regionSparse,
int  pivotRow 
) [inline]

Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.

Definition at line 75 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::checkReplacePart1 ( CoinIndexedVector *  regionSparse,
CoinIndexedVector *  partialUpdate,
int  pivotRow 
) [inline]

Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update in vector.

Definition at line 86 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::checkReplacePart1a ( CoinIndexedVector *  regionSparse,
int  pivotRow 
) [inline]

Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial update already in U.

Definition at line 94 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::checkReplacePart1b ( CoinIndexedVector *  regionSparse,
int  pivotRow 
) [inline]

Definition at line 97 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::checkReplacePart2 ( int  pivotRow,
double  btranAlpha,
double  ftranAlpha,
double  ftAlpha 
) [inline]

Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room, 5 max pivots.

Definition at line 102 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::replaceColumnPart3 ( const AbcSimplex model,
CoinIndexedVector *  regionSparse,
CoinIndexedVector *  tableauColumn,
int  pivotRow,
double  alpha 
)

Replaces one Column to basis, partial update already in U.

void AbcSimplexFactorization::replaceColumnPart3 ( const AbcSimplex model,
CoinIndexedVector *  regionSparse,
CoinIndexedVector *  tableauColumn,
CoinIndexedVector *  partialUpdate,
int  pivotRow,
double  alpha 
)

Replaces one Column to basis, partial update in vector.

int AbcSimplexFactorization::updateColumnFT ( CoinIndexedVector &  regionSparseFT) [inline]

Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.

Definition at line 175 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::updateColumnFTPart1 ( CoinIndexedVector &  regionSparseFT) [inline]

Definition at line 177 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateColumnFTPart2 ( CoinIndexedVector &  regionSparseFT) [inline]

Definition at line 179 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateColumnFT ( CoinIndexedVector &  regionSparseFT,
CoinIndexedVector &  partialUpdate,
int  which 
) [inline]

Updates one column (FTRAN) Tries to do FT update puts partial update in vector.

Definition at line 184 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::updateColumn ( CoinIndexedVector &  regionSparse) const [inline]

Updates one column (FTRAN)

Definition at line 189 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::updateTwoColumnsFT ( CoinIndexedVector &  regionSparseFT,
CoinIndexedVector &  regionSparseOther 
) [inline]

Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room.

Also updates regionOther

Definition at line 195 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::updateColumnTranspose ( CoinIndexedVector &  regionSparse) const [inline]

Updates one column (BTRAN)

Definition at line 199 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateColumnCpu ( CoinIndexedVector &  regionSparse,
int  whichCpu 
) const [inline]

Updates one column (FTRAN)

Definition at line 202 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateColumnTransposeCpu ( CoinIndexedVector &  regionSparse,
int  whichCpu 
) const [inline]

Updates one column (BTRAN)

Definition at line 205 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateFullColumn ( CoinIndexedVector &  regionSparse) const [inline]

Updates one full column (FTRAN)

Definition at line 208 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateFullColumnTranspose ( CoinIndexedVector &  regionSparse) const [inline]

Updates one full column (BTRAN)

Definition at line 211 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateWeights ( CoinIndexedVector &  regionSparse) const [inline]

Updates one column for dual steepest edge weights (FTRAN)

Definition at line 214 of file AbcSimplexFactorization.hpp.

Total number of elements in factorization.

Definition at line 220 of file AbcSimplexFactorization.hpp.

Maximum number of pivots between factorizations.

Definition at line 224 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::maximumPivots ( int  value) [inline]

Set maximum number of pivots between factorizations.

Definition at line 228 of file AbcSimplexFactorization.hpp.

bool AbcSimplexFactorization::usingFT ( ) const [inline]

Returns true if doing FT.

Definition at line 232 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::pivots ( ) const [inline]

Returns number of pivots since factorization.

Definition at line 235 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setPivots ( int  value) const [inline]

Sets number of pivots since factorization.

Definition at line 239 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::areaFactor ( ) const [inline]

Whether larger areas needed.

Definition at line 243 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::areaFactor ( double  value) [inline]

Set whether larger areas needed.

Definition at line 247 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::zeroTolerance ( ) const [inline]

Zero tolerance.

Definition at line 251 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::zeroTolerance ( double  value) [inline]

Set zero tolerance.

Definition at line 255 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::saferTolerances ( double  zeroTolerance,
double  pivotTolerance 
)

Set tolerances to safer of existing and given.

int AbcSimplexFactorization::status ( ) const [inline]

Returns status.

Definition at line 261 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setStatus ( int  value) [inline]

Sets status.

Definition at line 265 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberDense ( ) const [inline]

Returns number of dense rows.

Definition at line 274 of file AbcSimplexFactorization.hpp.

Definition at line 277 of file AbcSimplexFactorization.hpp.

Get rid of all memory.

Definition at line 281 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberRows ( ) const [inline]

Number of Rows after factorization.

Definition at line 285 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberSlacks ( ) const [inline]

Number of slacks at last factorization.

Definition at line 289 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::pivotTolerance ( ) const [inline]

Pivot tolerance.

Definition at line 292 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::pivotTolerance ( double  value) [inline]

Set pivot tolerance.

Definition at line 296 of file AbcSimplexFactorization.hpp.

Minimum pivot tolerance.

Definition at line 300 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::minimumPivotTolerance ( double  value) [inline]

Set minimum pivot tolerance.

Definition at line 304 of file AbcSimplexFactorization.hpp.

double* AbcSimplexFactorization::pivotRegion ( ) const [inline]

pivot region

Definition at line 308 of file AbcSimplexFactorization.hpp.

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

Delete all stuff (leaves as after CoinFactorization())

Definition at line 315 of file AbcSimplexFactorization.hpp.

So we can temporarily switch off dense.

If nonzero force use of 1,dense 2,small 3,long.

void AbcSimplexFactorization::goDenseOrSmall ( int  numberRows)

Go over to dense code.

Get switch to dense if number rows <= this.

Definition at line 326 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setGoDenseThreshold ( int  value) [inline]

Set switch to dense if number rows <= this.

Definition at line 330 of file AbcSimplexFactorization.hpp.

Get switch to small if number rows <= this.

Definition at line 334 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setGoSmallThreshold ( int  value) [inline]

Set switch to small if number rows <= this.

Definition at line 338 of file AbcSimplexFactorization.hpp.

Get switch to long/ordered if number rows >= this.

Definition at line 342 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setGoLongThreshold ( int  value) [inline]

Set switch to long/ordered if number rows >= this.

Definition at line 346 of file AbcSimplexFactorization.hpp.

Returns type.

Definition at line 350 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::synchronize ( const ClpFactorization otherFactorization,
const AbcSimplex model 
)

Synchronize stuff.

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

Definition at line 361 of file AbcSimplexFactorization.hpp.

bool AbcSimplexFactorization::needToReorder ( ) const [inline]

Says whether to redo pivot order.

Definition at line 365 of file AbcSimplexFactorization.hpp.

Pointer to factorization.

Definition at line 367 of file AbcSimplexFactorization.hpp.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines