CoinUtils  trunk
CoinOtherFactorization Class Reference

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

#include <CoinDenseFactorization.hpp>

+ Inheritance diagram for CoinOtherFactorization:
+ Collaboration diagram for CoinOtherFactorization:

List of all members.

Public Member Functions

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

Protected Attributes

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

Detailed Description

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

Definition at line 24 of file CoinDenseFactorization.hpp.


Constructor & Destructor Documentation

Default constructor.

Copy constructor.

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 47 of file CoinDenseFactorization.hpp.

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

Sets status.

Definition at line 51 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::pivots ( ) const [inline]

Returns number of pivots since factorization.

Definition at line 54 of file CoinDenseFactorization.hpp.

void CoinOtherFactorization::setPivots ( int  value) [inline]

Sets number of pivots since factorization.

Definition at line 58 of file CoinDenseFactorization.hpp.

Set number of Rows after factorization.

Definition at line 61 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberRows ( ) const [inline]

Number of Rows after factorization.

Definition at line 64 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::numberColumns ( ) const [inline]

Total number of columns in factorization.

Definition at line 68 of file CoinDenseFactorization.hpp.

Number of good columns in factorization.

Definition at line 72 of file CoinDenseFactorization.hpp.

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

Definition at line 76 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::getAccuracyCheck ( ) const [inline]

Definition at line 78 of file CoinDenseFactorization.hpp.

int CoinOtherFactorization::maximumPivots ( ) const [inline]

Maximum number of pivots between factorizations.

Definition at line 81 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 88 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::zeroTolerance ( ) const [inline]

Zero tolerance.

Definition at line 93 of file CoinDenseFactorization.hpp.

double CoinOtherFactorization::slackValue ( ) const [inline]

Whether slack value is +1 or -1.

Definition at line 99 of file CoinDenseFactorization.hpp.

Returns array to put basis elements in.

Reimplemented in CoinOslFactorization.

virtual int* CoinOtherFactorization::pivotRow ( ) const [virtual]

Returns pivot row.

Reimplemented in CoinOslFactorization.

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 124 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 130 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 ( ) [inline, virtual]

Get rid of all memory.

Reimplemented in CoinDenseFactorization, CoinOslFactorization, and CoinSimpFactorization.

Definition at line 140 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

Pivot tolerance.

Definition at line 226 of file CoinDenseFactorization.hpp.

Zero tolerance.

Definition at line 228 of file CoinDenseFactorization.hpp.

Whether slack value is +1 or -1.

Definition at line 231 of file CoinDenseFactorization.hpp.

Relax check on accuracy in replaceColumn.

Definition at line 238 of file CoinDenseFactorization.hpp.

Number of elements after factorization.

Definition at line 240 of file CoinDenseFactorization.hpp.

Number of Rows in factorization.

Definition at line 242 of file CoinDenseFactorization.hpp.

Number of Columns in factorization.

Definition at line 244 of file CoinDenseFactorization.hpp.

Number factorized in U (not row singletons)

Definition at line 246 of file CoinDenseFactorization.hpp.

Maximum number of pivots before factorization.

Definition at line 248 of file CoinDenseFactorization.hpp.

Number pivots since last factorization.

Definition at line 250 of file CoinDenseFactorization.hpp.

Status of factorization.

Definition at line 252 of file CoinDenseFactorization.hpp.

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

Definition at line 254 of file CoinDenseFactorization.hpp.

Maximum length of iterating area.

Definition at line 256 of file CoinDenseFactorization.hpp.

Pivot row.

Definition at line 258 of file CoinDenseFactorization.hpp.

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 263 of file CoinDenseFactorization.hpp.

Work area of numberRows_.

Definition at line 265 of file CoinDenseFactorization.hpp.

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 270 of file CoinDenseFactorization.hpp.


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