- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# ClpCholeskyDense Class Reference

Dense class for Clp Cholesky factorization. More...

`#include <ClpCholeskyDense.hpp>`

Inheritance diagram for ClpCholeskyDense:

[legend]
Collaboration diagram for ClpCholeskyDense:

[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 *work, 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 (const longDouble *COIN_RESTRICT above, const longDouble *COIN_RESTRICT aUnder, longDouble *COIN_RESTRICT aOther, const longDouble *COIN_RESTRICT 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 * | work,
|  | 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 | ( | const longDouble *COIN_RESTRICT | above,
|  | const longDouble *COIN_RESTRICT | aUnder,
|  | longDouble *COIN_RESTRICT | aOther,
|  | const longDouble *COIN_RESTRICT | 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 108 of file ClpCholeskyDense.hpp.

References ClpCholeskyBase::sparseFactor_.

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

Diagonal.

Reimplemented from ClpCholeskyBase.

Definition at line 111 of file ClpCholeskyDense.hpp.

References ClpCholeskyBase::diagonal_.

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

Default constructor.

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

Clone.

Reimplemented from ClpCholeskyBase.

## Member Data Documentation

bool ClpCholeskyDense::borrowSpace_`[private]`

Just borrowing space.

Definition at line 135 of file ClpCholeskyDense.hpp.

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

- /home/coin/SVN-release/Bcps-0.91.0/Clp/src/ClpCholeskyDense.hpp