30#ifndef BORDEREDBANDMATRIX_H_
31#define BORDEREDBANDMATRIX_H_
80 void resize(
unsigned int nSize,
unsigned int nBorder = 1,
81 unsigned int nBand = 7);
86 const std::vector<unsigned int>* anIndex,
87 const std::vector<double>* aVector);
89 unsigned int* anIndex,
double* aVector);
91 const std::vector<unsigned int> anIndex)
const;
93 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()
Eigen::MatrixXd getBlockMatrix(const std::vector< unsigned int > anIndex) const
Retrieve symmetric block matrix.
VSymMatrix theBorder
Border part.
unsigned int numBand
Band width.
VVector solveBand(const VVector &aRightHandSide) const
Solve for band part.
void setZero()
Set content to 0.
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.
VMatrix theBand
Band part.
void solveAndInvertBorderedBand(const VVector &aRightHandSide, VVector &aSolution)
Solve linear equation system, partially calculate inverse.
unsigned int numSize
Matrix size.
void resize(unsigned int nSize, unsigned int nBorder=1, unsigned int nBand=7)
Resize bordered band matrix.
void addBlockMatrix(double aWeight, const std::vector< unsigned int > *anIndex, const std::vector< double > *aVector)
Add 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.