8#ifndef BORDEREDBANDMATRIX_H_
9#define BORDEREDBANDMATRIX_H_
19#include <TMatrixDSym.h>
62 void resize(
unsigned int nSize,
unsigned int nBorder = 1,
63 unsigned int nBand = 5);
67 const std::vector<unsigned int>* anIndex,
68 const std::vector<double>* aVector);
69 TMatrixDSym
getBlockMatrix(
const std::vector<unsigned int> anIndex)
const;
(Symmetric) Bordered Band Matrix.
VMatrix theMixed
Mixed part.
void printMatrix() const
Print bordered band matrix.
void decomposeBand()
(root free) Cholesky decomposition of band part: C=LDL^T
virtual ~BorderedBandMatrix()
VSymMatrix theBorder
Border part.
unsigned int numBand
Band width.
VVector solveBand(const VVector &aRightHandSide) const
Solve for band part.
unsigned int numCol
Band matrix size.
BorderedBandMatrix()
Create bordered band matrix.
VMatrix bandOfAVAT(const VMatrix &anArray, const VSymMatrix &aSymArray) const
Calculate band part of: 'anArray * aSymArray * anArray.T'.
VMatrix invertBand()
Invert band part.
unsigned int numBorder
Border size.
void resize(unsigned int nSize, unsigned int nBorder=1, unsigned int nBand=5)
Resize bordered band matrix.
VMatrix theBand
Band part.
void solveAndInvertBorderedBand(const VVector &aRightHandSide, VVector &aSolution)
Solve linear equation system, partially calculate inverse.
unsigned int numSize
Matrix size.
void addBlockMatrix(double aWeight, const std::vector< unsigned int > *anIndex, const std::vector< double > *aVector)
Add symmetric block matrix.
TMatrixDSym getBlockMatrix(const std::vector< unsigned int > anIndex) const
Retrieve symmetric block matrix.
Simple Matrix based on std::vector<double>
Simple symmetric Matrix based on std::vector<double>
Simple Vector based on std::vector<double>
Namespace for the general broken lines package.