![]() |
QMCPACK
|
helper class to compute matrix inversion and the log value of determinant More...
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().