Dense class for Clp Cholesky factorization. More...
#include <ClpCholeskyDense.hpp>
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. |
Dense class for Clp Cholesky factorization.
Definition at line 12 of file ClpCholeskyDense.hpp.
ClpCholeskyDense::ClpCholeskyDense | ( | ) |
Default constructor.
virtual ClpCholeskyDense::~ClpCholeskyDense | ( | ) | [virtual] |
Destructor.
ClpCholeskyDense::ClpCholeskyDense | ( | const ClpCholeskyDense & | ) |
Default constructor.
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] |
ClpCholeskyDense& ClpCholeskyDense::operator= | ( | const ClpCholeskyDense & | ) |
Default constructor.
Reimplemented from ClpCholeskyBase.
virtual ClpCholeskyBase* ClpCholeskyDense::clone | ( | ) | const [virtual] |
Clone.
Reimplemented from ClpCholeskyBase.
bool ClpCholeskyDense::borrowSpace_ [private] |
Just borrowing space.
Definition at line 132 of file ClpCholeskyDense.hpp.