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

Abstract base class which also has some scalars so can be used from Dense or Simp. More...

#include <CoinDenseFactorization.hpp>

+ Inheritance diagram for CoinOtherFactorization:

Public Member Functions

Constructors and destructor and copy
 CoinOtherFactorization ()
 Default constructor. More...
 
 CoinOtherFactorization (const CoinOtherFactorization &other)
 Copy constructor. More...
 
virtual ~CoinOtherFactorization ()
 Destructor. More...
 
CoinOtherFactorizationoperator= (const CoinOtherFactorization &other)
 = copy More...
 
virtual CoinOtherFactorizationclone () const =0
 Clone. More...
 
general stuff such as status
int status () const
 Returns status. More...
 
void setStatus (int value)
 Sets status. More...
 
int pivots () const
 Returns number of pivots since factorization. More...
 
void setPivots (int value)
 Sets number of pivots since factorization. More...
 
void setNumberRows (int value)
 Set number of Rows after factorization. More...
 
int numberRows () const
 Number of Rows after factorization. More...
 
int numberColumns () const
 Total number of columns in factorization. More...
 
int numberGoodColumns () const
 Number of good columns in factorization. More...
 
void relaxAccuracyCheck (double value)
 Allows change of pivot accuracy check 1.0 == none >1.0 relaxed. More...
 
double getAccuracyCheck () const
 
int maximumPivots () const
 Maximum number of pivots between factorizations. More...
 
virtual void maximumPivots (int value)
 Set maximum pivots. More...
 
double pivotTolerance () const
 Pivot tolerance. More...
 
void pivotTolerance (double value)
 
double zeroTolerance () const
 Zero tolerance. More...
 
void zeroTolerance (double value)
 
double slackValue () const
 Whether slack value is +1 or -1. More...
 
void slackValue (double value)
 
virtual CoinFactorizationDoubleelements () const
 Returns array to put basis elements in. More...
 
virtual int * pivotRow () const
 Returns pivot row. More...
 
virtual CoinFactorizationDoubleworkArea () const
 Returns work area. More...
 
virtual int * intWorkArea () const
 Returns int work area. More...
 
virtual int * numberInRow () const
 Number of entries in each row. More...
 
virtual int * numberInColumn () const
 Number of entries in each column. More...
 
virtual CoinBigIndexstarts () const
 Returns array to put basis starts in. More...
 
virtual int * permuteBack () const
 Returns permute back. More...
 
int solveMode () const
 Get solve mode e.g. More...
 
void setSolveMode (int value)
 Set solve mode e.g. More...
 
virtual bool wantsTableauColumn () const
 Returns true if wants tableauColumn in replaceColumn. More...
 
virtual void setUsefulInformation (const int *info, int whereFrom)
 Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn. More...
 
virtual void clearArrays ()
 Get rid of all memory. More...
 
virtual general stuff such as permutation
virtual int * indices () const =0
 Returns array to put basis indices in. More...
 
virtual int * permute () const =0
 Returns permute in. More...
 
virtual int numberElements () const =0
 Total number of elements in factorization. More...
 
Do factorization - public
virtual void getAreas (int numberRows, int numberColumns, CoinBigIndex maximumL, CoinBigIndex maximumU)=0
 Gets space for a factorization. More...
 
virtual void preProcess ()=0
 PreProcesses column ordered copy of basis. More...
 
virtual int factor ()=0
 Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo. More...
 
virtual void postProcess (const int *sequence, int *pivotVariable)=0
 Does post processing on valid factorization - putting variables on correct rows. More...
 
virtual void makeNonSingular (int *sequence, int numberColumns)=0
 Makes a non-singular basis by replacing variables. More...
 
rank one updates which do exist
virtual int replaceColumn (CoinIndexedVector *regionSparse, int pivotRow, double pivotCheck, bool checkBeforeModifying=false, double acceptablePivot=1.0e-8)=0
 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. More...
 
various uses of factorization (return code number elements)

which user may want to know about

virtual int updateColumnFT (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false)=0
 Updates one column (FTRAN) from regionSparse2 Tries to do FT update number returned is negative if no room regionSparse starts as zero and is zero at end. More...
 
virtual int updateColumn (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const =0
 This version has same effect as above with FTUpdate==false so number returned is always >=0. More...
 
virtual int updateTwoColumnsFT (CoinIndexedVector *regionSparse1, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3, bool noPermute=false)=0
 does FTRAN on two columns More...
 
virtual int updateColumnTranspose (CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const =0
 Updates one column (BTRAN) from regionSparse2 regionSparse starts as zero and is zero at end Note - if regionSparse2 packed on input - will be packed on output. More...
 

Protected Attributes

data
double pivotTolerance_
 Pivot tolerance. More...
 
double zeroTolerance_
 Zero tolerance. More...
 
double slackValue_
 Whether slack value is +1 or -1. More...
 
double relaxCheck_
 Relax check on accuracy in replaceColumn. More...
 
CoinBigIndex factorElements_
 Number of elements after factorization. More...
 
int numberRows_
 Number of Rows in factorization. More...
 
int numberColumns_
 Number of Columns in factorization. More...
 
int numberGoodU_
 Number factorized in U (not row singletons) More...
 
int maximumPivots_
 Maximum number of pivots before factorization. More...
 
int numberPivots_
 Number pivots since last factorization. More...
 
int status_
 Status of factorization. More...
 
int maximumRows_
 Maximum rows ever (i.e. use to copy arrays etc) More...
 
CoinBigIndex maximumSpace_
 Maximum length of iterating area. More...
 
int * pivotRow_
 Pivot row. More...
 
CoinFactorizationDoubleelements_
 Elements of factorization and updates length is maxR*maxR+maxSpace will always be long enough so can have nR*nR ints in maxSpace. More...
 
CoinFactorizationDoubleworkArea_
 Work area of numberRows_. More...
 
int solveMode_
 Solve mode e.g. More...
 

Detailed Description

Abstract base class which also has some scalars so can be used from Dense or Simp.

Definition at line 27 of file CoinDenseFactorization.hpp.

Constructor & Destructor Documentation

CoinOtherFactorization::CoinOtherFactorization ( )

Default constructor.

CoinOtherFactorization::CoinOtherFactorization ( const CoinOtherFactorization other)

Copy constructor.

virtual CoinOtherFactorization::~CoinOtherFactorization ( )
virtual

Destructor.

Member Function Documentation

CoinOtherFactorization& CoinOtherFactorization::operator= ( const CoinOtherFactorization other)

= copy

virtual CoinOtherFactorization* CoinOtherFactorization::clone ( ) const
pure virtual
int CoinOtherFactorization::status ( ) const
inline

Returns status.

Definition at line 50 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setStatus ( int  value)
inline

Sets status.

Definition at line 54 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::pivots ( ) const
inline

Returns number of pivots since factorization.

Definition at line 57 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setPivots ( int  value)
inline

Sets number of pivots since factorization.

Definition at line 61 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setNumberRows ( int  value)
inline

Set number of Rows after factorization.

Definition at line 64 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberRows ( ) const
inline

Number of Rows after factorization.

Definition at line 67 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberColumns ( ) const
inline

Total number of columns in factorization.

Definition at line 71 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberGoodColumns ( ) const
inline

Number of good columns in factorization.

Definition at line 75 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::relaxAccuracyCheck ( double  value)
inline

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

Definition at line 79 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::getAccuracyCheck ( ) const
inline

Definition at line 81 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::maximumPivots ( ) const
inline

Maximum number of pivots between factorizations.

Definition at line 84 of file CoinDenseFactorization.hpp.

virtual void CoinOtherFactorization::maximumPivots ( int  value)
virtual

Set maximum pivots.

Reimplemented in CoinOslFactorization.

double CoinOtherFactorization::pivotTolerance ( ) const
inline

Pivot tolerance.

Definition at line 91 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::pivotTolerance ( double  value)
double CoinOtherFactorization::zeroTolerance ( ) const
inline

Zero tolerance.

Definition at line 96 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::zeroTolerance ( double  value)
double CoinOtherFactorization::slackValue ( ) const
inline

Whether slack value is +1 or -1.

Definition at line 102 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::slackValue ( double  value)
virtual CoinFactorizationDouble* CoinOtherFactorization::elements ( ) const
virtual

Returns array to put basis elements in.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::pivotRow ( ) const
virtual

Returns pivot row.

Reimplemented in CoinOslFactorization.

virtual CoinFactorizationDouble* CoinOtherFactorization::workArea ( ) const
virtual

Returns work area.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::intWorkArea ( ) const
virtual

Returns int work area.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::numberInRow ( ) const
virtual

Number of entries in each row.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::numberInColumn ( ) const
virtual

Number of entries in each column.

Reimplemented in CoinOslFactorization.

virtual CoinBigIndex* CoinOtherFactorization::starts ( ) const
virtual

Returns array to put basis starts in.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::permuteBack ( ) const
virtual

Returns permute back.

Reimplemented in CoinOslFactorization.

int CoinOtherFactorization::solveMode ( ) const
inline

Get solve mode e.g.

0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated

Definition at line 127 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setSolveMode ( int  value)
inline

Set solve mode e.g.

0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated

Definition at line 133 of file CoinDenseFactorization.hpp.

virtual bool CoinOtherFactorization::wantsTableauColumn ( ) const
virtual

Returns true if wants tableauColumn in replaceColumn.

Reimplemented in CoinOslFactorization.

virtual void CoinOtherFactorization::setUsefulInformation ( const int *  info,
int  whereFrom 
)
virtual

Useful information for factorization 0 - iteration number whereFrom is 0 for factorize and 1 for replaceColumn.

Reimplemented in CoinOslFactorization.

virtual void CoinOtherFactorization::clearArrays ( )
inlinevirtual

Get rid of all memory.

Reimplemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

Definition at line 143 of file CoinDenseFactorization.hpp.

virtual int* CoinOtherFactorization::indices ( ) const
pure virtual

Returns array to put basis indices in.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int* CoinOtherFactorization::permute ( ) const
pure virtual

Returns permute in.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::numberElements ( ) const
pure virtual

Total number of elements in factorization.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::getAreas ( int  numberRows,
int  numberColumns,
CoinBigIndex  maximumL,
CoinBigIndex  maximumU 
)
pure virtual

Gets space for a factorization.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::preProcess ( )
pure virtual

PreProcesses column ordered copy of basis.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::factor ( )
pure virtual

Does most of factorization returning status 0 - OK -99 - needs more memory -1 - singular - use numberGoodColumns and redo.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::postProcess ( const int *  sequence,
int *  pivotVariable 
)
pure virtual

Does post processing on valid factorization - putting variables on correct rows.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual void CoinOtherFactorization::makeNonSingular ( int *  sequence,
int  numberColumns 
)
pure virtual

Makes a non-singular basis by replacing variables.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::replaceColumn ( CoinIndexedVector regionSparse,
int  pivotRow,
double  pivotCheck,
bool  checkBeforeModifying = false,
double  acceptablePivot = 1.0e-8 
)
pure virtual

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

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateColumnFT ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false 
)
pure virtual

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

Note - if regionSparse2 packed on input - will be packed on output

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateColumn ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2,
bool  noPermute = false 
) const
pure virtual

This version has same effect as above with FTUpdate==false so number returned is always >=0.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateTwoColumnsFT ( CoinIndexedVector regionSparse1,
CoinIndexedVector regionSparse2,
CoinIndexedVector regionSparse3,
bool  noPermute = false 
)
pure virtual

does FTRAN on two columns

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

virtual int CoinOtherFactorization::updateColumnTranspose ( CoinIndexedVector regionSparse,
CoinIndexedVector regionSparse2 
) const
pure virtual

Updates one column (BTRAN) from regionSparse2 regionSparse starts as zero and is zero at end Note - if regionSparse2 packed on input - will be packed on output.

Implemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

Member Data Documentation

double CoinOtherFactorization::pivotTolerance_
protected

Pivot tolerance.

Definition at line 229 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::zeroTolerance_
protected

Zero tolerance.

Definition at line 231 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::slackValue_
protected

Whether slack value is +1 or -1.

Definition at line 234 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::relaxCheck_
protected

Relax check on accuracy in replaceColumn.

Definition at line 241 of file CoinDenseFactorization.hpp.

CoinBigIndex CoinOtherFactorization::factorElements_
protected

Number of elements after factorization.

Definition at line 243 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberRows_
protected

Number of Rows in factorization.

Definition at line 245 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberColumns_
protected

Number of Columns in factorization.

Definition at line 247 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberGoodU_
protected

Number factorized in U (not row singletons)

Definition at line 249 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::maximumPivots_
protected

Maximum number of pivots before factorization.

Definition at line 251 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberPivots_
protected

Number pivots since last factorization.

Definition at line 253 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::status_
protected

Status of factorization.

Definition at line 255 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::maximumRows_
protected

Maximum rows ever (i.e. use to copy arrays etc)

Definition at line 257 of file CoinDenseFactorization.hpp.

CoinBigIndex CoinOtherFactorization::maximumSpace_
protected

Maximum length of iterating area.

Definition at line 259 of file CoinDenseFactorization.hpp.

int* CoinOtherFactorization::pivotRow_
protected

Pivot row.

Definition at line 261 of file CoinDenseFactorization.hpp.

CoinFactorizationDouble* CoinOtherFactorization::elements_
protected

Elements of factorization and updates length is maxR*maxR+maxSpace will always be long enough so can have nR*nR ints in maxSpace.

Definition at line 266 of file CoinDenseFactorization.hpp.

CoinFactorizationDouble* CoinOtherFactorization::workArea_
protected

Work area of numberRows_.

Definition at line 268 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::solveMode_
protected

Solve mode e.g.

0 C++ code, 1 Lapack, 2 choose If 4 set then values pass if 8 set then has iterated

Definition at line 273 of file CoinDenseFactorization.hpp.


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