Belle II Software  release-05-02-19
BorderedBandMatrix.h
Go to the documentation of this file.
1 /*
2  * BorderedBandMatrix.h
3  *
4  * Created on: Aug 14, 2011
5  * Author: kleinwrt
6  */
7 
8 
31 #ifndef BORDEREDBANDMATRIX_H_
32 #define BORDEREDBANDMATRIX_H_
33 
34 #include<iostream>
35 #include<vector>
36 #include<math.h>
37 #include<cstdlib>
38 #include "TVectorD.h"
39 #include "TMatrixD.h"
40 #include "TMatrixDSym.h"
41 #include "VMatrix.h"
42 
44 namespace gbl {
45 
47 
80 public:
82  virtual ~BorderedBandMatrix();
83  void resize(unsigned int nSize, unsigned int nBorder = 1,
84  unsigned int nBand = 5);
85  void solveAndInvertBorderedBand(const VVector &aRightHandSide,
86  VVector &aSolution);
87  void addBlockMatrix(double aWeight,
88  const std::vector<unsigned int>* anIndex,
89  const std::vector<double>* aVector);
90  TMatrixDSym getBlockMatrix(const std::vector<unsigned int> anIndex) const;
91  void printMatrix() const;
92 
93 private:
94  unsigned int numSize;
95  unsigned int numBorder;
96  unsigned int numBand;
97  unsigned int numCol;
101 
102  void decomposeBand();
103  VVector solveBand(const VVector &aRightHandSide) const;
104  VMatrix solveBand(const VMatrix &aRightHandSide) const;
106  VMatrix bandOfAVAT(const VMatrix &anArray,
107  const VSymMatrix &aSymArray) const;
108 };
109 }
110 #endif /* BORDEREDBANDMATRIX_H_ */
gbl::BorderedBandMatrix::theBorder
VSymMatrix theBorder
Border part.
Definition: BorderedBandMatrix.h:98
gbl::BorderedBandMatrix::numSize
unsigned int numSize
Matrix size.
Definition: BorderedBandMatrix.h:94
gbl::BorderedBandMatrix::BorderedBandMatrix
BorderedBandMatrix()
Create bordered band matrix.
Definition: BorderedBandMatrix.cc:36
gbl::VVector
Simple Vector based on std::vector<double>
Definition: VMatrix.h:43
VMatrix.h
gbl::BorderedBandMatrix::solveBand
VVector solveBand(const VVector &aRightHandSide) const
Solve for band part.
Definition: BorderedBandMatrix.cc:234
gbl
Namespace for the general broken lines package.
Definition: BorderedBandMatrix.h:44
gbl::BorderedBandMatrix
(Symmetric) Bordered Band Matrix.
Definition: BorderedBandMatrix.h:79
gbl::BorderedBandMatrix::bandOfAVAT
VMatrix bandOfAVAT(const VMatrix &anArray, const VSymMatrix &aSymArray) const
Calculate band part of: 'anArray * aSymArray * anArray.T'.
Definition: BorderedBandMatrix.cc:316
gbl::BorderedBandMatrix::theBand
VMatrix theBand
Band part.
Definition: BorderedBandMatrix.h:100
gbl::BorderedBandMatrix::printMatrix
void printMatrix() const
Print bordered band matrix.
Definition: BorderedBandMatrix.cc:180
gbl::VMatrix
Simple Matrix based on std::vector<double>
Definition: VMatrix.h:63
gbl::BorderedBandMatrix::numBorder
unsigned int numBorder
Border size.
Definition: BorderedBandMatrix.h:95
gbl::BorderedBandMatrix::addBlockMatrix
void addBlockMatrix(double aWeight, const std::vector< unsigned int > *anIndex, const std::vector< double > *aVector)
Add symmetric block matrix.
Definition: BorderedBandMatrix.cc:68
gbl::BorderedBandMatrix::solveAndInvertBorderedBand
void solveAndInvertBorderedBand(const VVector &aRightHandSide, VVector &aSolution)
Solve linear equation system, partially calculate inverse.
Definition: BorderedBandMatrix.cc:147
gbl::BorderedBandMatrix::decomposeBand
void decomposeBand()
(root free) Cholesky decomposition of band part: C=LDL^T
Definition: BorderedBandMatrix.cc:199
gbl::BorderedBandMatrix::numCol
unsigned int numCol
Band matrix size.
Definition: BorderedBandMatrix.h:97
gbl::BorderedBandMatrix::resize
void resize(unsigned int nSize, unsigned int nBorder=1, unsigned int nBand=5)
Resize bordered band matrix.
Definition: BorderedBandMatrix.cc:48
gbl::BorderedBandMatrix::getBlockMatrix
TMatrixDSym getBlockMatrix(const std::vector< unsigned int > anIndex) const
Retrieve symmetric block matrix.
Definition: BorderedBandMatrix.cc:97
gbl::VSymMatrix
Simple symmetric Matrix based on std::vector<double>
Definition: VMatrix.h:86
gbl::BorderedBandMatrix::numBand
unsigned int numBand
Band width.
Definition: BorderedBandMatrix.h:96
gbl::BorderedBandMatrix::invertBand
VMatrix invertBand()
Invert band part.
Definition: BorderedBandMatrix.cc:292
gbl::BorderedBandMatrix::theMixed
VMatrix theMixed
Mixed part.
Definition: BorderedBandMatrix.h:99