Cbc  2.9.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
AbcSimplexFactorization Class Reference

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

#include <AbcSimplexFactorization.hpp>

+ Collaboration diagram for AbcSimplexFactorization:

Public Member Functions

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

Private Attributes

data
AbcSimplexmodel_
 Pointer to model. More...
 
CoinAbcAnyFactorizationcoinAbcFactorization_
 Pointer to factorization. More...
 
int forceB_
 If nonzero force use of 1,dense 2,small 3,long. More...
 
int goDenseThreshold_
 Switch to dense if number rows <= this. More...
 
int goSmallThreshold_
 Switch to small if number rows <= this. More...
 
int goLongThreshold_
 Switch to long/ordered if number rows >= this. More...
 
int numberSlacks_
 Number of slacks at last factorization. More...
 

Detailed Description

This just implements AbcFactorization when an AbcMatrix object is passed.

Definition at line 27 of file AbcSimplexFactorization.hpp.

Constructor & Destructor Documentation

AbcSimplexFactorization::AbcSimplexFactorization ( int  numberRows = 0)

Default constructor.

AbcSimplexFactorization::~AbcSimplexFactorization ( )

Destructor.

AbcSimplexFactorization::AbcSimplexFactorization ( const AbcSimplexFactorization ,
int  denseIfSmaller = 0 
)

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 )
void AbcSimplexFactorization::setFactorization ( AbcSimplexFactorization rhs)

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 80 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 91 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 109 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 182 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::updateColumnFTPart1 ( CoinIndexedVector regionSparseFT)
inline

Definition at line 184 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateColumnFTPart2 ( CoinIndexedVector regionSparseFT)
inline

Definition at line 186 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 191 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::updateColumn ( CoinIndexedVector regionSparse) const
inline

Updates one column (FTRAN)

Definition at line 196 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 202 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::updateColumnTranspose ( CoinIndexedVector regionSparse) const
inline

Updates one column (BTRAN)

Definition at line 206 of file AbcSimplexFactorization.hpp.

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

Updates one column (FTRAN)

Definition at line 209 of file AbcSimplexFactorization.hpp.

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

Updates one column (BTRAN)

Definition at line 216 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateFullColumn ( CoinIndexedVector regionSparse) const
inline

Updates one full column (FTRAN)

Definition at line 223 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateFullColumnTranspose ( CoinIndexedVector regionSparse) const
inline

Updates one full column (BTRAN)

Definition at line 226 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::updateWeights ( CoinIndexedVector regionSparse) const
inline

Updates one column for dual steepest edge weights (FTRAN)

Definition at line 229 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberElements ( ) const
inline

Total number of elements in factorization.

Definition at line 239 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::maximumPivots ( ) const
inline

Maximum number of pivots between factorizations.

Definition at line 243 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::maximumPivots ( int  value)
inline

Set maximum number of pivots between factorizations.

Definition at line 247 of file AbcSimplexFactorization.hpp.

bool AbcSimplexFactorization::usingFT ( ) const
inline

Returns true if doing FT.

Definition at line 251 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::pivots ( ) const
inline

Returns number of pivots since factorization.

Definition at line 254 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setModel ( AbcSimplex model)
inline

Sets model.

Definition at line 258 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setPivots ( int  value) const
inline

Sets number of pivots since factorization.

Definition at line 261 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::areaFactor ( ) const
inline

Whether larger areas needed.

Definition at line 265 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::areaFactor ( double  value)
inline

Set whether larger areas needed.

Definition at line 269 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::zeroTolerance ( ) const
inline

Zero tolerance.

Definition at line 273 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::zeroTolerance ( double  value)
inline

Set zero tolerance.

Definition at line 277 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 283 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setStatus ( int  value)
inline

Sets status.

Definition at line 287 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberDense ( ) const
inline

Returns number of dense rows.

Definition at line 296 of file AbcSimplexFactorization.hpp.

bool AbcSimplexFactorization::timeToRefactorize ( ) const
void AbcSimplexFactorization::clearArrays ( )
inline

Get rid of all memory.

Definition at line 304 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberRows ( ) const
inline

Number of Rows after factorization.

Definition at line 308 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberSlacks ( ) const
inline

Number of slacks at last factorization.

Definition at line 312 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::pivotTolerance ( ) const
inline

Pivot tolerance.

Definition at line 315 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::pivotTolerance ( double  value)
inline

Set pivot tolerance.

Definition at line 319 of file AbcSimplexFactorization.hpp.

double AbcSimplexFactorization::minimumPivotTolerance ( ) const
inline

Minimum pivot tolerance.

Definition at line 323 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::minimumPivotTolerance ( double  value)
inline

Set minimum pivot tolerance.

Definition at line 327 of file AbcSimplexFactorization.hpp.

double* AbcSimplexFactorization::pivotRegion ( ) const
inline

pivot region

Definition at line 331 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::almostDestructor ( )
inline

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

Delete all stuff (leaves as after CoinFactorization())

Definition at line 338 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setDenseThreshold ( int  number)

So we can temporarily switch off dense.

int AbcSimplexFactorization::getDenseThreshold ( ) const
void AbcSimplexFactorization::forceOtherFactorization ( int  which)

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

void AbcSimplexFactorization::goDenseOrSmall ( int  numberRows)

Go over to dense code.

int AbcSimplexFactorization::goDenseThreshold ( ) const
inline

Get switch to dense if number rows <= this.

Definition at line 349 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setGoDenseThreshold ( int  value)
inline

Set switch to dense if number rows <= this.

Definition at line 353 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goSmallThreshold ( ) const
inline

Get switch to small if number rows <= this.

Definition at line 357 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setGoSmallThreshold ( int  value)
inline

Set switch to small if number rows <= this.

Definition at line 361 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goLongThreshold ( ) const
inline

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

Definition at line 365 of file AbcSimplexFactorization.hpp.

void AbcSimplexFactorization::setGoLongThreshold ( int  value)
inline

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

Definition at line 369 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::typeOfFactorization ( ) const
inline

Returns type.

Definition at line 373 of file AbcSimplexFactorization.hpp.

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

Synchronize stuff.

void AbcSimplexFactorization::goSparse ( )

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

void AbcSimplexFactorization::checkMarkArrays ( ) const
inline

Definition at line 385 of file AbcSimplexFactorization.hpp.

bool AbcSimplexFactorization::needToReorder ( ) const
inline

Says whether to redo pivot order.

Definition at line 393 of file AbcSimplexFactorization.hpp.

CoinAbcAnyFactorization* AbcSimplexFactorization::factorization ( ) const
inline

Pointer to factorization.

Definition at line 396 of file AbcSimplexFactorization.hpp.

Member Data Documentation

AbcSimplex* AbcSimplexFactorization::model_
private

Pointer to model.

Definition at line 410 of file AbcSimplexFactorization.hpp.

CoinAbcAnyFactorization* AbcSimplexFactorization::coinAbcFactorization_
private

Pointer to factorization.

Definition at line 413 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::forceB_
private

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

Definition at line 427 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goDenseThreshold_
private

Switch to dense if number rows <= this.

Definition at line 429 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goSmallThreshold_
private

Switch to small if number rows <= this.

Definition at line 431 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::goLongThreshold_
private

Switch to long/ordered if number rows >= this.

Definition at line 433 of file AbcSimplexFactorization.hpp.

int AbcSimplexFactorization::numberSlacks_
private

Number of slacks at last factorization.

Definition at line 435 of file AbcSimplexFactorization.hpp.


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