DenseMatrixArithmetics Class Reference

#include <DenseMatrixArithmeticsNN.h>

Inheritance diagram for DenseMatrixArithmetics:
DenseMatrixArithmetics1x1 DenseMatrixArithmetics2x2 DenseMatrixArithmetics3x3 DenseMatrixArithmetics4x4 DenseMatrixArithmetics5x5 DenseMatrixArithmetics6x6 DenseMatrixArithmetics_Fake

List of all members.

Public Member Functions

virtual void AddMultBlockByVectorSym (double *B, double *x, double *b, long bi_bn, long bj_bn)
virtual void Cholesky_Decomposition (double *pC, double *&p)
 Solves LL' decomposition of symmetric pC column based matrix The result is stored in lower half of the matrix pC.
virtual void Cholesky_Linv (double *pC, double *p)
virtual void Cholesky_Solve (double *pC, double *p, double *b, double *x)
 Solve LL^T x = b.
virtual void ComputeInversionByCholesky (double *C, double *Inv)
void ComputeInversionByLDL (double *C, double *Inv)
 DenseMatrixArithmetics (long bn)
virtual void FactorizeBlock (double *A)
virtual bool GaussElimination (double *C, double *blockA)
virtual void GetInversion (double *C, double *blockA)
virtual void L_BlockSolve (double *C, double *B)
 Solve LL^T x = b.
void LDL_Decomposition (double *A)
void LDL_Solve (double *A, double *b, const long startIndex=0)
virtual void LL_Decomposition (double *pC)
 Solves LL' decomposition of symmetric pC column based matrix The result is stored in lower half of the matrix pC.
virtual void LL_Solve (double *pC, double *b, double *x)
 Solve LL^T x = b.
virtual void LU_Decomposition (double *C)
void LU_Solve (double *C, double *b)
virtual void MultDiagonalBlockByVector (double *B, double *x, double *b)
virtual void SubATBproduct (double *pC, double *pA, double *pB)
virtual void SubMultBlockByVector (double *B, double *x, double *b)
virtual void SubMultTBlockByVector (double *B, double *x, double *b)
virtual void SubstSolve (double *A, double *b)
virtual void SubstSolveBlock (double *A, double *B)
virtual void SubstSolveL (double *pC, double *x)
virtual void SubstSolveLT (double *pC, double *x)
void ULT_BlockSolve (double *C, double *B)
virtual ~DenseMatrixArithmetics ()

Static Public Member Functions

static DenseMatrixArithmeticsNewArithmetics (long block_size)

Public Attributes

long bn
long bn1
long bnbn
MathTracereMT
MathTracer MT
ePreferedDecomposition prefered_decomposition

Static Public Attributes

static long zero_pivots = 0

Private Attributes

double * p
double tmp

Detailed Description

Definition at line 18 of file DenseMatrixArithmeticsNN.h.


Constructor & Destructor Documentation

DenseMatrixArithmetics ( long  bn  ) 

Definition at line 29 of file DenseMatrixArithmeticsNN.cpp.

References bn1, bnbn, eLDL_decomposition, eMT, MT, p, prefered_decomposition, and zero_pivots.

Referenced by NewArithmetics().

~DenseMatrixArithmetics (  )  [virtual]

Definition at line 40 of file DenseMatrixArithmeticsNN.cpp.

References p.


Member Function Documentation

void AddMultBlockByVectorSym ( double *  B,
double *  x,
double *  b,
long  bi_bn,
long  bj_bn 
) [virtual]

Definition at line 46 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by SparseGridMtxLDL::MultiplyByVector().

void Cholesky_Decomposition ( double *  pC,
double *&  p 
) [virtual]

Solves LL' decomposition of symmetric pC column based matrix The result is stored in lower half of the matrix pC.

Parameters:
pC matrix to be factorized
p here we store the diagonal elements of L

Definition at line 110 of file DenseMatrixArithmeticsNN.cpp.

References bn, and zero_pivots.

Referenced by ComputeInversionByCholesky().

void Cholesky_Linv ( double *  pC,
double *  p 
) [virtual]

Definition at line 164 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by ComputeInversionByCholesky().

void Cholesky_Solve ( double *  pC,
double *  p,
double *  b,
double *  x 
) [virtual]

Solve LL^T x = b.

Parameters:
pC factorized L matrix (lower triangle)
p diagonal elements of L
b right side
x unknowns

Definition at line 146 of file DenseMatrixArithmeticsNN.cpp.

References bn.

void ComputeInversionByCholesky ( double *  C,
double *  Inv 
) [virtual]

Definition at line 180 of file DenseMatrixArithmeticsNN.cpp.

References bn, Cholesky_Decomposition(), Cholesky_Linv(), and p.

void ComputeInversionByLDL ( double *  C,
double *  Inv 
)

Definition at line 489 of file DenseMatrixArithmeticsNN.cpp.

References bn, LDL_Decomposition(), LDL_Solve(), and memset().

Referenced by GetInversion().

void FactorizeBlock ( double *  A  )  [virtual]
bool GaussElimination ( double *  C,
double *  blockA 
) [virtual]

Definition at line 506 of file DenseMatrixArithmeticsNN.cpp.

void GetInversion ( double *  C,
double *  blockA 
) [virtual]
void L_BlockSolve ( double *  C,
double *  B 
) [virtual]

Solve LL^T x = b.

Parameters:
pC factorized L matrix (lower triangle)
b right side
x unknowns

Definition at line 259 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by SparseGridMtxLL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), and SparseGridMtxLL::SchurComplementFactorization().

void LDL_Decomposition ( double *  A  ) 
void LDL_Solve ( double *  A,
double *  b,
const long  startIndex = 0 
)

Definition at line 438 of file DenseMatrixArithmeticsNN.cpp.

References bn, and tmp.

Referenced by ComputeInversionByLDL(), and SubstSolve().

void LL_Decomposition ( double *  pC  )  [virtual]

Solves LL' decomposition of symmetric pC column based matrix The result is stored in lower half of the matrix pC.

Parameters:
pC matrix to be factorized

Definition at line 204 of file DenseMatrixArithmeticsNN.cpp.

References bn, MT, MathTracer::Write(), and zero_pivots.

Referenced by SparseGridMtxLL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), FactorizeBlock(), and SparseGridMtxLL::SchurComplementFactorization().

void LL_Solve ( double *  pC,
double *  b,
double *  x 
) [virtual]

Solve LL^T x = b.

Parameters:
pC factorized L matrix (lower triangle)
b right side
x unknowns

Definition at line 237 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by SubstSolve().

void LU_Decomposition ( double *  C  )  [virtual]
void LU_Solve ( double *  C,
double *  b 
)

Definition at line 345 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by SparseGridMtxLU::BackSubstU().

void MultDiagonalBlockByVector ( double *  B,
double *  x,
double *  b 
) [virtual]

Definition at line 75 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by SparseGridMtxLDL::MultiplyByVector().

DenseMatrixArithmetics * NewArithmetics ( long  block_size  )  [static]
void SubATBproduct ( double *  pC,
double *  pA,
double *  pB 
) [virtual]
void SubMultBlockByVector ( double *  B,
double *  x,
double *  b 
) [virtual]
void SubMultTBlockByVector ( double *  B,
double *  x,
double *  b 
) [virtual]
void SubstSolve ( double *  A,
double *  b 
) [virtual]
void SubstSolveBlock ( double *  A,
double *  B 
) [virtual]
void SubstSolveL ( double *  pC,
double *  x 
) [virtual]

Definition at line 277 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by SparseGridMtxLL::ForwardSubstL().

void SubstSolveLT ( double *  pC,
double *  x 
) [virtual]

Definition at line 290 of file DenseMatrixArithmeticsNN.cpp.

References bn.

Referenced by SparseGridMtxLL::BackSubstLT().

void ULT_BlockSolve ( double *  C,
double *  B 
)

Member Data Documentation

long bn
long bn1

Definition at line 23 of file DenseMatrixArithmeticsNN.h.

Referenced by DenseMatrixArithmetics(), and LDL_Decomposition().

long bnbn

Definition at line 27 of file DenseMatrixArithmeticsNN.h.

Referenced by DenseMatrixArithmetics(), and LL_Decomposition().

double* p [private]
double tmp [private]

Definition at line 31 of file DenseMatrixArithmeticsNN.h.

Referenced by LDL_Solve(), and SubATBproduct().

long zero_pivots = 0 [static]

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

Generated by  doxygen 1.6.2