dbcsr_mm_multrec_type Derived Type

type, public :: dbcsr_mm_multrec_type

Used to carry data among the various calls. Each thread has its own private copy.


Components

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.

Source Code

   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