Clp  trunk
Classes | Friends
CoinAbcTypeFactorization Class Reference

#include <CoinAbcBaseFactorization.hpp>

+ Inheritance diagram for CoinAbcTypeFactorization:
+ Collaboration diagram for CoinAbcTypeFactorization:

List of all members.

Classes

struct  scatterStruct

Public Member Functions

Constructors and destructor and copy
 CoinAbcTypeFactorization ()
 Default constructor.
 CoinAbcTypeFactorization (const CoinAbcTypeFactorization &other)
 Copy constructor.
 CoinAbcTypeFactorization (const CoinFactorization &other)
 Copy constructor.
virtual ~CoinAbcTypeFactorization ()
 Destructor.
virtual CoinAbcAnyFactorizationclone () const
 Clone.
void almostDestructor ()
 Delete all stuff (leaves as after CoinAbcFactorization())
void show_self () const
 Debug show object (shows one representation)
void sort () const
 Debug - sort so can compare.
CoinAbcTypeFactorizationoperator= (const CoinAbcTypeFactorization &other)
 = copy
Do factorization
CoinSimplexDouble conditionNumber () const
 Condition number - product of pivots after factorization.
some simple stuff
CoinBigIndex numberElementsU () const
 Returns number in U area.
void setNumberElementsU (CoinBigIndex value)
 Setss number in U area.
CoinBigIndex lengthAreaU () const
 Returns length of U area.
CoinBigIndex numberElementsL () const
 Returns number in L area.
CoinBigIndex lengthAreaL () const
 Returns length of L area.
CoinBigIndex numberElementsR () const
 Returns number in R area.
CoinBigIndex numberCompressions () const
 Number of compressions done.
virtual CoinBigIndex * starts () const
 Returns pivot row.
virtual CoinSimplexIntnumberInRow () const
 Number of entries in each row.
virtual CoinSimplexIntnumberInColumn () const
 Number of entries in each column.
virtual CoinFactorizationDouble * elements () const
 Returns array to put basis elements in.
CoinBigIndex * startColumnR () const
 Start of columns for R.
CoinFactorizationDouble * elementU () const
 Elements of U.
CoinSimplexIntindexRowU () const
 Row indices of U.
CoinBigIndex * startColumnU () const
 Start of each column in U.
double * denseVector (CoinIndexedVector *vector) const
 Returns double * associated with vector.
double * denseVector (CoinIndexedVector &vector) const
const double * denseVector (const CoinIndexedVector *vector) const
 Returns double * associated with vector.
const double * denseVector (const CoinIndexedVector &vector) const
void toLongArray (CoinIndexedVector *vector, int which) const
 To a work array and associate vector.
void fromLongArray (CoinIndexedVector *vector) const
 From a work array and dis-associate vector.
void fromLongArray (int which) const
 From a work array and dis-associate vector.
void scan (CoinIndexedVector *vector) const
 Scans region to find nonzeros.
rank one updates which do exist

Array persistence flag If 0 then as now (delete/new) 1 then only do arrays if bigger needed 2 as 1 but give a bit extra if bigger needed

virtual 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.
virtual 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.
virtual int checkReplacePart2 (int pivotRow, CoinSimplexDouble btranAlpha, double ftranAlpha, double ftAlpha, double acceptablePivot=1.0e-8)
 Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room, 5 max pivots.
virtual void replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double alpha)
 Replaces one Column to basis, partial update already in U.
virtual void replaceColumnPart3 (const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, CoinIndexedVector *partialUpdate, int pivotRow, double alpha)
 Replaces one Column to basis, partial update in vector.
void updatePartialUpdate (CoinIndexedVector &partialUpdate)
 Update partial Ftran by R update.
virtual bool wantsTableauColumn () const
 Returns true if wants tableauColumn in replaceColumn.
int replaceColumnU (CoinIndexedVector *regionSparse, CoinBigIndex *deletedPosition, CoinSimplexInt *deletedColumns, CoinSimplexInt pivotRow)
 Combines BtranU and store which elements are to be deleted returns number to be deleted.
various uses of factorization (return code number elements)

*** Below this user may not want to know about

which user may not want to know about (left over from my LP code)

virtual CoinSimplexInt updateColumnFT (CoinIndexedVector &regionSparse)
 Later take out return codes (apart from +- 1 on FT)
virtual int updateColumnFTPart1 (CoinIndexedVector &regionSparse)
virtual void updateColumnFTPart2 (CoinIndexedVector &regionSparse)
virtual void updateColumnFT (CoinIndexedVector &regionSparseFT, CoinIndexedVector &partialUpdate, int which)
 Updates one column (FTRAN) Tries to do FT update puts partial update in vector.
virtual CoinSimplexInt updateColumn (CoinIndexedVector &regionSparse) const
 This version has same effect as above with FTUpdate==false so number returned is always >=0.
virtual CoinSimplexInt updateTwoColumnsFT (CoinIndexedVector &regionFT, CoinIndexedVector &regionOther)
 Updates one column (FTRAN) from region2 Tries to do FT update number returned is negative if no room.
virtual CoinSimplexInt updateColumnTranspose (CoinIndexedVector &regionSparse) const
 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.
virtual void updateFullColumn (CoinIndexedVector &regionSparse) const
 Updates one full column (FTRAN)
virtual void updateFullColumnTranspose (CoinIndexedVector &regionSparse) const
 Updates one full column (BTRAN)
virtual void updateWeights (CoinIndexedVector &regionSparse) const
 Updates one column for dual steepest edge weights (FTRAN)
virtual void updateColumnCpu (CoinIndexedVector &regionSparse, int whichCpu) const
 Updates one column (FTRAN)
virtual void updateColumnTransposeCpu (CoinIndexedVector &regionSparse, int whichCpu) const
 Updates one column (BTRAN)
void unpack (CoinIndexedVector *regionFrom, CoinIndexedVector *regionTo) const
void pack (CoinIndexedVector *regionFrom, CoinIndexedVector *regionTo) const
void goSparse ()
 makes a row copy of L for speed and to allow very sparse problems
void goSparse2 ()
virtual void checkMarkArrays () const
CoinSimplexInt sparseThreshold () const
 get sparse threshold
void sparseThreshold (CoinSimplexInt value)
 set sparse threshold
void clearArrays ()
 Get rid of all memory.
used by ClpFactorization
void checkSparse ()
 See if worth going sparse.
void gutsOfDestructor (CoinSimplexInt type=1)
 The real work of constructors etc 0 just scalars, 1 bit normal.
void gutsOfInitialize (CoinSimplexInt type)
 1 bit - tolerances etc, 2 more, 4 dummy arrays
void gutsOfCopy (const CoinAbcTypeFactorization &other)
void resetStatistics ()
 Reset all sparsity etc statistics.
void printRegion (const CoinIndexedVector &vector, const char *where) const

Friends

void CoinAbcFactorizationUnitTest (const std::string &mpsDir)

general stuff such as permutation or status

typedef void(* scatterUpdate )(int, CoinFactorizationDouble, const CoinFactorizationDouble *, CoinFactorizationDouble *)
CoinSimplexIntpermute () const
 Returns address of permute region.
virtual CoinSimplexIntindices () const
 Returns array to put basis indices in.
virtual CoinSimplexIntpivotColumn () const
 Returns address of pivotColumn region (also used for permuting)
virtual CoinFactorizationDouble * pivotRegion () const
 Returns address of pivot region.
CoinBigIndex * startRowL () const
 Start of each row in L.
CoinBigIndex * startColumnL () const
 Start of each column in L.
CoinSimplexIntindexColumnL () const
 Index of column in row for L.
CoinSimplexIntindexRowL () const
 Row indices of L.
CoinFactorizationDouble * elementByRowL () const
 Elements in L (row copy)
CoinSimplexIntpivotLinkedBackwards () const
 Forward and backward linked lists (numberRows_+2)
CoinSimplexIntpivotLinkedForwards () const
CoinSimplexIntpivotLOrder () const
scatterStructscatterUColumn () const
 Array of function pointers PLUS for U Column.
CoinSimplexIntfirstCount () const
 For equal counts in factorization.
CoinSimplexIntnextCount () const
 Next Row/Column with count.
CoinSimplexIntlastCount () const
 Previous Row/Column with count.
CoinSimplexInt numberRowsExtra () const
 Number of Rows after iterating.
CoinBigIndex numberL () const
 Number in L.
CoinBigIndex baseL () const
 Base of L.
CoinSimplexInt maximumRowsExtra () const
 Maximum of Rows after iterating.
virtual CoinBigIndex numberElements () const
 Total number of elements in factorization.
CoinSimplexInt numberForrestTomlin () const
 Length of FT vector.
CoinSimplexDouble adjustedAreaFactor () const
 Returns areaFactor but adjusted for dense.
CoinSimplexInt messageLevel () const
 Level of detail of messages.
void messageLevel (CoinSimplexInt value)
virtual void maximumPivots (CoinSimplexInt value)
 Set maximum pivots.
CoinSimplexInt denseThreshold () const
 Gets dense threshold.
void setDenseThreshold (CoinSimplexInt value)
 Sets dense threshold.
CoinSimplexDouble maximumCoefficient () const
 Returns maximum absolute value in factorization.
bool spaceForForrestTomlin () const
 True if FT update and space.

used by factorization

virtual void getAreas (CoinSimplexInt numberRows, CoinSimplexInt numberColumns, CoinBigIndex maximumL, CoinBigIndex maximumU)
 Gets space for a factorization, called by constructors.
virtual void preProcess ()
 PreProcesses column ordered copy of basis.
void preProcess (CoinSimplexInt)
double preProcess3 ()
 Return largest element.
void preProcess4 ()
virtual CoinSimplexInt factor (AbcSimplex *model)
 Does most of factorization.
virtual void postProcess (const CoinSimplexInt *sequence, CoinSimplexInt *pivotVariable)
 Does post processing on valid factorization - putting variables on correct rows.
virtual void makeNonSingular (CoinSimplexInt *sequence)
 Makes a non-singular basis by replacing variables.
CoinSimplexInt replaceColumnPFI (CoinIndexedVector *regionSparse, CoinSimplexInt pivotRow, CoinSimplexDouble alpha)
 Replaces one Column to basis for PFI returns 0=OK, 1=Probably OK, 2=singular, 3=no room.
CoinSimplexInt factorSparse ()
 Does sparse phase of factorization return code is <0 error, 0= finished.
CoinSimplexInt factorDense ()
 Does dense phase of factorization return code is <0 error, 0= finished.
bool pivotOneOtherRow (CoinSimplexInt pivotRow, CoinSimplexInt pivotColumn)
 Pivots when just one other row so faster?
bool pivotRowSingleton (CoinSimplexInt pivotRow, CoinSimplexInt pivotColumn)
 Does one pivot on Row Singleton in factorization.
void pivotColumnSingleton (CoinSimplexInt pivotRow, CoinSimplexInt pivotColumn)
 Does one pivot on Column Singleton in factorization (can't return false)
void afterPivot (CoinSimplexInt pivotRow, CoinSimplexInt pivotColumn)
 After pivoting.
int wantToGoDense ()
 After pivoting - returns true if need to go dense.
bool getColumnSpace (CoinSimplexInt iColumn, CoinSimplexInt extraNeeded)
 Gets space for one Column with given length, may have to do compression (returns True if successful), also moves existing vector, extraNeeded is over and above present.
bool reorderU ()
 Reorders U so contiguous and in order (if there is space) Returns true if it could.
bool getColumnSpaceIterateR (CoinSimplexInt iColumn, CoinFactorizationDouble value, CoinSimplexInt iRow)
 getColumnSpaceIterateR.
CoinBigIndex getColumnSpaceIterate (CoinSimplexInt iColumn, CoinFactorizationDouble value, CoinSimplexInt iRow)
 getColumnSpaceIterate.
bool getRowSpace (CoinSimplexInt iRow, CoinSimplexInt extraNeeded)
 Gets space for one Row with given length, may have to do compression (returns True if successful), also moves existing vector.
bool getRowSpaceIterate (CoinSimplexInt iRow, CoinSimplexInt extraNeeded)
 Gets space for one Row with given length while iterating, may have to do compression (returns True if successful), also moves existing vector.
void checkConsistency ()
 Checks that row and column copies look OK.
void addLink (CoinSimplexInt index, CoinSimplexInt count)
 Adds a link in chain of equal counts.
void deleteLink (CoinSimplexInt index)
 Deletes a link in chain of equal counts.
void modifyLink (CoinSimplexInt index, CoinSimplexInt count)
 Modifies links in chain of equal counts.
void separateLinks ()
 Separate out links with same row/column count.
void separateLinks (CoinSimplexInt, CoinSimplexInt)
void cleanup ()
 Cleans up at end of factorization.
void doAddresses ()
 Set up addresses from arrays.
void updateColumnL (CoinIndexedVector *region, CoinAbcStatistics &statistics) const
 Updates part of column (FTRANL)
void updateColumnLDensish (CoinIndexedVector *region) const
 Updates part of column (FTRANL) when densish.
void updateColumnLDense (CoinIndexedVector *region) const
 Updates part of column (FTRANL) when dense (i.e. do as inner products)
void updateColumnLSparse (CoinIndexedVector *region) const
 Updates part of column (FTRANL) when sparse.
void updateColumnR (CoinIndexedVector *region, CoinAbcStatistics &statistics) const
 Updates part of column (FTRANR) without FT update.
bool storeFT (const CoinIndexedVector *regionFT)
 Store update after doing L and R - retuns false if no room.
void updateColumnU (CoinIndexedVector *region, CoinAbcStatistics &statistics) const
 Updates part of column (FTRANU)
void updateColumnUSparse (CoinIndexedVector *regionSparse) const
 Updates part of column (FTRANU) when sparse.
void updateColumnUDensish (CoinIndexedVector *regionSparse) const
 Updates part of column (FTRANU)
void updateColumnUDense (CoinIndexedVector *regionSparse) const
 Updates part of column (FTRANU) when dense (i.e. do as inner products)
void updateTwoColumnsUDensish (CoinSimplexInt &numberNonZero1, CoinFactorizationDouble *COIN_RESTRICT region1, CoinSimplexInt *COIN_RESTRICT index1, CoinSimplexInt &numberNonZero2, CoinFactorizationDouble *COIN_RESTRICT region2, CoinSimplexInt *COIN_RESTRICT index2) const
 Updates part of 2 columns (FTRANU) real work.
void updateColumnPFI (CoinIndexedVector *regionSparse) const
 Updates part of column PFI (FTRAN) (after rest)
void updateColumnTransposePFI (CoinIndexedVector *region) const
 Updates part of column transpose PFI (BTRAN) (before rest)
void updateColumnTransposeU (CoinIndexedVector *region, CoinSimplexInt smallestIndex, CoinAbcStatistics &statistics) const
 Updates part of column transpose (BTRANU), assumes index is sorted i.e.
void updateColumnTransposeUDensish (CoinIndexedVector *region, CoinSimplexInt smallestIndex) const
 Updates part of column transpose (BTRANU) when densish, assumes index is sorted i.e.
void updateColumnTransposeUSparse (CoinIndexedVector *region) const
 Updates part of column transpose (BTRANU) when sparse, assumes index is sorted i.e.
void updateColumnTransposeUByColumn (CoinIndexedVector *region, CoinSimplexInt smallestIndex) const
 Updates part of column transpose (BTRANU) by column assumes index is sorted i.e.
void updateColumnTransposeR (CoinIndexedVector *region, CoinAbcStatistics &statistics) const
 Updates part of column transpose (BTRANR)
void updateColumnTransposeRDensish (CoinIndexedVector *region) const
 Updates part of column transpose (BTRANR) when dense.
void updateColumnTransposeRSparse (CoinIndexedVector *region) const
 Updates part of column transpose (BTRANR) when sparse.
void updateColumnTransposeL (CoinIndexedVector *region, CoinAbcStatistics &statistics) const
 Updates part of column transpose (BTRANL)
void updateColumnTransposeLDensish (CoinIndexedVector *region) const
 Updates part of column transpose (BTRANL) when densish by column.
void updateColumnTransposeLByRow (CoinIndexedVector *region) const
 Updates part of column transpose (BTRANL) when densish by row.
void updateColumnTransposeLSparse (CoinIndexedVector *region) const
 Updates part of column transpose (BTRANL) when sparse (by Row)
CoinSimplexInt checkPivot (CoinSimplexDouble saveFromU, CoinSimplexDouble oldPivot) const
 Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular.
int pivot (CoinSimplexInt pivotRow, CoinSimplexInt pivotColumn, CoinBigIndex pivotRowPosition, CoinBigIndex pivotColumnPosition, CoinFactorizationDouble *COIN_RESTRICT work, CoinSimplexUnsignedInt *COIN_RESTRICT workArea2, CoinSimplexInt increment2, int *COIN_RESTRICT markRow)
 0 fine, -99 singular, 2 dense
int pivot (CoinSimplexInt &pivotRow, CoinSimplexInt &pivotColumn, CoinBigIndex pivotRowPosition, CoinBigIndex pivotColumnPosition, int *COIN_RESTRICT markRow)

data

CoinSimplexIntpivotColumnAddress_
CoinSimplexIntpermuteAddress_
CoinFactorizationDouble * pivotRegionAddress_
CoinFactorizationDouble * elementUAddress_
CoinSimplexIntindexRowUAddress_
CoinSimplexIntnumberInColumnAddress_
CoinSimplexIntnumberInColumnPlusAddress_
scatterStructscatterPointersUColumnAddress_
 Array of function pointers.
CoinFactorizationDouble * elementUColumnPlusAddress_
CoinBigIndex * startColumnUAddress_
CoinBigIndex * convertRowToColumnUAddress_
CoinBigIndex * convertColumnToRowUAddress_
CoinFactorizationDouble * elementRowUAddress_
CoinBigIndex * startRowUAddress_
CoinSimplexIntnumberInRowAddress_
CoinSimplexIntindexColumnUAddress_
CoinSimplexIntfirstCountAddress_
CoinSimplexIntnextCountAddress_
 Next Row/Column with count.
CoinSimplexIntlastCountAddress_
 Previous Row/Column with count.
CoinSimplexIntnextColumnAddress_
CoinSimplexIntlastColumnAddress_
CoinSimplexIntnextRowAddress_
CoinSimplexIntlastRowAddress_
CoinSimplexIntsaveColumnAddress_
CoinCheckZeromarkRowAddress_
CoinSimplexIntlistAddress_
CoinFactorizationDouble * elementLAddress_
CoinSimplexIntindexRowLAddress_
CoinBigIndex * startColumnLAddress_
CoinBigIndex * startRowLAddress_
CoinSimplexIntpivotLinkedBackwardsAddress_
CoinSimplexIntpivotLinkedForwardsAddress_
CoinSimplexIntpivotLOrderAddress_
CoinBigIndex * startColumnRAddress_
CoinFactorizationDouble * elementRAddress_
 Elements of R.
CoinSimplexIntindexRowRAddress_
 Row indices for R.
CoinSimplexIntindexColumnLAddress_
CoinFactorizationDouble * elementByRowLAddress_
CoinFactorizationDouble * denseAreaAddress_
CoinFactorizationDouble * workAreaAddress_
CoinSimplexUnsignedIntworkArea2Address_
CoinSimplexIntsparseAddress_
CoinSimplexIntfromSmallToBigRow_
CoinSimplexIntfromSmallToBigColumn_
CoinSimplexInt numberRowsExtra_
 Number of Rows after iterating.
CoinSimplexInt maximumRowsExtra_
 Maximum number of Rows after iterating.
CoinSimplexInt numberRowsSmall_
 Size of small inverse.
CoinSimplexInt numberGoodL_
 Number factorized in L.
CoinSimplexInt numberRowsLeft_
 Number Rows left (numberRows-numberGood)
CoinBigIndex totalElements_
 Number of elements in U (to go) or while iterating total overall.
CoinBigIndex firstZeroed_
 First place in funny copy zeroed out.
CoinSimplexInt sparseThreshold_
 Below this use sparse technology - if 0 then no L row copy.
CoinSimplexInt numberR_
 Number in R.
CoinBigIndex lengthR_
 Length of R stuff.
CoinBigIndex lengthAreaR_
 length of area reserved for R
CoinBigIndex numberL_
 Number in L.
CoinBigIndex baseL_
 Base of L.
CoinBigIndex lengthL_
 Length of L.
CoinBigIndex lengthAreaL_
 Length of area reserved for L.
CoinSimplexInt numberU_
 Number in U.
CoinBigIndex maximumU_
 Maximum space used in U.
CoinBigIndex lengthU_
 Length of U.
CoinBigIndex lengthAreaU_
 Length of area reserved for U.
CoinBigIndex lastEntryByColumnU_
 Last entry by column for U.
CoinBigIndex lastEntryByColumnUPlus_
 Last entry by column for U.
CoinBigIndex lengthAreaUPlus_
 Length of U.
CoinBigIndex lastEntryByRowU_
 Last entry by row for U.
CoinSimplexInt numberTrials_
 Number of trials before rejection.
CoinSimplexInt leadingDimension_
 Leading dimension for dense.
CoinIntArrayWithLength pivotColumn_
 Pivot order for each Column.
CoinIntArrayWithLength permute_
 Permutation vector for pivot row order.
CoinBigIndexArrayWithLength startRowU_
 Start of each Row as pointer.
CoinIntArrayWithLength numberInRow_
 Number in each Row.
CoinIntArrayWithLength numberInColumn_
 Number in each Column.
CoinIntArrayWithLength numberInColumnPlus_
 Number in each Column including pivoted.
CoinIntArrayWithLength firstCount_
 First Row/Column with count of k, can tell which by offset - Rows then Columns.
CoinIntArrayWithLength nextColumn_
 Next Column in memory order.
CoinIntArrayWithLength lastColumn_
 Previous Column in memory order.
CoinIntArrayWithLength nextRow_
 Next Row in memory order.
CoinIntArrayWithLength lastRow_
 Previous Row in memory order.
CoinIntArrayWithLength saveColumn_
 Columns left to do in a single pivot.
CoinIntArrayWithLength markRow_
 Marks rows to be updated.
CoinIntArrayWithLength indexColumnU_
 Base address for U (may change)
CoinFactorizationDoubleArrayWithLength pivotRegion_
 Inverses of pivot values.
CoinFactorizationDoubleArrayWithLength elementU_
 Elements of U.
CoinIntArrayWithLength indexRowU_
 Row indices of U.
CoinBigIndexArrayWithLength startColumnU_
 Start of each column in U.
CoinArbitraryArrayWithLength scatterUColumn_
 Array of structs for U Column.
CoinBigIndexArrayWithLength convertRowToColumnU_
 Converts rows to columns in U.
CoinBigIndexArrayWithLength convertColumnToRowU_
 Converts columns to rows in U.
CoinFactorizationDoubleArrayWithLength elementRowU_
 Elements of U by row.
CoinFactorizationDoubleArrayWithLength elementL_
 Elements of L.
CoinIntArrayWithLength indexRowL_
 Row indices of L.
CoinBigIndexArrayWithLength startColumnL_
 Start of each column in L.
CoinFactorizationDoubleArrayWithLength denseArea_
 Dense area.
CoinFactorizationDoubleArrayWithLength workArea_
 First work area.
CoinUnsignedIntArrayWithLength workArea2_
 Second work area.
CoinBigIndexArrayWithLength startRowL_
 Start of each row in L.
CoinIntArrayWithLength indexColumnL_
 Index of column in row for L.
CoinFactorizationDoubleArrayWithLength elementByRowL_
 Elements in L (row copy)
CoinIntArrayWithLength sparse_
 Sparse regions.
CoinSimplexInt messageLevel_
 Detail in messages.
CoinBigIndex numberCompressions_
 Number of compressions done.
CoinSimplexInt lastSlack_
double ftranCountInput_
 To decide how to solve.
double ftranCountAfterL_
double ftranCountAfterR_
double ftranCountAfterU_
double ftranAverageAfterL_
double ftranAverageAfterR_
double ftranAverageAfterU_
CoinSimplexInt numberFtranCounts_
CoinSimplexInt maximumRows_
 Maximum rows (ever) (here to use double alignment)
double ftranFTCountInput_
double ftranFTCountAfterL_
double ftranFTCountAfterR_
double ftranFTCountAfterU_
double ftranFTAverageAfterL_
double ftranFTAverageAfterR_
double ftranFTAverageAfterU_
CoinSimplexInt numberFtranFTCounts_
CoinSimplexInt denseThreshold_
 Dense threshold (here to use double alignment)
double btranCountInput_
double btranCountAfterU_
double btranCountAfterR_
double btranCountAfterL_
double btranAverageAfterU_
double btranAverageAfterR_
double btranAverageAfterL_
CoinSimplexInt numberBtranCounts_
CoinSimplexInt maximumMaximumPivots_
 Maximum maximum pivots.
double ftranFullCountInput_
 To decide how to solve.
double ftranFullCountAfterL_
double ftranFullCountAfterR_
double ftranFullCountAfterU_
double ftranFullAverageAfterL_
double ftranFullAverageAfterR_
double ftranFullAverageAfterU_
CoinSimplexInt numberFtranFullCounts_
CoinSimplexInt initialNumberRows_
 Rows first time nonzero.
double btranFullCountInput_
 To decide how to solve.
double btranFullCountAfterL_
double btranFullCountAfterR_
double btranFullCountAfterU_
double btranFullAverageAfterL_
double btranFullAverageAfterR_
double btranFullAverageAfterU_
CoinSimplexInt numberBtranFullCounts_
CoinSimplexInt state_
 State of saved version and what can be done 0 - nothing saved 1 - saved and can go back to previous save by unwinding 2 - saved - getting on for a full copy higher bits - see ABC_FAC....
CoinBigIndex sizeSparseArray_
 Size in bytes of a sparseArray.
bool gotLCopy () const
void setNoGotLCopy ()
void setYesGotLCopy ()
bool gotRCopy () const
void setNoGotRCopy ()
void setYesGotRCopy ()
bool gotUCopy () const
void setNoGotUCopy ()
void setYesGotUCopy ()
bool gotSparse () const
void setNoGotSparse ()
void setYesGotSparse ()

Detailed Description

Definition at line 28 of file CoinAbcBaseFactorization.hpp.


Member Typedef Documentation

typedef void(* CoinAbcTypeFactorization::scatterUpdate)(int, CoinFactorizationDouble, const CoinFactorizationDouble *, CoinFactorizationDouble *)

Definition at line 121 of file CoinAbcBaseFactorization.hpp.


Constructor & Destructor Documentation

Default constructor.

Copy constructor.

CoinAbcTypeFactorization::CoinAbcTypeFactorization ( const CoinFactorization &  other)

Copy constructor.

Destructor.


Member Function Documentation

Clone.

Implements CoinAbcAnyFactorization.

Delete all stuff (leaves as after CoinAbcFactorization())

Debug show object (shows one representation)

Debug - sort so can compare.

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

= copy

Condition number - product of pivots after factorization.

CoinSimplexInt* CoinAbcTypeFactorization::permute ( ) const [inline, virtual]

Returns address of permute region.

Implements CoinAbcAnyFactorization.

Definition at line 68 of file CoinAbcBaseFactorization.hpp.

virtual CoinSimplexInt* CoinAbcTypeFactorization::indices ( ) const [inline, virtual]

Returns array to put basis indices in.

Implements CoinAbcAnyFactorization.

Definition at line 72 of file CoinAbcBaseFactorization.hpp.

virtual CoinSimplexInt* CoinAbcTypeFactorization::pivotColumn ( ) const [inline, virtual]

Returns address of pivotColumn region (also used for permuting)

Reimplemented from CoinAbcAnyFactorization.

Definition at line 75 of file CoinAbcBaseFactorization.hpp.

virtual CoinFactorizationDouble* CoinAbcTypeFactorization::pivotRegion ( ) const [inline, virtual]

Returns address of pivot region.

Reimplemented from CoinAbcAnyFactorization.

Definition at line 79 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex* CoinAbcTypeFactorization::startRowL ( ) const [inline]

Start of each row in L.

Definition at line 84 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex* CoinAbcTypeFactorization::startColumnL ( ) const [inline]

Start of each column in L.

Definition at line 89 of file CoinAbcBaseFactorization.hpp.

Index of column in row for L.

Definition at line 94 of file CoinAbcBaseFactorization.hpp.

Row indices of L.

Definition at line 99 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementByRowL ( ) const [inline]

Elements in L (row copy)

Definition at line 104 of file CoinAbcBaseFactorization.hpp.

Forward and backward linked lists (numberRows_+2)

Definition at line 110 of file CoinAbcBaseFactorization.hpp.

Definition at line 112 of file CoinAbcBaseFactorization.hpp.

Definition at line 114 of file CoinAbcBaseFactorization.hpp.

Array of function pointers PLUS for U Column.

Definition at line 135 of file CoinAbcBaseFactorization.hpp.

For equal counts in factorization.

First Row/Column with count of k, can tell which by offset - Rows then Columns actually comes before nextCount

Definition at line 143 of file CoinAbcBaseFactorization.hpp.

Next Row/Column with count.

Definition at line 147 of file CoinAbcBaseFactorization.hpp.

Previous Row/Column with count.

Definition at line 151 of file CoinAbcBaseFactorization.hpp.

Number of Rows after iterating.

Definition at line 155 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::numberL ( ) const [inline]

Number in L.

Definition at line 159 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::baseL ( ) const [inline]

Base of L.

Definition at line 163 of file CoinAbcBaseFactorization.hpp.

Maximum of Rows after iterating.

Definition at line 166 of file CoinAbcBaseFactorization.hpp.

virtual CoinBigIndex CoinAbcTypeFactorization::numberElements ( ) const [inline, virtual]

Total number of elements in factorization.

Implements CoinAbcAnyFactorization.

Definition at line 170 of file CoinAbcBaseFactorization.hpp.

Length of FT vector.

Definition at line 174 of file CoinAbcBaseFactorization.hpp.

Returns areaFactor but adjusted for dense.

Level of detail of messages.

Definition at line 180 of file CoinAbcBaseFactorization.hpp.

virtual void CoinAbcTypeFactorization::maximumPivots ( CoinSimplexInt  value) [virtual]

Set maximum pivots.

Reimplemented from CoinAbcAnyFactorization.

Gets dense threshold.

Definition at line 189 of file CoinAbcBaseFactorization.hpp.

Sets dense threshold.

Definition at line 192 of file CoinAbcBaseFactorization.hpp.

Returns maximum absolute value in factorization.

True if FT update and space.

Definition at line 205 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::numberElementsU ( ) const [inline]

Returns number in U area.

Definition at line 218 of file CoinAbcBaseFactorization.hpp.

void CoinAbcTypeFactorization::setNumberElementsU ( CoinBigIndex  value) [inline]

Setss number in U area.

Definition at line 222 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthAreaU ( ) const [inline]

Returns length of U area.

Definition at line 225 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::numberElementsL ( ) const [inline]

Returns number in L area.

Definition at line 229 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthAreaL ( ) const [inline]

Returns length of L area.

Definition at line 233 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::numberElementsR ( ) const [inline]

Returns number in R area.

Definition at line 237 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::numberCompressions ( ) const [inline]

Number of compressions done.

Definition at line 241 of file CoinAbcBaseFactorization.hpp.

virtual CoinBigIndex* CoinAbcTypeFactorization::starts ( ) const [inline, virtual]

Returns pivot row.

Returns work area Returns CoinSimplexInt work area Returns array to put basis starts in

Reimplemented from CoinAbcAnyFactorization.

Definition at line 250 of file CoinAbcBaseFactorization.hpp.

virtual CoinSimplexInt* CoinAbcTypeFactorization::numberInRow ( ) const [inline, virtual]

Number of entries in each row.

Reimplemented from CoinAbcAnyFactorization.

Definition at line 253 of file CoinAbcBaseFactorization.hpp.

virtual CoinSimplexInt* CoinAbcTypeFactorization::numberInColumn ( ) const [inline, virtual]

Number of entries in each column.

Reimplemented from CoinAbcAnyFactorization.

Definition at line 256 of file CoinAbcBaseFactorization.hpp.

virtual CoinFactorizationDouble* CoinAbcTypeFactorization::elements ( ) const [inline, virtual]

Returns array to put basis elements in.

Reimplemented from CoinAbcAnyFactorization.

Definition at line 259 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex* CoinAbcTypeFactorization::startColumnR ( ) const [inline]

Start of columns for R.

Definition at line 262 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementU ( ) const [inline]

Elements of U.

Definition at line 265 of file CoinAbcBaseFactorization.hpp.

Row indices of U.

Definition at line 268 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex* CoinAbcTypeFactorization::startColumnU ( ) const [inline]

Start of each column in U.

Definition at line 271 of file CoinAbcBaseFactorization.hpp.

double* CoinAbcTypeFactorization::denseVector ( CoinIndexedVector *  vector) const [inline]

Returns double * associated with vector.

Definition at line 294 of file CoinAbcBaseFactorization.hpp.

double* CoinAbcTypeFactorization::denseVector ( CoinIndexedVector &  vector) const [inline]

Definition at line 296 of file CoinAbcBaseFactorization.hpp.

const double* CoinAbcTypeFactorization::denseVector ( const CoinIndexedVector *  vector) const [inline]

Returns double * associated with vector.

Definition at line 299 of file CoinAbcBaseFactorization.hpp.

const double* CoinAbcTypeFactorization::denseVector ( const CoinIndexedVector &  vector) const [inline]

Definition at line 301 of file CoinAbcBaseFactorization.hpp.

void CoinAbcTypeFactorization::toLongArray ( CoinIndexedVector *  vector,
int  which 
) const [inline]

To a work array and associate vector.

Definition at line 304 of file CoinAbcBaseFactorization.hpp.

void CoinAbcTypeFactorization::fromLongArray ( CoinIndexedVector *  vector) const [inline]

From a work array and dis-associate vector.

Definition at line 306 of file CoinAbcBaseFactorization.hpp.

void CoinAbcTypeFactorization::fromLongArray ( int  which) const [inline]

From a work array and dis-associate vector.

Definition at line 308 of file CoinAbcBaseFactorization.hpp.

void CoinAbcTypeFactorization::scan ( CoinIndexedVector *  vector) const [inline]

Scans region to find nonzeros.

Definition at line 310 of file CoinAbcBaseFactorization.hpp.

virtual double CoinAbcTypeFactorization::checkReplacePart1 ( CoinIndexedVector *  regionSparse,
int  pivotRow 
) [virtual]

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

Reimplemented from CoinAbcAnyFactorization.

virtual double CoinAbcTypeFactorization::checkReplacePart1 ( CoinIndexedVector *  regionSparse,
CoinIndexedVector *  partialUpdate,
int  pivotRow 
) [virtual]

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

Reimplemented from CoinAbcAnyFactorization.

virtual int CoinAbcTypeFactorization::checkReplacePart2 ( int  pivotRow,
CoinSimplexDouble  btranAlpha,
double  ftranAlpha,
double  ftAlpha,
double  acceptablePivot = 1.0e-8 
) [virtual]

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

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::replaceColumnPart3 ( const AbcSimplex model,
CoinIndexedVector *  regionSparse,
CoinIndexedVector *  tableauColumn,
int  pivotRow,
double  alpha 
) [virtual]

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

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::replaceColumnPart3 ( const AbcSimplex model,
CoinIndexedVector *  regionSparse,
CoinIndexedVector *  tableauColumn,
CoinIndexedVector *  partialUpdate,
int  pivotRow,
double  alpha 
) [virtual]

Replaces one Column to basis, partial update in vector.

Implements CoinAbcAnyFactorization.

void CoinAbcTypeFactorization::updatePartialUpdate ( CoinIndexedVector &  partialUpdate)

Update partial Ftran by R update.

virtual bool CoinAbcTypeFactorization::wantsTableauColumn ( ) const [inline, virtual]

Returns true if wants tableauColumn in replaceColumn.

Reimplemented from CoinAbcAnyFactorization.

Definition at line 427 of file CoinAbcBaseFactorization.hpp.

int CoinAbcTypeFactorization::replaceColumnU ( CoinIndexedVector *  regionSparse,
CoinBigIndex *  deletedPosition,
CoinSimplexInt deletedColumns,
CoinSimplexInt  pivotRow 
)

Combines BtranU and store which elements are to be deleted returns number to be deleted.

virtual CoinSimplexInt CoinAbcTypeFactorization::updateColumnFT ( CoinIndexedVector &  regionSparse) [virtual]

Later take out return codes (apart from +- 1 on FT)

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

Implements CoinAbcAnyFactorization.

virtual int CoinAbcTypeFactorization::updateColumnFTPart1 ( CoinIndexedVector &  regionSparse) [virtual]
virtual void CoinAbcTypeFactorization::updateColumnFTPart2 ( CoinIndexedVector &  regionSparse) [virtual]
virtual void CoinAbcTypeFactorization::updateColumnFT ( CoinIndexedVector &  regionSparseFT,
CoinIndexedVector &  partialUpdate,
int  which 
) [virtual]

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

Implements CoinAbcAnyFactorization.

virtual CoinSimplexInt CoinAbcTypeFactorization::updateColumn ( CoinIndexedVector &  regionSparse) const [virtual]

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

Implements CoinAbcAnyFactorization.

virtual CoinSimplexInt CoinAbcTypeFactorization::updateTwoColumnsFT ( CoinIndexedVector &  regionFT,
CoinIndexedVector &  regionOther 
) [virtual]

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

Also updates region3 region1 starts as zero and is zero at end

Implements CoinAbcAnyFactorization.

virtual CoinSimplexInt CoinAbcTypeFactorization::updateColumnTranspose ( CoinIndexedVector &  regionSparse) const [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.

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::updateFullColumn ( CoinIndexedVector &  regionSparse) const [virtual]

Updates one full column (FTRAN)

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::updateFullColumnTranspose ( CoinIndexedVector &  regionSparse) const [virtual]

Updates one full column (BTRAN)

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::updateWeights ( CoinIndexedVector &  regionSparse) const [virtual]

Updates one column for dual steepest edge weights (FTRAN)

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::updateColumnCpu ( CoinIndexedVector &  regionSparse,
int  whichCpu 
) const [virtual]

Updates one column (FTRAN)

Reimplemented from CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::updateColumnTransposeCpu ( CoinIndexedVector &  regionSparse,
int  whichCpu 
) const [virtual]

Updates one column (BTRAN)

Reimplemented from CoinAbcAnyFactorization.

void CoinAbcTypeFactorization::unpack ( CoinIndexedVector *  regionFrom,
CoinIndexedVector *  regionTo 
) const
void CoinAbcTypeFactorization::pack ( CoinIndexedVector *  regionFrom,
CoinIndexedVector *  regionTo 
) const
void CoinAbcTypeFactorization::goSparse ( ) [inline, virtual]

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

Reimplemented from CoinAbcAnyFactorization.

Definition at line 487 of file CoinAbcBaseFactorization.hpp.

virtual void CoinAbcTypeFactorization::checkMarkArrays ( ) const [virtual]

Reimplemented from CoinAbcAnyFactorization.

get sparse threshold

Definition at line 494 of file CoinAbcBaseFactorization.hpp.

set sparse threshold

void CoinAbcTypeFactorization::clearArrays ( ) [inline, virtual]

Get rid of all memory.

Reimplemented from CoinAbcAnyFactorization.

Definition at line 506 of file CoinAbcBaseFactorization.hpp.

See if worth going sparse.

The real work of constructors etc 0 just scalars, 1 bit normal.

1 bit - tolerances etc, 2 more, 4 dummy arrays

Reset all sparsity etc statistics.

void CoinAbcTypeFactorization::printRegion ( const CoinIndexedVector &  vector,
const char *  where 
) const
virtual void CoinAbcTypeFactorization::getAreas ( CoinSimplexInt  numberRows,
CoinSimplexInt  numberColumns,
CoinBigIndex  maximumL,
CoinBigIndex  maximumU 
) [virtual]

Gets space for a factorization, called by constructors.

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::preProcess ( ) [virtual]

PreProcesses column ordered copy of basis.

Implements CoinAbcAnyFactorization.

Return largest element.

Does most of factorization.

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::postProcess ( const CoinSimplexInt sequence,
CoinSimplexInt pivotVariable 
) [virtual]

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

Implements CoinAbcAnyFactorization.

virtual void CoinAbcTypeFactorization::makeNonSingular ( CoinSimplexInt sequence) [virtual]

Makes a non-singular basis by replacing variables.

Implements CoinAbcAnyFactorization.

Does sparse phase of factorization return code is <0 error, 0= finished.

Does dense phase of factorization return code is <0 error, 0= finished.

bool CoinAbcTypeFactorization::pivotOneOtherRow ( CoinSimplexInt  pivotRow,
CoinSimplexInt  pivotColumn 
) [protected]

Pivots when just one other row so faster?

bool CoinAbcTypeFactorization::pivotRowSingleton ( CoinSimplexInt  pivotRow,
CoinSimplexInt  pivotColumn 
) [protected]

Does one pivot on Row Singleton in factorization.

void CoinAbcTypeFactorization::pivotColumnSingleton ( CoinSimplexInt  pivotRow,
CoinSimplexInt  pivotColumn 
) [protected]

Does one pivot on Column Singleton in factorization (can't return false)

void CoinAbcTypeFactorization::afterPivot ( CoinSimplexInt  pivotRow,
CoinSimplexInt  pivotColumn 
) [protected]

After pivoting.

After pivoting - returns true if need to go dense.

bool CoinAbcTypeFactorization::getColumnSpace ( CoinSimplexInt  iColumn,
CoinSimplexInt  extraNeeded 
) [protected]

Gets space for one Column with given length, may have to do compression (returns True if successful), also moves existing vector, extraNeeded is over and above present.

bool CoinAbcTypeFactorization::reorderU ( ) [protected]

Reorders U so contiguous and in order (if there is space) Returns true if it could.

bool CoinAbcTypeFactorization::getColumnSpaceIterateR ( CoinSimplexInt  iColumn,
CoinFactorizationDouble  value,
CoinSimplexInt  iRow 
) [protected]

getColumnSpaceIterateR.

Gets space for one extra R element in Column may have to do compression (returns true) also moves existing vector

CoinBigIndex CoinAbcTypeFactorization::getColumnSpaceIterate ( CoinSimplexInt  iColumn,
CoinFactorizationDouble  value,
CoinSimplexInt  iRow 
) [protected]

getColumnSpaceIterate.

Gets space for one extra U element in Column may have to do compression (returns true) also moves existing vector. Returns -1 if no memory or where element was put Used by replaceRow (turns off R version)

bool CoinAbcTypeFactorization::getRowSpace ( CoinSimplexInt  iRow,
CoinSimplexInt  extraNeeded 
) [protected]

Gets space for one Row with given length, may have to do compression (returns True if successful), also moves existing vector.

bool CoinAbcTypeFactorization::getRowSpaceIterate ( CoinSimplexInt  iRow,
CoinSimplexInt  extraNeeded 
) [protected]

Gets space for one Row with given length while iterating, may have to do compression (returns True if successful), also moves existing vector.

Checks that row and column copies look OK.

void CoinAbcTypeFactorization::addLink ( CoinSimplexInt  index,
CoinSimplexInt  count 
) [inline, protected]

Adds a link in chain of equal counts.

Definition at line 611 of file CoinAbcBaseFactorization.hpp.

void CoinAbcTypeFactorization::deleteLink ( CoinSimplexInt  index) [inline, protected]

Deletes a link in chain of equal counts.

Definition at line 623 of file CoinAbcBaseFactorization.hpp.

void CoinAbcTypeFactorization::modifyLink ( CoinSimplexInt  index,
CoinSimplexInt  count 
) [inline, protected]

Modifies links in chain of equal counts.

Definition at line 641 of file CoinAbcBaseFactorization.hpp.

Separate out links with same row/column count.

void CoinAbcTypeFactorization::cleanup ( ) [protected]

Cleans up at end of factorization.

Set up addresses from arrays.

void CoinAbcTypeFactorization::updateColumnL ( CoinIndexedVector *  region,
CoinAbcStatistics statistics 
) const [protected]

Updates part of column (FTRANL)

void CoinAbcTypeFactorization::updateColumnLDensish ( CoinIndexedVector *  region) const [protected]

Updates part of column (FTRANL) when densish.

void CoinAbcTypeFactorization::updateColumnLDense ( CoinIndexedVector *  region) const [protected]

Updates part of column (FTRANL) when dense (i.e. do as inner products)

void CoinAbcTypeFactorization::updateColumnLSparse ( CoinIndexedVector *  region) const [protected]

Updates part of column (FTRANL) when sparse.

void CoinAbcTypeFactorization::updateColumnR ( CoinIndexedVector *  region,
CoinAbcStatistics statistics 
) const [protected]

Updates part of column (FTRANR) without FT update.

bool CoinAbcTypeFactorization::storeFT ( const CoinIndexedVector *  regionFT) [protected]

Store update after doing L and R - retuns false if no room.

void CoinAbcTypeFactorization::updateColumnU ( CoinIndexedVector *  region,
CoinAbcStatistics statistics 
) const [protected]

Updates part of column (FTRANU)

void CoinAbcTypeFactorization::updateColumnUSparse ( CoinIndexedVector *  regionSparse) const [protected]

Updates part of column (FTRANU) when sparse.

void CoinAbcTypeFactorization::updateColumnUDensish ( CoinIndexedVector *  regionSparse) const [protected]

Updates part of column (FTRANU)

void CoinAbcTypeFactorization::updateColumnUDense ( CoinIndexedVector *  regionSparse) const [protected]

Updates part of column (FTRANU) when dense (i.e. do as inner products)

void CoinAbcTypeFactorization::updateTwoColumnsUDensish ( CoinSimplexInt numberNonZero1,
CoinFactorizationDouble *COIN_RESTRICT  region1,
CoinSimplexInt *COIN_RESTRICT  index1,
CoinSimplexInt numberNonZero2,
CoinFactorizationDouble *COIN_RESTRICT  region2,
CoinSimplexInt *COIN_RESTRICT  index2 
) const [protected]

Updates part of 2 columns (FTRANU) real work.

void CoinAbcTypeFactorization::updateColumnPFI ( CoinIndexedVector *  regionSparse) const [protected]

Updates part of column PFI (FTRAN) (after rest)

void CoinAbcTypeFactorization::updateColumnTransposePFI ( CoinIndexedVector *  region) const [protected]

Updates part of column transpose PFI (BTRAN) (before rest)

void CoinAbcTypeFactorization::updateColumnTransposeU ( CoinIndexedVector *  region,
CoinSimplexInt  smallestIndex,
CoinAbcStatistics statistics 
) const [protected]

Updates part of column transpose (BTRANU), assumes index is sorted i.e.

region is correct

void CoinAbcTypeFactorization::updateColumnTransposeUDensish ( CoinIndexedVector *  region,
CoinSimplexInt  smallestIndex 
) const [protected]

Updates part of column transpose (BTRANU) when densish, assumes index is sorted i.e.

region is correct

void CoinAbcTypeFactorization::updateColumnTransposeUSparse ( CoinIndexedVector *  region) const [protected]

Updates part of column transpose (BTRANU) when sparse, assumes index is sorted i.e.

region is correct

void CoinAbcTypeFactorization::updateColumnTransposeUByColumn ( CoinIndexedVector *  region,
CoinSimplexInt  smallestIndex 
) const [protected]

Updates part of column transpose (BTRANU) by column assumes index is sorted i.e.

region is correct

void CoinAbcTypeFactorization::updateColumnTransposeR ( CoinIndexedVector *  region,
CoinAbcStatistics statistics 
) const [protected]

Updates part of column transpose (BTRANR)

void CoinAbcTypeFactorization::updateColumnTransposeRDensish ( CoinIndexedVector *  region) const [protected]

Updates part of column transpose (BTRANR) when dense.

void CoinAbcTypeFactorization::updateColumnTransposeRSparse ( CoinIndexedVector *  region) const [protected]

Updates part of column transpose (BTRANR) when sparse.

void CoinAbcTypeFactorization::updateColumnTransposeL ( CoinIndexedVector *  region,
CoinAbcStatistics statistics 
) const [protected]

Updates part of column transpose (BTRANL)

void CoinAbcTypeFactorization::updateColumnTransposeLDensish ( CoinIndexedVector *  region) const [protected]

Updates part of column transpose (BTRANL) when densish by column.

void CoinAbcTypeFactorization::updateColumnTransposeLByRow ( CoinIndexedVector *  region) const [protected]

Updates part of column transpose (BTRANL) when densish by row.

void CoinAbcTypeFactorization::updateColumnTransposeLSparse ( CoinIndexedVector *  region) const [protected]

Updates part of column transpose (BTRANL) when sparse (by Row)

CoinSimplexInt CoinAbcTypeFactorization::replaceColumnPFI ( CoinIndexedVector *  regionSparse,
CoinSimplexInt  pivotRow,
CoinSimplexDouble  alpha 
)

Replaces one Column to basis for PFI returns 0=OK, 1=Probably OK, 2=singular, 3=no room.

In this case region is not empty - it is incoming variable (updated)

Returns accuracy status of replaceColumn returns 0=OK, 1=Probably OK, 2=singular.

int CoinAbcTypeFactorization::pivot ( CoinSimplexInt  pivotRow,
CoinSimplexInt  pivotColumn,
CoinBigIndex  pivotRowPosition,
CoinBigIndex  pivotColumnPosition,
CoinFactorizationDouble *COIN_RESTRICT  work,
CoinSimplexUnsignedInt *COIN_RESTRICT  workArea2,
CoinSimplexInt  increment2,
int *COIN_RESTRICT  markRow 
) [protected]

0 fine, -99 singular, 2 dense

int CoinAbcTypeFactorization::pivot ( CoinSimplexInt pivotRow,
CoinSimplexInt pivotColumn,
CoinBigIndex  pivotRowPosition,
CoinBigIndex  pivotColumnPosition,
int *COIN_RESTRICT  markRow 
) [protected]
bool CoinAbcTypeFactorization::gotLCopy ( ) const [inline]

Definition at line 1142 of file CoinAbcBaseFactorization.hpp.

Definition at line 1143 of file CoinAbcBaseFactorization.hpp.

Definition at line 1144 of file CoinAbcBaseFactorization.hpp.

bool CoinAbcTypeFactorization::gotRCopy ( ) const [inline]

Definition at line 1145 of file CoinAbcBaseFactorization.hpp.

Definition at line 1146 of file CoinAbcBaseFactorization.hpp.

Definition at line 1147 of file CoinAbcBaseFactorization.hpp.

bool CoinAbcTypeFactorization::gotUCopy ( ) const [inline]

Definition at line 1148 of file CoinAbcBaseFactorization.hpp.

Definition at line 1149 of file CoinAbcBaseFactorization.hpp.

Definition at line 1150 of file CoinAbcBaseFactorization.hpp.

bool CoinAbcTypeFactorization::gotSparse ( ) const [inline]

Definition at line 1151 of file CoinAbcBaseFactorization.hpp.

Definition at line 1152 of file CoinAbcBaseFactorization.hpp.

Definition at line 1153 of file CoinAbcBaseFactorization.hpp.


Friends And Related Function Documentation

void CoinAbcFactorizationUnitTest ( const std::string &  mpsDir) [friend]

Member Data Documentation

Definition at line 837 of file CoinAbcBaseFactorization.hpp.

Definition at line 838 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::pivotRegionAddress_ [protected]

Definition at line 839 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementUAddress_ [protected]

Definition at line 840 of file CoinAbcBaseFactorization.hpp.

Definition at line 841 of file CoinAbcBaseFactorization.hpp.

Definition at line 842 of file CoinAbcBaseFactorization.hpp.

Definition at line 843 of file CoinAbcBaseFactorization.hpp.

Array of function pointers.

Definition at line 846 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementUColumnPlusAddress_ [protected]

Definition at line 847 of file CoinAbcBaseFactorization.hpp.

Definition at line 849 of file CoinAbcBaseFactorization.hpp.

Definition at line 851 of file CoinAbcBaseFactorization.hpp.

Definition at line 853 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementRowUAddress_ [protected]

Definition at line 857 of file CoinAbcBaseFactorization.hpp.

Definition at line 859 of file CoinAbcBaseFactorization.hpp.

Definition at line 860 of file CoinAbcBaseFactorization.hpp.

Definition at line 861 of file CoinAbcBaseFactorization.hpp.

Definition at line 862 of file CoinAbcBaseFactorization.hpp.

Next Row/Column with count.

Definition at line 864 of file CoinAbcBaseFactorization.hpp.

Previous Row/Column with count.

Definition at line 866 of file CoinAbcBaseFactorization.hpp.

Definition at line 867 of file CoinAbcBaseFactorization.hpp.

Definition at line 868 of file CoinAbcBaseFactorization.hpp.

Definition at line 869 of file CoinAbcBaseFactorization.hpp.

Definition at line 870 of file CoinAbcBaseFactorization.hpp.

Definition at line 871 of file CoinAbcBaseFactorization.hpp.

Definition at line 873 of file CoinAbcBaseFactorization.hpp.

Definition at line 874 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementLAddress_ [protected]

Definition at line 875 of file CoinAbcBaseFactorization.hpp.

Definition at line 876 of file CoinAbcBaseFactorization.hpp.

Definition at line 877 of file CoinAbcBaseFactorization.hpp.

Definition at line 879 of file CoinAbcBaseFactorization.hpp.

Definition at line 881 of file CoinAbcBaseFactorization.hpp.

Definition at line 882 of file CoinAbcBaseFactorization.hpp.

Definition at line 883 of file CoinAbcBaseFactorization.hpp.

Definition at line 884 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementRAddress_ [protected]

Elements of R.

Definition at line 886 of file CoinAbcBaseFactorization.hpp.

Row indices for R.

Definition at line 888 of file CoinAbcBaseFactorization.hpp.

Definition at line 889 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::elementByRowLAddress_ [protected]

Definition at line 890 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::denseAreaAddress_ [protected]

Definition at line 892 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDouble* CoinAbcTypeFactorization::workAreaAddress_ [protected]

Definition at line 894 of file CoinAbcBaseFactorization.hpp.

Definition at line 895 of file CoinAbcBaseFactorization.hpp.

Definition at line 896 of file CoinAbcBaseFactorization.hpp.

Definition at line 898 of file CoinAbcBaseFactorization.hpp.

Definition at line 899 of file CoinAbcBaseFactorization.hpp.

Number of Rows after iterating.

Definition at line 902 of file CoinAbcBaseFactorization.hpp.

Maximum number of Rows after iterating.

Definition at line 904 of file CoinAbcBaseFactorization.hpp.

Size of small inverse.

Definition at line 906 of file CoinAbcBaseFactorization.hpp.

Number factorized in L.

Definition at line 908 of file CoinAbcBaseFactorization.hpp.

Number Rows left (numberRows-numberGood)

Definition at line 910 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::totalElements_ [protected]

Number of elements in U (to go) or while iterating total overall.

Definition at line 913 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::firstZeroed_ [protected]

First place in funny copy zeroed out.

Definition at line 915 of file CoinAbcBaseFactorization.hpp.

Below this use sparse technology - if 0 then no L row copy.

Definition at line 918 of file CoinAbcBaseFactorization.hpp.

Number in R.

Definition at line 921 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthR_ [protected]

Length of R stuff.

Definition at line 923 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthAreaR_ [protected]

length of area reserved for R

Definition at line 925 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::numberL_ [protected]

Number in L.

Definition at line 927 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::baseL_ [protected]

Base of L.

Definition at line 929 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthL_ [protected]

Length of L.

Definition at line 931 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthAreaL_ [protected]

Length of area reserved for L.

Definition at line 933 of file CoinAbcBaseFactorization.hpp.

Number in U.

Definition at line 935 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::maximumU_ [protected]

Maximum space used in U.

Definition at line 937 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthU_ [protected]

Length of U.

Definition at line 939 of file CoinAbcBaseFactorization.hpp.

CoinBigIndex CoinAbcTypeFactorization::lengthAreaU_ [protected]

Length of area reserved for U.

Definition at line 941 of file CoinAbcBaseFactorization.hpp.

Last entry by column for U.

Definition at line 943 of file CoinAbcBaseFactorization.hpp.

Last entry by column for U.

Definition at line 946 of file CoinAbcBaseFactorization.hpp.

Length of U.

Definition at line 948 of file CoinAbcBaseFactorization.hpp.

Last entry by row for U.

Definition at line 951 of file CoinAbcBaseFactorization.hpp.

Number of trials before rejection.

Definition at line 953 of file CoinAbcBaseFactorization.hpp.

Leading dimension for dense.

Definition at line 956 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::pivotColumn_ [protected]

Pivot order for each Column.

Definition at line 965 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::permute_ [protected]

Permutation vector for pivot row order.

Definition at line 967 of file CoinAbcBaseFactorization.hpp.

CoinBigIndexArrayWithLength CoinAbcTypeFactorization::startRowU_ [protected]

Start of each Row as pointer.

Definition at line 969 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::numberInRow_ [protected]

Number in each Row.

Definition at line 971 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::numberInColumn_ [protected]

Number in each Column.

Definition at line 973 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::numberInColumnPlus_ [protected]

Number in each Column including pivoted.

Definition at line 975 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::firstCount_ [protected]

First Row/Column with count of k, can tell which by offset - Rows then Columns.

Definition at line 978 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::nextColumn_ [protected]

Next Column in memory order.

Definition at line 980 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::lastColumn_ [protected]

Previous Column in memory order.

Definition at line 982 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::nextRow_ [protected]

Next Row in memory order.

Definition at line 984 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::lastRow_ [protected]

Previous Row in memory order.

Definition at line 986 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::saveColumn_ [protected]

Columns left to do in a single pivot.

Definition at line 988 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::markRow_ [protected]

Marks rows to be updated.

Definition at line 990 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::indexColumnU_ [protected]

Base address for U (may change)

Definition at line 992 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDoubleArrayWithLength CoinAbcTypeFactorization::pivotRegion_ [protected]

Inverses of pivot values.

Definition at line 994 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDoubleArrayWithLength CoinAbcTypeFactorization::elementU_ [protected]

Elements of U.

Definition at line 996 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::indexRowU_ [protected]

Row indices of U.

Definition at line 998 of file CoinAbcBaseFactorization.hpp.

CoinBigIndexArrayWithLength CoinAbcTypeFactorization::startColumnU_ [protected]

Start of each column in U.

Definition at line 1000 of file CoinAbcBaseFactorization.hpp.

CoinArbitraryArrayWithLength CoinAbcTypeFactorization::scatterUColumn_ [protected]

Array of structs for U Column.

Definition at line 1003 of file CoinAbcBaseFactorization.hpp.

CoinBigIndexArrayWithLength CoinAbcTypeFactorization::convertRowToColumnU_ [protected]

Converts rows to columns in U.

Definition at line 1007 of file CoinAbcBaseFactorization.hpp.

CoinBigIndexArrayWithLength CoinAbcTypeFactorization::convertColumnToRowU_ [protected]

Converts columns to rows in U.

Definition at line 1010 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDoubleArrayWithLength CoinAbcTypeFactorization::elementRowU_ [protected]

Elements of U by row.

Definition at line 1015 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDoubleArrayWithLength CoinAbcTypeFactorization::elementL_ [protected]

Elements of L.

Definition at line 1018 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::indexRowL_ [protected]

Row indices of L.

Definition at line 1020 of file CoinAbcBaseFactorization.hpp.

CoinBigIndexArrayWithLength CoinAbcTypeFactorization::startColumnL_ [protected]

Start of each column in L.

Definition at line 1022 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDoubleArrayWithLength CoinAbcTypeFactorization::denseArea_ [protected]

Dense area.

Definition at line 1025 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDoubleArrayWithLength CoinAbcTypeFactorization::workArea_ [protected]

First work area.

Reimplemented from CoinAbcAnyFactorization.

Definition at line 1028 of file CoinAbcBaseFactorization.hpp.

CoinUnsignedIntArrayWithLength CoinAbcTypeFactorization::workArea2_ [protected]

Second work area.

Definition at line 1030 of file CoinAbcBaseFactorization.hpp.

CoinBigIndexArrayWithLength CoinAbcTypeFactorization::startRowL_ [protected]

Start of each row in L.

Definition at line 1033 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::indexColumnL_ [protected]

Index of column in row for L.

Definition at line 1035 of file CoinAbcBaseFactorization.hpp.

CoinFactorizationDoubleArrayWithLength CoinAbcTypeFactorization::elementByRowL_ [protected]

Elements in L (row copy)

Definition at line 1037 of file CoinAbcBaseFactorization.hpp.

CoinIntArrayWithLength CoinAbcTypeFactorization::sparse_ [mutable, protected]

Sparse regions.

Definition at line 1039 of file CoinAbcBaseFactorization.hpp.

Detail in messages.

Definition at line 1042 of file CoinAbcBaseFactorization.hpp.

Number of compressions done.

Definition at line 1044 of file CoinAbcBaseFactorization.hpp.

Definition at line 1046 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranCountInput_ [mutable, protected]

To decide how to solve.

Definition at line 1049 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranCountAfterL_ [mutable, protected]

Definition at line 1050 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranCountAfterR_ [mutable, protected]

Definition at line 1051 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranCountAfterU_ [mutable, protected]

Definition at line 1052 of file CoinAbcBaseFactorization.hpp.

Definition at line 1053 of file CoinAbcBaseFactorization.hpp.

Definition at line 1054 of file CoinAbcBaseFactorization.hpp.

Definition at line 1055 of file CoinAbcBaseFactorization.hpp.

Definition at line 1060 of file CoinAbcBaseFactorization.hpp.

Maximum rows (ever) (here to use double alignment)

Reimplemented from CoinAbcAnyFactorization.

Definition at line 1063 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranFTCountInput_ [mutable, protected]

Definition at line 1065 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranFTCountAfterL_ [mutable, protected]

Definition at line 1066 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranFTCountAfterR_ [mutable, protected]

Definition at line 1067 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::ftranFTCountAfterU_ [mutable, protected]

Definition at line 1068 of file CoinAbcBaseFactorization.hpp.

Definition at line 1069 of file CoinAbcBaseFactorization.hpp.

Definition at line 1070 of file CoinAbcBaseFactorization.hpp.

Definition at line 1071 of file CoinAbcBaseFactorization.hpp.

Definition at line 1076 of file CoinAbcBaseFactorization.hpp.

Dense threshold (here to use double alignment)

Definition at line 1080 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::btranCountInput_ [mutable, protected]

Definition at line 1083 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::btranCountAfterU_ [mutable, protected]

Definition at line 1084 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::btranCountAfterR_ [mutable, protected]

Definition at line 1085 of file CoinAbcBaseFactorization.hpp.

double CoinAbcTypeFactorization::btranCountAfterL_ [mutable, protected]

Definition at line 1086 of file CoinAbcBaseFactorization.hpp.

Definition at line 1087 of file CoinAbcBaseFactorization.hpp.

Definition at line 1088 of file CoinAbcBaseFactorization.hpp.

Definition at line 1089 of file CoinAbcBaseFactorization.hpp.

Definition at line 1094 of file CoinAbcBaseFactorization.hpp.

Maximum maximum pivots.

Definition at line 1097 of file CoinAbcBaseFactorization.hpp.

To decide how to solve.

Definition at line 1100 of file CoinAbcBaseFactorization.hpp.

Definition at line 1101 of file CoinAbcBaseFactorization.hpp.

Definition at line 1102 of file CoinAbcBaseFactorization.hpp.

Definition at line 1103 of file CoinAbcBaseFactorization.hpp.

Definition at line 1104 of file CoinAbcBaseFactorization.hpp.

Definition at line 1105 of file CoinAbcBaseFactorization.hpp.

Definition at line 1106 of file CoinAbcBaseFactorization.hpp.

Definition at line 1111 of file CoinAbcBaseFactorization.hpp.

Rows first time nonzero.

Definition at line 1114 of file CoinAbcBaseFactorization.hpp.

To decide how to solve.

Definition at line 1117 of file CoinAbcBaseFactorization.hpp.

Definition at line 1118 of file CoinAbcBaseFactorization.hpp.

Definition at line 1119 of file CoinAbcBaseFactorization.hpp.

Definition at line 1120 of file CoinAbcBaseFactorization.hpp.

Definition at line 1121 of file CoinAbcBaseFactorization.hpp.

Definition at line 1122 of file CoinAbcBaseFactorization.hpp.

Definition at line 1123 of file CoinAbcBaseFactorization.hpp.

Definition at line 1128 of file CoinAbcBaseFactorization.hpp.

State of saved version and what can be done 0 - nothing saved 1 - saved and can go back to previous save by unwinding 2 - saved - getting on for a full copy higher bits - see ABC_FAC....

Definition at line 1136 of file CoinAbcBaseFactorization.hpp.

Size in bytes of a sparseArray.

Definition at line 1138 of file CoinAbcBaseFactorization.hpp.


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