![]() |
(git:691081d)
|
Common full-matrix operations used by GW modules. More...
Data Types | |
| interface | fm_contract_aba |
Functions/Subroutines | |
| subroutine, public | cfm_contract_aba (matrix_a, matrix_b, matrix_c) |
| Computes A^H B A for complex full matrices. | |
| subroutine, public | fm_invert (matrix_a, eigenvalue_threshold, unit_nr) |
| Inverts a symmetric matrix. First, Cholesky decomposition is tried. If it fails, the matrix is diagonalized and inverted by taking inverse eigenvalues. | |
| subroutine, public | fm_sqrt (matrix_a, matrix_b, eigenvalue_threshold, unit_nr) |
| For input A, computes B such that B^T B=A. First, Cholesky decomposition is tried. If it fails, B is computed by diagonalizing A. | |
| subroutine, public | fm_contract_aba (matrix_a, matrix_b, matrix_c) |
| Computes A^T B A. | |
Common full-matrix operations used by GW modules.
| subroutine, public gw_fm_utils::cfm_contract_aba | ( | type(cp_cfm_type), intent(in) | matrix_a, |
| type(cp_cfm_type), intent(inout) | matrix_b, | ||
| type(cp_cfm_type), intent(inout), optional | matrix_c ) |
Computes A^H B A for complex full matrices.
| matrix_A | left and right matrix A; H denotes its Hermitian transpose |
| matrix_B | input matrix B; overwritten by A^H B A if matrix_C is absent |
| matrix_C | optional output matrix C=A^H B A |
Definition at line 52 of file gw_fm_utils.F.
| subroutine, public gw_fm_utils::fm_invert | ( | type(cp_fm_type), intent(inout) | matrix_a, |
| real(kind=dp), intent(in), optional | eigenvalue_threshold, | ||
| integer, intent(in), optional | unit_nr ) |
Inverts a symmetric matrix. First, Cholesky decomposition is tried. If it fails, the matrix is diagonalized and inverted by taking inverse eigenvalues.
| matrix_A | input A; output inverse or filtered pseudoinverse |
| eigenvalue_threshold | optional relative eigenvalue threshold |
| unit_nr | optional output unit for a failed Cholesky decomposition |
Definition at line 89 of file gw_fm_utils.F.
| subroutine, public gw_fm_utils::fm_sqrt | ( | type(cp_fm_type), intent(in) | matrix_a, |
| type(cp_fm_type), intent(inout) | matrix_b, | ||
| real(kind=dp), intent(in), optional | eigenvalue_threshold, | ||
| integer, intent(in), optional | unit_nr ) |
For input A, computes B such that B^T B=A. First, Cholesky decomposition is tried. If it fails, B is computed by diagonalizing A.
| matrix_A | symmetric input matrix A, retained unchanged |
| matrix_B | output matrix B |
| eigenvalue_threshold | optional relative eigenvalue threshold |
| unit_nr | optional output unit for a failed Cholesky decomposition |
Definition at line 135 of file gw_fm_utils.F.
| subroutine, public gw_fm_utils::fm_contract_aba | ( | type(cp_fm_type), intent(in) | matrix_a, |
| type(cp_fm_type), intent(inout) | matrix_b, | ||
| type(cp_fm_type), intent(inout), optional | matrix_c ) |
Computes A^T B A.
| matrix_A | left and right matrix A |
| matrix_B | input matrix B; overwritten by A^T B A if matrix_C is absent |
| matrix_C | optional output matrix C=A^T B A |
Definition at line 187 of file gw_fm_utils.F.