CoinSmallFactorization 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 CoinSmallFactorization:
Inheritance graph
[legend]

List of all members.

Public Member Functions

Constructors and destructor and copy



 CoinSmallFactorization ()
 Default constructor.
 CoinSmallFactorization (const CoinSmallFactorization &other)
 Copy constructor.
virtual ~CoinSmallFactorization ()
 Destructor.
CoinSmallFactorizationoperator= (const CoinSmallFactorization &other)
 = copy
virtual CoinSmallFactorizationclone () 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
 Returns status.
int maximumPivots () const
 Maximum number of pivots between factorizations.
void maximumPivots (int value)
 Set maximum pivots.
double pivotTolerance () const
 Pivot tolerance.
void pivotTolerance (double value)
 Returns status.
double zeroTolerance () const
 Zero tolerance.
void zeroTolerance (double value)
 Returns status.
double slackValue () const
 Whether slack value is +1 or -1.
void slackValue (double value)
 Returns status.
CoinFactorizationDoubleelements () const
 Returns array to put basis elements in.
int * pivotRow () const
 Returns pivot row.
CoinFactorizationDoubleworkArea () const
 Returns work area.
int * intWorkArea () const
 Returns int work area.
CoinBigIndexstarts () const
 Returns array to put basis starts in.
int * permuteBack () const
 Returns permute back.
int solveMode () const
 Get solve mode e.g. 0 C++ code, 1 Lapack, -1 choose.
void setSolveMode (int value)
 Set solve mode e.g. 0 C++ code, 1 Lapack, -1 choose.
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 -99 - needs more memory -1 - singular - use numberGoodColumns and redo.
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)=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. 0 C++ code, 1 Lapack, -1 choose.

Detailed Description

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

Definition at line 21 of file CoinDenseFactorization.hpp.


Constructor & Destructor Documentation

CoinSmallFactorization::CoinSmallFactorization (  ) 

Default constructor.

CoinSmallFactorization::CoinSmallFactorization ( const CoinSmallFactorization other  ) 

Copy constructor.

virtual CoinSmallFactorization::~CoinSmallFactorization (  )  [virtual]

Destructor.


Member Function Documentation

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

= copy

Reimplemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual CoinSmallFactorization* CoinSmallFactorization::clone (  )  const [pure virtual]

Clone.

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

int CoinSmallFactorization::status (  )  const [inline]

Returns status.

Definition at line 44 of file CoinDenseFactorization.hpp.

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

Sets status.

Definition at line 48 of file CoinDenseFactorization.hpp.

int CoinSmallFactorization::pivots (  )  const [inline]

Returns number of pivots since factorization.

Definition at line 51 of file CoinDenseFactorization.hpp.

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

Sets number of pivots since factorization.

Definition at line 55 of file CoinDenseFactorization.hpp.

void CoinSmallFactorization::setNumberRows ( int  value  )  [inline]

Set number of Rows after factorization.

Definition at line 58 of file CoinDenseFactorization.hpp.

int CoinSmallFactorization::numberRows (  )  const [inline]

Number of Rows after factorization.

Definition at line 61 of file CoinDenseFactorization.hpp.

int CoinSmallFactorization::numberColumns (  )  const [inline]

Total number of columns in factorization.

Definition at line 65 of file CoinDenseFactorization.hpp.

int CoinSmallFactorization::numberGoodColumns (  )  const [inline]

Number of good columns in factorization.

Definition at line 69 of file CoinDenseFactorization.hpp.

void CoinSmallFactorization::relaxAccuracyCheck ( double  value  )  [inline]

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

Definition at line 73 of file CoinDenseFactorization.hpp.

double CoinSmallFactorization::getAccuracyCheck (  )  const [inline]

Returns status.

Definition at line 75 of file CoinDenseFactorization.hpp.

int CoinSmallFactorization::maximumPivots (  )  const [inline]

Maximum number of pivots between factorizations.

Definition at line 78 of file CoinDenseFactorization.hpp.

void CoinSmallFactorization::maximumPivots ( int  value  ) 

Set maximum pivots.

double CoinSmallFactorization::pivotTolerance (  )  const [inline]

Pivot tolerance.

Definition at line 85 of file CoinDenseFactorization.hpp.

void CoinSmallFactorization::pivotTolerance ( double  value  ) 

Returns status.

double CoinSmallFactorization::zeroTolerance (  )  const [inline]

Zero tolerance.

Definition at line 90 of file CoinDenseFactorization.hpp.

void CoinSmallFactorization::zeroTolerance ( double  value  ) 

Returns status.

double CoinSmallFactorization::slackValue (  )  const [inline]

Whether slack value is +1 or -1.

Definition at line 96 of file CoinDenseFactorization.hpp.

void CoinSmallFactorization::slackValue ( double  value  ) 

Returns status.

CoinFactorizationDouble* CoinSmallFactorization::elements (  )  const [inline]

Returns array to put basis elements in.

Definition at line 102 of file CoinDenseFactorization.hpp.

int* CoinSmallFactorization::pivotRow (  )  const [inline]

Returns pivot row.

Definition at line 105 of file CoinDenseFactorization.hpp.

CoinFactorizationDouble* CoinSmallFactorization::workArea (  )  const [inline]

Returns work area.

Definition at line 108 of file CoinDenseFactorization.hpp.

int* CoinSmallFactorization::intWorkArea (  )  const [inline]

Returns int work area.

Definition at line 111 of file CoinDenseFactorization.hpp.

CoinBigIndex* CoinSmallFactorization::starts (  )  const [inline]

Returns array to put basis starts in.

Definition at line 114 of file CoinDenseFactorization.hpp.

int* CoinSmallFactorization::permuteBack (  )  const [inline]

Returns permute back.

Definition at line 117 of file CoinDenseFactorization.hpp.

int CoinSmallFactorization::solveMode (  )  const [inline]

Get solve mode e.g. 0 C++ code, 1 Lapack, -1 choose.

Definition at line 120 of file CoinDenseFactorization.hpp.

void CoinSmallFactorization::setSolveMode ( int  value  )  [inline]

Set solve mode e.g. 0 C++ code, 1 Lapack, -1 choose.

Definition at line 123 of file CoinDenseFactorization.hpp.

virtual int* CoinSmallFactorization::indices (  )  const [pure virtual]

Returns array to put basis indices in.

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual int* CoinSmallFactorization::permute (  )  const [pure virtual]

Returns permute in.

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual int CoinSmallFactorization::numberElements (  )  const [pure virtual]

Total number of elements in factorization.

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual void CoinSmallFactorization::getAreas ( int  numberRows,
int  numberColumns,
CoinBigIndex  maximumL,
CoinBigIndex  maximumU 
) [pure virtual]

Gets space for a factorization.

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual void CoinSmallFactorization::preProcess (  )  [pure virtual]

PreProcesses column ordered copy of basis.

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual int CoinSmallFactorization::factor (  )  [pure virtual]

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

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual void CoinSmallFactorization::postProcess ( const int *  sequence,
int *  pivotVariable 
) [pure virtual]

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

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual void CoinSmallFactorization::makeNonSingular ( int *  sequence,
int  numberColumns 
) [pure virtual]

Makes a non-singular basis by replacing variables.

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual int CoinSmallFactorization::replaceColumn ( CoinIndexedVector regionSparse,
int  pivotRow,
double  pivotCheck,
bool  checkBeforeModifying = false 
) [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, and CoinSimpFactorization.

virtual int CoinSmallFactorization::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, and CoinSimpFactorization.

virtual int CoinSmallFactorization::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, and CoinSimpFactorization.

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

does FTRAN on two columns

Implemented in CoinDenseFactorization, and CoinSimpFactorization.

virtual int CoinSmallFactorization::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, and CoinSimpFactorization.


Member Data Documentation

Pivot tolerance.

Definition at line 209 of file CoinDenseFactorization.hpp.

Zero tolerance.

Definition at line 211 of file CoinDenseFactorization.hpp.

Whether slack value is +1 or -1.

Definition at line 214 of file CoinDenseFactorization.hpp.

Relax check on accuracy in replaceColumn.

Definition at line 221 of file CoinDenseFactorization.hpp.

Number of elements after factorization.

Definition at line 223 of file CoinDenseFactorization.hpp.

Number of Rows in factorization.

Definition at line 225 of file CoinDenseFactorization.hpp.

Number of Columns in factorization.

Definition at line 227 of file CoinDenseFactorization.hpp.

Number factorized in U (not row singletons).

Definition at line 229 of file CoinDenseFactorization.hpp.

Maximum number of pivots before factorization.

Definition at line 231 of file CoinDenseFactorization.hpp.

Number pivots since last factorization.

Definition at line 233 of file CoinDenseFactorization.hpp.

Status of factorization.

Definition at line 235 of file CoinDenseFactorization.hpp.

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

Definition at line 237 of file CoinDenseFactorization.hpp.

Maximum length of iterating area.

Definition at line 239 of file CoinDenseFactorization.hpp.

Pivot row.

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

Work area of numberRows_.

Definition at line 248 of file CoinDenseFactorization.hpp.

Solve mode e.g. 0 C++ code, 1 Lapack, -1 choose.

Definition at line 250 of file CoinDenseFactorization.hpp.


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

Generated on Tue Nov 10 04:09:47 2009 by  doxygen 1.6.1