Used to carry data among the various calls. Each thread has its own private copy.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | private | :: | c_has_symmetry |
The product matrix has symmetry Sparsity of C matrix should be kept Use on-the-fly filtering |
|||
logical, | private | :: | keep_sparsity |
The product matrix has symmetry Sparsity of C matrix should be kept Use on-the-fly filtering |
|||
logical, | private | :: | keep_product_data |
The product matrix has symmetry Sparsity of C matrix should be kept Use on-the-fly filtering |
|||
logical, | private | :: | use_eps |
The product matrix has symmetry Sparsity of C matrix should be kept Use on-the-fly filtering |
|||
integer, | private, | DIMENSION(:), POINTER | :: | m_sizes |
Block sizes of A and C matrix rows, indexed locally Block sizes of B and C matrix columns, indexed locally Block sizes of A matrix columns and B matrix rows, indexed locally |
||
integer, | private, | DIMENSION(:), POINTER | :: | n_sizes |
Block sizes of A and C matrix rows, indexed locally Block sizes of B and C matrix columns, indexed locally Block sizes of A matrix columns and B matrix rows, indexed locally |
||
integer, | private, | DIMENSION(:), POINTER | :: | k_sizes |
Block sizes of A and C matrix rows, indexed locally Block sizes of B and C matrix columns, indexed locally Block sizes of A matrix columns and B matrix rows, indexed locally |
||
integer, | private, | DIMENSION(:), POINTER | :: | m_global_sizes | |||
integer, | private, | DIMENSION(:), POINTER | :: | n_global_sizes | |||
integer, | private, | DIMENSION(:), POINTER | :: | c_local_rows |
C and A matrix local rows. Map from local row (index) to global row (value). C and B matrix local columns. Map from local column (index) to global column (value). A matrix local columns and B matrix local rows. Map from local row/column (index) to global row/column (value). C and A matrix global rows. Map from global rows (index) to local rows (value). C and B matrix global columns. Map from global columns (index) to local columns (value). |
||
integer, | private, | DIMENSION(:), POINTER | :: | c_local_cols |
C and A matrix local rows. Map from local row (index) to global row (value). C and B matrix local columns. Map from local column (index) to global column (value). A matrix local columns and B matrix local rows. Map from local row/column (index) to global row/column (value). C and A matrix global rows. Map from global rows (index) to local rows (value). C and B matrix global columns. Map from global columns (index) to local columns (value). |
||
integer, | private, | DIMENSION(:), POINTER | :: | k_locals |
C and A matrix local rows. Map from local row (index) to global row (value). C and B matrix local columns. Map from local column (index) to global column (value). A matrix local columns and B matrix local rows. Map from local row/column (index) to global row/column (value). C and A matrix global rows. Map from global rows (index) to local rows (value). C and B matrix global columns. Map from global columns (index) to local columns (value). |
||
integer, | private, | DIMENSION(:), POINTER | :: | c_global_rows |
C and A matrix local rows. Map from local row (index) to global row (value). C and B matrix local columns. Map from local column (index) to global column (value). A matrix local columns and B matrix local rows. Map from local row/column (index) to global row/column (value). C and A matrix global rows. Map from global rows (index) to local rows (value). C and B matrix global columns. Map from global columns (index) to local columns (value). |
||
integer, | private, | DIMENSION(:), POINTER | :: | c_global_cols |
C and A matrix local rows. Map from local row (index) to global row (value). C and B matrix local columns. Map from local column (index) to global column (value). A matrix local columns and B matrix local rows. Map from local row/column (index) to global row/column (value). C and A matrix global rows. Map from global rows (index) to local rows (value). C and B matrix global columns. Map from global columns (index) to local columns (value). |
||
real(kind=sp), | private, | DIMENSION(:), POINTER | :: | row_max_epss |
Maximum eps to be used for one row. Norms of A matrix blocks. Norms of B matrix blocks. |
||
real(kind=sp), | private, | DIMENSION(:), POINTER | :: | a_norms |
Maximum eps to be used for one row. Norms of A matrix blocks. Norms of B matrix blocks. |
||
real(kind=sp), | private, | DIMENSION(:), POINTER | :: | b_norms |
Maximum eps to be used for one row. Norms of A matrix blocks. Norms of B matrix blocks. |
||
real(kind=real_8), | private | :: | eps | ||||
integer, | private | :: | original_lastblk |
Number of work matrix blocks before addition |
|||
integer(kind=int_8), | private | :: | flop |
flop count |
|||
type(dbcsr_work_type), | private, | POINTER | :: | product_wm | => | Null() | |
type(dbcsr_mm_csr_type), | private | :: | csr | ||||
logical, | private | :: | new_row_max_epss | = | .FALSE. | ||
logical, | private | :: | initialized | = | .FALSE. |
TYPE dbcsr_mm_multrec_type !! Used to carry data among the various calls. Each thread has !! its own private copy. PRIVATE LOGICAL :: c_has_symmetry, keep_sparsity, keep_product_data, use_eps !! The product matrix has symmetry !! Sparsity of C matrix should be kept !! Use on-the-fly filtering INTEGER, DIMENSION(:), POINTER :: m_sizes, n_sizes, k_sizes !! Block sizes of A and C matrix rows, indexed locally !! Block sizes of B and C matrix columns, indexed locally !! Block sizes of A matrix columns and B matrix rows, indexed locally INTEGER, DIMENSION(:), POINTER :: m_global_sizes, n_global_sizes INTEGER, DIMENSION(:), POINTER :: c_local_rows, c_local_cols, k_locals, & c_global_rows, c_global_cols !! C and A matrix local rows. Map from local row (index) to global row (value). !! C and B matrix local columns. Map from local column (index) to global column (value). !! A matrix local columns and B matrix local rows. Map from local row/column (index) to global row/column (value). !! C and A matrix global rows. Map from global rows (index) to local rows (value). !! C and B matrix global columns. Map from global columns (index) to local columns (value). REAL(KIND=sp), DIMENSION(:), POINTER :: row_max_epss, a_norms, b_norms !! Maximum eps to be used for one row. !! Norms of A matrix blocks. !! Norms of B matrix blocks. REAL(KIND=real_8) :: eps INTEGER :: original_lastblk !! Number of work matrix blocks before addition INTEGER(kind=int_8) :: flop !! flop count TYPE(dbcsr_work_type), POINTER :: product_wm => Null() TYPE(dbcsr_mm_csr_type) :: csr LOGICAL :: new_row_max_epss = .FALSE. LOGICAL :: initialized = .FALSE. END TYPE dbcsr_mm_multrec_type