#include <DenseMatrixArithmeticsNN.h>
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 DenseMatrixArithmetics * | NewArithmetics (long block_size) |
Public Attributes | |
long | bn |
long | bn1 |
long | bnbn |
MathTracer * | eMT |
MathTracer | MT |
ePreferedDecomposition | prefered_decomposition |
Static Public Attributes | |
static long | zero_pivots = 0 |
Private Attributes | |
double * | p |
double | tmp |
Definition at line 18 of file DenseMatrixArithmeticsNN.h.
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.
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.
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.
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] |
Reimplemented in DenseMatrixArithmetics1x1.
Definition at line 470 of file DenseMatrixArithmeticsNN.cpp.
References eLDL_decomposition, eLL_decomposition, LDL_Decomposition(), LL_Decomposition(), and prefered_decomposition.
Referenced by SparseGridMtxLDL::Factorize(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), and SparseGridMtxLDL::SchurComplementFactorization().
bool GaussElimination | ( | double * | C, | |
double * | blockA | |||
) | [virtual] |
Definition at line 506 of file DenseMatrixArithmeticsNN.cpp.
void GetInversion | ( | double * | C, | |
double * | blockA | |||
) | [virtual] |
Reimplemented in DenseMatrixArithmetics1x1, and DenseMatrixArithmetics2x2.
Definition at line 501 of file DenseMatrixArithmeticsNN.cpp.
References ComputeInversionByLDL().
void L_BlockSolve | ( | double * | C, | |
double * | B | |||
) | [virtual] |
Solve LL^T x = b.
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 | ) |
Definition at line 396 of file DenseMatrixArithmeticsNN.cpp.
References MathTracer::act_block, MathTracer::act_row, bn, bn1, MathTracer::CallUnstableDialog(), eMT, MathTracer::min_pivot, MathTracer::stabil_pivot, and zero_pivots.
Referenced by ComputeInversionByLDL(), and FactorizeBlock().
void LDL_Solve | ( | double * | A, | |
double * | b, | |||
const long | startIndex = 0 | |||
) |
Definition at line 438 of file DenseMatrixArithmeticsNN.cpp.
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.
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.
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] |
Definition at line 303 of file DenseMatrixArithmeticsNN.cpp.
References bn, and zero_pivots.
Referenced by SparseGridMtxLU::Factorize(), and SparseGridMtxLU::SchurComplementFactorization().
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] |
Definition at line 9 of file DenseMatrixArithmeticsNN.cpp.
References DenseMatrixArithmetics().
Referenced by DenseMatrix::DMA(), and SparseGridMtx::SparseGridMtx().
void SubATBproduct | ( | double * | pC, | |
double * | pA, | |||
double * | pB | |||
) | [virtual] |
Reimplemented in DenseMatrixArithmetics1x1, DenseMatrixArithmetics2x2, DenseMatrixArithmetics3x3, DenseMatrixArithmetics4x4, DenseMatrixArithmetics5x5, DenseMatrixArithmetics6x6, and DenseMatrixArithmetics_Fake.
Definition at line 91 of file DenseMatrixArithmeticsNN.cpp.
Referenced by SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), and SparseGridMtxLDL::SchurComplementFactorization().
void SubMultBlockByVector | ( | double * | B, | |
double * | x, | |||
double * | b | |||
) | [virtual] |
Definition at line 58 of file DenseMatrixArithmeticsNN.cpp.
References bn.
Referenced by SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), SparseGridMtxLDL::SubMultL12(), and SparseGridMtxLU::SubMultU12().
void SubMultTBlockByVector | ( | double * | B, | |
double * | x, | |||
double * | b | |||
) | [virtual] |
Definition at line 66 of file DenseMatrixArithmeticsNN.cpp.
References bn.
Referenced by SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), SparseGridMtxLDL::SubMultL12T(), and SparseGridMtxLU::SubMultL21().
void SubstSolve | ( | double * | A, | |
double * | b | |||
) | [virtual] |
Reimplemented in DenseMatrixArithmetics1x1.
Definition at line 480 of file DenseMatrixArithmeticsNN.cpp.
References eLDL_decomposition, eLL_decomposition, LDL_Solve(), LL_Solve(), and prefered_decomposition.
Referenced by SparseGridMtxLDL::SolveD(), and SubstSolveBlock().
void SubstSolveBlock | ( | double * | A, | |
double * | B | |||
) | [virtual] |
Reimplemented in DenseMatrixArithmetics1x1.
Definition at line 463 of file DenseMatrixArithmeticsNN.cpp.
References bn, and SubstSolve().
Referenced by SparseGridMtxLDL::Factorize(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), and SparseGridMtxLDL::SchurComplementFactorization().
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 | |||
) |
Definition at line 371 of file DenseMatrixArithmeticsNN.cpp.
References bn.
Referenced by SparseGridMtxLU::Factorize(), and SparseGridMtxLU::SchurComplementFactorization().
long bn |
Definition at line 21 of file DenseMatrixArithmeticsNN.h.
Referenced by AddMultBlockByVectorSym(), Cholesky_Decomposition(), Cholesky_Linv(), Cholesky_Solve(), ComputeInversionByCholesky(), ComputeInversionByLDL(), L_BlockSolve(), LDL_Decomposition(), LDL_Solve(), LL_Decomposition(), LL_Solve(), LU_Decomposition(), LU_Solve(), MultDiagonalBlockByVector(), DenseMatrixArithmetics6x6::SubATBproduct(), DenseMatrixArithmetics5x5::SubATBproduct(), SubATBproduct(), SubMultBlockByVector(), SubMultTBlockByVector(), SubstSolveBlock(), SubstSolveL(), SubstSolveLT(), and ULT_BlockSolve().
long bn1 |
Definition at line 23 of file DenseMatrixArithmeticsNN.h.
Referenced by DenseMatrixArithmetics(), and LDL_Decomposition().
long bnbn |
Definition at line 22 of file DenseMatrixArithmeticsNN.h.
Referenced by DenseMatrixArithmetics(), DenseMatrixArithmetics6x6::SubATBproduct(), DenseMatrixArithmetics5x5::SubATBproduct(), and SubATBproduct().
Definition at line 28 of file DenseMatrixArithmeticsNN.h.
Referenced by DenseMatrixArithmetics(), LDL_Decomposition(), and SparseGridMtx::SparseGridMtx().
Definition at line 27 of file DenseMatrixArithmeticsNN.h.
Referenced by DenseMatrixArithmetics(), and LL_Decomposition().
double* p [private] |
Definition at line 32 of file DenseMatrixArithmeticsNN.h.
Referenced by ComputeInversionByCholesky(), DenseMatrixArithmetics(), and ~DenseMatrixArithmetics().
Definition at line 26 of file DenseMatrixArithmeticsNN.h.
Referenced by DenseMatrixArithmetics(), FactorizeBlock(), SparseGridMtxLL::SparseGridMtxLL(), and SubstSolve().
double tmp [private] |
Definition at line 31 of file DenseMatrixArithmeticsNN.h.
Referenced by LDL_Solve(), and SubATBproduct().
long zero_pivots = 0 [static] |
Definition at line 24 of file DenseMatrixArithmeticsNN.h.
Referenced by Cholesky_Decomposition(), DenseMatrixArithmetics(), SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), DenseMatrixArithmetics1x1::FactorizeBlock(), SparseGridMtxLDL::FactorizeOMP(), LDL_Decomposition(), LL_Decomposition(), LU_Decomposition(), DSSolver::ReFactorize(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), and SparseGridMtxLDL::SchurComplementFactorization().