#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().
1.6.2