(git:c5411e0)
Loading...
Searching...
No Matches
cp_fm_basic_linalg::cp_fm_trace Interface Reference

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)
 

Detailed Description

Definition at line 74 of file cp_fm_basic_linalg.F.

Member Function/Subroutine Documentation

◆ cp_fm_trace_a0b0t0()

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))

Parameters
matrix_aa matrix
matrix_banother matrix
trace...
History
11.06.2001 Creation (Matthias Krack) 12.2002 added doc [fawzi]
Author
Matthias Krack
Note
note the transposition of matrix_a!

Definition at line 777 of file cp_fm_basic_linalg.F.

◆ cp_fm_trace_a1b0t1_a()

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.

Parameters
matrix_alist of A matrices
matrix_bB matrix
tracecomputed traces
History
  • 08.2018 forked from cp_fm_trace() [Sergey Chulkov]
Note

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 850 of file cp_fm_basic_linalg.F.

Here is the call graph for this function:

◆ cp_fm_trace_a1b0t1_p()

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 
)

Definition at line 905 of file cp_fm_basic_linalg.F.

Here is the call graph for this function:

◆ cp_fm_trace_a1b1t1_aa()

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.

Parameters
matrix_alist of A matrices
matrix_blist of B matrices
tracecomputed traces
accurate...
History
  • 11.2016 forked from cp_fm_trace() [Sergey Chulkov]
Note

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 979 of file cp_fm_basic_linalg.F.

Here is the call graph for this function:

◆ cp_fm_trace_a1b1t1_ap()

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 
)

Definition at line 1041 of file cp_fm_basic_linalg.F.

Here is the call graph for this function:

◆ cp_fm_trace_a1b1t1_pa()

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 
)

Definition at line 1103 of file cp_fm_basic_linalg.F.

Here is the call graph for this function:

◆ cp_fm_trace_a1b1t1_pp()

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 
)

Definition at line 1165 of file cp_fm_basic_linalg.F.

Here is the call graph for this function:

The documentation for this interface was generated from the following file: