![]() |
(git:f2099e5)
|
Common DBCSR matrix operations used by GW modules. More...
Functions/Subroutines | |
| subroutine, public | hadamard_product (matrix_a, matrix_b, matrix_c, factor) |
| Computes the scaled element-wise product C = factor (A ◦ B) while preserving the block structure of A. Blocks absent from B are retained in C with zero values. | |
| subroutine, public | hadamard_product_inplace (matrix_a, matrix_b, factor) |
| Form A = factor * (A element-wise B) without changing A's block structure. | |
| subroutine, public | dbcsr_contract_aba (trans_a_left, trans_a_right, matrix_a, matrix_b, matrix_c, eps_filter, retain_sparsity) |
| Computes C=A B A^T or C=A^T B A for DBCSR matrices. | |
Common DBCSR matrix operations used by GW modules.
| subroutine, public gw_utils_dbcsr::hadamard_product | ( | type(dbcsr_type), intent(inout) | matrix_a, |
| type(dbcsr_type), intent(inout) | matrix_b, | ||
| type(dbcsr_type), intent(inout) | matrix_c, | ||
| real(kind=dp), intent(in) | factor ) |
Computes the scaled element-wise product C = factor (A ◦ B) while preserving the block structure of A. Blocks absent from B are retained in C with zero values.
| matrix_A | First factor and source of the block structure |
| matrix_B | Second factor |
| matrix_C | Scaled element-wise product |
| factor | Scaling factor |
Definition at line 38 of file gw_utils_dbcsr.F.
| subroutine, public gw_utils_dbcsr::hadamard_product_inplace | ( | type(dbcsr_type), intent(inout) | matrix_a, |
| type(dbcsr_type), intent(inout) | matrix_b, | ||
| real(kind=dp), intent(in) | factor ) |
Form A = factor * (A element-wise B) without changing A's block structure.
| matrix_A | First factor, overwritten by the product. |
| matrix_B | Second factor; a missing block represents zero. |
| factor | Product scale factor. |
Definition at line 74 of file gw_utils_dbcsr.F.
| subroutine, public gw_utils_dbcsr::dbcsr_contract_aba | ( | character(len=1), intent(in) | trans_a_left, |
| character(len=1), intent(in) | trans_a_right, | ||
| type(dbcsr_type), intent(inout) | matrix_a, | ||
| type(dbcsr_type), intent(inout) | matrix_b, | ||
| type(dbcsr_type), intent(inout) | matrix_c, | ||
| real(kind=dp), intent(in) | eps_filter, | ||
| logical, intent(in), optional | retain_sparsity ) |
Computes C=A B A^T or C=A^T B A for DBCSR matrices.
| trans_A_left | transposition applied to the left occurrence of A |
| trans_A_right | transposition applied to the right occurrence of A |
| matrix_A | left and right matrix A |
| matrix_B | input matrix B |
| matrix_C | output matrix C |
| eps_filter | filtering threshold for both matrix multiplications |
| retain_sparsity | if true, only existing blocks of C are filled |
Definition at line 112 of file gw_utils_dbcsr.F.