![]() |
QMCPACK
|
helper class to compute matrix inversion and the log value of determinant More...
Inheritance diagram for DiracMatrix< T_FP >:
Collaboration diagram for DiracMatrix< T_FP >:Public Member Functions | |
| DiracMatrix () | |
| template<typename TMAT , typename ALLOC1 , typename ALLOC2 , typename TREAL , typename = std::enable_if_t<qmc_allocator_traits<ALLOC1>::is_host_accessible>, typename = std::enable_if_t<qmc_allocator_traits<ALLOC2>::is_host_accessible>> | |
| std::enable_if_t< std::is_same< T_FP, TMAT >::value > | invert_transpose (const Matrix< TMAT, ALLOC1 > &amat, Matrix< TMAT, ALLOC2 > &invMat, std::complex< TREAL > &LogDet) |
| compute the inverse of the transpose of matrix A and its determinant value in log when T_FP and TMAT are the same More... | |
| template<typename TMAT , typename ALLOC1 , typename ALLOC2 , typename TREAL , typename = std::enable_if_t<qmc_allocator_traits<ALLOC1>::is_host_accessible>, typename = std::enable_if_t<qmc_allocator_traits<ALLOC2>::is_host_accessible>> | |
| std::enable_if_t<!std::is_same< T_FP, TMAT >::value > | invert_transpose (const Matrix< TMAT, ALLOC1 > &amat, Matrix< TMAT, ALLOC2 > &invMat, std::complex< TREAL > &LogDet) |
| compute the inverse of the transpose of matrix A and its determinant value in log when T_FP and TMAT are not the same and need scratch space psiM_fp More... | |
Private Types | |
| using | Real_FP = RealAlias< T_FP > |
Private Member Functions | |
| void | reset (T_FP *invMat_ptr, const int lda) |
| reset internal work space More... | |
| template<typename TREAL > | |
| void | computeInvertAndLog (T_FP *invMat, const int n, const int lda, std::complex< TREAL > &LogDet) |
| compute the inverse of invMat (in place) and the log value of determinant More... | |
Private Attributes | |
| aligned_vector< T_FP > | m_work |
| aligned_vector< int > | m_pivot |
| int | Lwork |
| Matrix< T_FP > | psiM_fp |
| scratch space used for mixed precision More... | |
| aligned_vector< T_FP > | LU_diag |
| LU diagonal elements. More... | |
helper class to compute matrix inversion and the log value of determinant
| T_FP | the datatype used in the actual computation of matrix inversion |
Definition at line 111 of file DiracMatrix.h.
Definition at line 113 of file DiracMatrix.h.
|
inline |
Definition at line 175 of file DiracMatrix.h.
|
inlineprivate |
compute the inverse of invMat (in place) and the log value of determinant
| TREAL | real type |
| n | invMat is n x n matrix |
| lda | the first dimension of invMat |
| LogDet | log determinant value of invMat before inversion |
Definition at line 150 of file DiracMatrix.h.
Referenced by DiracMatrix< VALUE_FP >::invert_transpose().
|
inline |
compute the inverse of the transpose of matrix A and its determinant value in log when T_FP and TMAT are the same
| TMAT | matrix value type |
| TREAL | real type |
Definition at line 188 of file DiracMatrix.h.
Referenced by DiracMatrixComputeOMPTarget< VALUE_FP >::mw_invertTranspose(), qmcplusplus::TEST_CASE(), qmcplusplus::test_DiracDeterminant_delayed_update(), qmcplusplus::test_DiracDeterminant_second(), qmcplusplus::test_DiracDeterminantBatched_delayed_update(), qmcplusplus::test_DiracDeterminantBatched_second(), and qmcplusplus::test_inverse().
|
inline |
compute the inverse of the transpose of matrix A and its determinant value in log when T_FP and TMAT are not the same and need scratch space psiM_fp
| TMAT | matrix value type |
| TREAL | real type |
Definition at line 209 of file DiracMatrix.h.
|
inlineprivate |
reset internal work space
Definition at line 123 of file DiracMatrix.h.
Referenced by DiracMatrix< VALUE_FP >::computeInvertAndLog().
|
private |
LU diagonal elements.
Definition at line 120 of file DiracMatrix.h.
Referenced by DiracMatrix< VALUE_FP >::computeInvertAndLog(), and DiracMatrix< VALUE_FP >::reset().
|
private |
Definition at line 116 of file DiracMatrix.h.
Referenced by DiracMatrix< VALUE_FP >::computeInvertAndLog(), and DiracMatrix< VALUE_FP >::reset().
|
private |
Definition at line 115 of file DiracMatrix.h.
Referenced by DiracMatrix< VALUE_FP >::computeInvertAndLog(), and DiracMatrix< VALUE_FP >::reset().
|
private |
Definition at line 114 of file DiracMatrix.h.
Referenced by DiracMatrix< VALUE_FP >::computeInvertAndLog(), and DiracMatrix< VALUE_FP >::reset().
|
private |
scratch space used for mixed precision
Definition at line 118 of file DiracMatrix.h.
Referenced by DiracMatrix< VALUE_FP >::invert_transpose().