ClpCholeskyDense Class Reference

Dense class for Clp Cholesky factorization. More...

#include <ClpCholeskyDense.hpp>

Inheritance diagram for ClpCholeskyDense:

Inheritance graph
[legend]
Collaboration diagram for ClpCholeskyDense:

Collaboration graph
[legend]

List of all members.

Public Member Functions

Virtual methods that the derived classes provides
virtual int order (ClpInterior *model)
 Orders rows and saves pointer to matrix.and model.
virtual int symbolic ()
 Does Symbolic factorization given permutation.
virtual int factorize (const double *diagonal, int *rowsDropped)
 Factorize - filling in rowsDropped and returning number dropped.
virtual void solve (double *region)
 Uses factorization to solve.
Non virtual methods for ClpCholeskyDense
int reserveSpace (const ClpCholeskyBase *factor, int numberRows)
 Reserves space.
CoinBigIndex space (int numberRows) const
 Returns space needed.
void factorizePart2 (int *rowsDropped)
 part 2 of Factorize - filling in rowsDropped
void factorizePart3 (int *rowsDropped)
 part 2 of Factorize - filling in rowsDropped - blocked
void factor (longDouble *a, int n, int numberBlocks, longDouble *diagonal, longDouble *work, int *rowsDropped)
 Non leaf recursive factor.
void triRec (longDouble *aTri, int nThis, longDouble *aUnder, longDouble *diagonal, longDouble *work, int nLeft, int iBlock, int jBlock, int numberBlocks)
 Non leaf recursive triangle rectangle update.
void recTri (longDouble *aUnder, int nTri, int nDo, int iBlock, int jBlock, longDouble *aTri, longDouble *diagonal, longDouble *work, int numberBlocks)
 Non leaf recursive rectangle triangle update.
void recRec (longDouble *above, int nUnder, int nUnderK, int nDo, longDouble *aUnder, longDouble *aOther, longDouble *diagonal, longDouble *work, int kBlock, int iBlock, int jBlock, int numberBlocks)
 Non leaf recursive rectangle rectangle update, nUnder is number of rows in iBlock, nUnderK is number of rows in kBlock.
void factorLeaf (longDouble *a, int n, longDouble *diagonal, longDouble *work, int *rowsDropped)
 Leaf recursive factor.
void triRecLeaf (longDouble *aTri, longDouble *aUnder, longDouble *diagonal, longDouble *work, int nUnder)
 Leaf recursive triangle rectangle update.
void recTriLeaf (longDouble *aUnder, longDouble *aTri, longDouble *diagonal, longDouble *work, int nUnder)
 Leaf recursive rectangle triangle update.
void recRecLeaf (longDouble *above, longDouble *aUnder, longDouble *aOther, longDouble *diagonal, longDouble *work, int nUnder)
 Leaf recursive rectangle rectangle update, nUnder is number of rows in iBlock, nUnderK is number of rows in kBlock.
void solveF1 (longDouble *a, int n, double *region)
 Forward part of solve.
void solveF2 (longDouble *a, int n, double *region, double *region2)
 Reserves space.
void solveB1 (longDouble *a, int n, double *region)
 Backward part of solve.
void solveB2 (longDouble *a, int n, double *region, double *region2)
 Reserves space.
void solveLong (longDouble *region)
 Uses factorization to solve.
void solveF1Long (longDouble *a, int n, longDouble *region)
 Forward part of solve.
void solveF2Long (longDouble *a, int n, longDouble *region, longDouble *region2)
 Reserves space.
void solveB1Long (longDouble *a, int n, longDouble *region)
 Backward part of solve.
void solveB2Long (longDouble *a, int n, longDouble *region, longDouble *region2)
 Reserves space.
void solveLongWork (longWork *region)
 Uses factorization to solve.
void solveF1LongWork (longDouble *a, int n, longWork *region)
 Forward part of solve.
void solveF2LongWork (longDouble *a, int n, longWork *region, longWork *region2)
 Reserves space.
void solveB1LongWork (longDouble *a, int n, longWork *region)
 Backward part of solve.
void solveB2LongWork (longDouble *a, int n, longWork *region, longWork *region2)
 Reserves space.
int bNumber (const longDouble *array, int &, int &)
 Reserves space.
longDouble * aMatrix () const
 A.
longDouble * diagonal () const
 Diagonal.
Constructors, destructor
 ClpCholeskyDense ()
 Default constructor.
virtual ~ClpCholeskyDense ()
 Destructor.
 ClpCholeskyDense (const ClpCholeskyDense &)
 Default constructor.
ClpCholeskyDense & operator= (const ClpCholeskyDense &)
 Default constructor.
virtual ClpCholeskyBase * clone () const
 Clone.

Private Attributes

Data members
bool borrowSpace_
 Just borrowing space.


Detailed Description

Dense class for Clp Cholesky factorization.

Definition at line 12 of file ClpCholeskyDense.hpp.


Constructor & Destructor Documentation

ClpCholeskyDense::ClpCholeskyDense (  ) 

Default constructor.

virtual ClpCholeskyDense::~ClpCholeskyDense (  )  [virtual]

Destructor.

ClpCholeskyDense::ClpCholeskyDense ( const ClpCholeskyDense &   ) 

Default constructor.


Member Function Documentation

virtual int ClpCholeskyDense::order ( ClpInterior *  model  )  [virtual]

Orders rows and saves pointer to matrix.and model.

Returns non-zero if not enough memory

Reimplemented from ClpCholeskyBase.

virtual int ClpCholeskyDense::symbolic (  )  [virtual]

Does Symbolic factorization given permutation.

This is called immediately after order. If user provides this then user must provide factorize and solve. Otherwise the default factorization is used returns non-zero if not enough memory

Reimplemented from ClpCholeskyBase.

virtual int ClpCholeskyDense::factorize ( const double *  diagonal,
int *  rowsDropped 
) [virtual]

Factorize - filling in rowsDropped and returning number dropped.

If return code negative then out of memory

Reimplemented from ClpCholeskyBase.

virtual void ClpCholeskyDense::solve ( double *  region  )  [virtual]

Uses factorization to solve.

Reimplemented from ClpCholeskyBase.

int ClpCholeskyDense::reserveSpace ( const ClpCholeskyBase *  factor,
int  numberRows 
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

CoinBigIndex ClpCholeskyDense::space ( int  numberRows  )  const

Returns space needed.

void ClpCholeskyDense::factorizePart2 ( int *  rowsDropped  ) 

part 2 of Factorize - filling in rowsDropped

Reimplemented from ClpCholeskyBase.

void ClpCholeskyDense::factorizePart3 ( int *  rowsDropped  ) 

part 2 of Factorize - filling in rowsDropped - blocked

void ClpCholeskyDense::factor ( longDouble *  a,
int  n,
int  numberBlocks,
longDouble *  diagonal,
longDouble *  work,
int *  rowsDropped 
)

Non leaf recursive factor.

void ClpCholeskyDense::triRec ( longDouble *  aTri,
int  nThis,
longDouble *  aUnder,
longDouble *  diagonal,
longDouble *  work,
int  nLeft,
int  iBlock,
int  jBlock,
int  numberBlocks 
)

Non leaf recursive triangle rectangle update.

void ClpCholeskyDense::recTri ( longDouble *  aUnder,
int  nTri,
int  nDo,
int  iBlock,
int  jBlock,
longDouble *  aTri,
longDouble *  diagonal,
longDouble *  work,
int  numberBlocks 
)

Non leaf recursive rectangle triangle update.

void ClpCholeskyDense::recRec ( longDouble *  above,
int  nUnder,
int  nUnderK,
int  nDo,
longDouble *  aUnder,
longDouble *  aOther,
longDouble *  diagonal,
longDouble *  work,
int  kBlock,
int  iBlock,
int  jBlock,
int  numberBlocks 
)

Non leaf recursive rectangle rectangle update, nUnder is number of rows in iBlock, nUnderK is number of rows in kBlock.

void ClpCholeskyDense::factorLeaf ( longDouble *  a,
int  n,
longDouble *  diagonal,
longDouble *  work,
int *  rowsDropped 
)

Leaf recursive factor.

void ClpCholeskyDense::triRecLeaf ( longDouble *  aTri,
longDouble *  aUnder,
longDouble *  diagonal,
longDouble *  work,
int  nUnder 
)

Leaf recursive triangle rectangle update.

void ClpCholeskyDense::recTriLeaf ( longDouble *  aUnder,
longDouble *  aTri,
longDouble *  diagonal,
longDouble *  work,
int  nUnder 
)

Leaf recursive rectangle triangle update.

void ClpCholeskyDense::recRecLeaf ( longDouble *  above,
longDouble *  aUnder,
longDouble *  aOther,
longDouble *  diagonal,
longDouble *  work,
int  nUnder 
)

Leaf recursive rectangle rectangle update, nUnder is number of rows in iBlock, nUnderK is number of rows in kBlock.

void ClpCholeskyDense::solveF1 ( longDouble *  a,
int  n,
double *  region 
)

Forward part of solve.

void ClpCholeskyDense::solveF2 ( longDouble *  a,
int  n,
double *  region,
double *  region2 
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

void ClpCholeskyDense::solveB1 ( longDouble *  a,
int  n,
double *  region 
)

Backward part of solve.

void ClpCholeskyDense::solveB2 ( longDouble *  a,
int  n,
double *  region,
double *  region2 
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

void ClpCholeskyDense::solveLong ( longDouble *  region  ) 

Uses factorization to solve.

void ClpCholeskyDense::solveF1Long ( longDouble *  a,
int  n,
longDouble *  region 
)

Forward part of solve.

void ClpCholeskyDense::solveF2Long ( longDouble *  a,
int  n,
longDouble *  region,
longDouble *  region2 
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

void ClpCholeskyDense::solveB1Long ( longDouble *  a,
int  n,
longDouble *  region 
)

Backward part of solve.

void ClpCholeskyDense::solveB2Long ( longDouble *  a,
int  n,
longDouble *  region,
longDouble *  region2 
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

void ClpCholeskyDense::solveLongWork ( longWork *  region  ) 

Uses factorization to solve.

void ClpCholeskyDense::solveF1LongWork ( longDouble *  a,
int  n,
longWork *  region 
)

Forward part of solve.

void ClpCholeskyDense::solveF2LongWork ( longDouble *  a,
int  n,
longWork *  region,
longWork *  region2 
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

void ClpCholeskyDense::solveB1LongWork ( longDouble *  a,
int  n,
longWork *  region 
)

Backward part of solve.

void ClpCholeskyDense::solveB2LongWork ( longDouble *  a,
int  n,
longWork *  region,
longWork *  region2 
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

int ClpCholeskyDense::bNumber ( const longDouble *  array,
int &  ,
int &   
)

Reserves space.

If factor not NULL then just uses passed space Returns non-zero if not enough memory

longDouble* ClpCholeskyDense::aMatrix (  )  const [inline]

A.

Definition at line 105 of file ClpCholeskyDense.hpp.

longDouble* ClpCholeskyDense::diagonal (  )  const [inline]

Diagonal.

Reimplemented from ClpCholeskyBase.

Definition at line 108 of file ClpCholeskyDense.hpp.

ClpCholeskyDense& ClpCholeskyDense::operator= ( const ClpCholeskyDense &   ) 

Default constructor.

virtual ClpCholeskyBase* ClpCholeskyDense::clone (  )  const [virtual]

Clone.

Reimplemented from ClpCholeskyBase.


Member Data Documentation

Just borrowing space.

Definition at line 132 of file ClpCholeskyDense.hpp.


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

Generated on Sat Jul 26 17:24:08 2008 by  doxygen 1.5.6