![]() |
(git:b77b4be)
|
Public Member Functions | |
subroutine | cp_fm_trace_a0b0t0 (matrix_a, matrix_b, trace) |
returns the trace of matrix_a^T matrix_b, i.e sum_{i,j}(matrix_a(i,j)*matrix_b(i,j)) | |
subroutine | cp_fm_trace_a1b0t1_a (matrix_a, matrix_b, trace) |
Compute trace(k) = Tr (matrix_a(k)^T matrix_b) for each pair of matrices A_k and B. | |
subroutine | cp_fm_trace_a1b0t1_p (matrix_a, matrix_b, trace) |
subroutine | cp_fm_trace_a1b1t1_aa (matrix_a, matrix_b, trace, accurate) |
Compute trace(k) = Tr (matrix_a(k)^T matrix_b(k)) for each pair of matrices A_k and B_k. | |
subroutine | cp_fm_trace_a1b1t1_ap (matrix_a, matrix_b, trace, accurate) |
subroutine | cp_fm_trace_a1b1t1_pa (matrix_a, matrix_b, trace, accurate) |
subroutine | cp_fm_trace_a1b1t1_pp (matrix_a, matrix_b, trace, accurate) |
Definition at line 75 of file cp_fm_basic_linalg.F.
subroutine cp_fm_basic_linalg::cp_fm_trace::cp_fm_trace_a0b0t0 | ( | type(cp_fm_type), intent(in) | matrix_a, |
type(cp_fm_type), intent(in) | matrix_b, | ||
real(kind=dp), intent(out) | trace | ||
) |
returns the trace of matrix_a^T matrix_b, i.e sum_{i,j}(matrix_a(i,j)*matrix_b(i,j))
matrix_a | a matrix |
matrix_b | another matrix |
trace | ... |
Definition at line 762 of file cp_fm_basic_linalg.F.
subroutine cp_fm_basic_linalg::cp_fm_trace::cp_fm_trace_a1b0t1_a | ( | type(cp_fm_type), dimension(:), intent(in) | matrix_a, |
type(cp_fm_type), intent(in) | matrix_b, | ||
real(kind=dp), dimension(:), intent(out) | trace | ||
) |
Compute trace(k) = Tr (matrix_a(k)^T matrix_b) for each pair of matrices A_k and B.
matrix_a | list of A matrices |
matrix_b | B matrix |
trace | computed traces |
Computing the trace requires collective communication between involved MPI processes that implies a synchronisation point between them. The aim of this subroutine is to reduce the amount of time wasted in such synchronisation by performing one large collective operation which involves all the matrices in question.
The subroutine's suffix reflects dimensionality of dummy arrays; 'a1b0t1' means that the dummy variables 'matrix_a' and 'trace' are 1-dimensional arrays, while the variable 'matrix_b' is a single matrix.
Definition at line 835 of file cp_fm_basic_linalg.F.
subroutine cp_fm_basic_linalg::cp_fm_trace::cp_fm_trace_a1b0t1_p | ( | type(cp_fm_p_type), dimension(:), intent(in) | matrix_a, |
type(cp_fm_type), intent(in) | matrix_b, | ||
real(kind=dp), dimension(:), intent(out) | trace | ||
) |
subroutine cp_fm_basic_linalg::cp_fm_trace::cp_fm_trace_a1b1t1_aa | ( | type(cp_fm_type), dimension(:), intent(in) | matrix_a, |
type(cp_fm_type), dimension(:), intent(in) | matrix_b, | ||
real(kind=dp), dimension(:), intent(out) | trace, | ||
logical, intent(in), optional | accurate | ||
) |
Compute trace(k) = Tr (matrix_a(k)^T matrix_b(k)) for each pair of matrices A_k and B_k.
matrix_a | list of A matrices |
matrix_b | list of B matrices |
trace | computed traces |
accurate | ... |
Computing the trace requires collective communication between involved MPI processes that implies a synchronisation point between them. The aim of this subroutine is to reduce the amount of time wasted in such synchronisation by performing one large collective operation which involves all the matrices in question.
The subroutine's suffix reflects dimensionality of dummy arrays; 'a1b1t1' means that all dummy variables (matrix_a, matrix_b, and trace) are 1-dimensional arrays.
Definition at line 964 of file cp_fm_basic_linalg.F.
subroutine cp_fm_basic_linalg::cp_fm_trace::cp_fm_trace_a1b1t1_ap | ( | type(cp_fm_type), dimension(:), intent(in) | matrix_a, |
type(cp_fm_p_type), dimension(:), intent(in) | matrix_b, | ||
real(kind=dp), dimension(:), intent(out) | trace, | ||
logical, intent(in), optional | accurate | ||
) |
subroutine cp_fm_basic_linalg::cp_fm_trace::cp_fm_trace_a1b1t1_pa | ( | type(cp_fm_p_type), dimension(:), intent(in) | matrix_a, |
type(cp_fm_type), dimension(:), intent(in) | matrix_b, | ||
real(kind=dp), dimension(:), intent(out) | trace, | ||
logical, intent(in), optional | accurate | ||
) |
subroutine cp_fm_basic_linalg::cp_fm_trace::cp_fm_trace_a1b1t1_pp | ( | type(cp_fm_p_type), dimension(:), intent(in) | matrix_a, |
type(cp_fm_p_type), dimension(:), intent(in) | matrix_b, | ||
real(kind=dp), dimension(:), intent(out) | trace, | ||
logical, intent(in), optional | accurate | ||
) |