Documentation for module dbcsr_mm

Entry point of the dbcsr matrix-matrix multiplication.

source: dbcsr_mm.F
Loading...

public Subroutines/Functions:

Deallocate memory contained in mempools
Performs a multiplication of two dbcsr_type matrices, as C := alpha * op( A ) * op( B ) + beta * C.
Finalize the library
Initialize the library

SUBROUTINEdbcsr_multiply_clear_mempools()

Deallocate memory contained in mempools

SUBROUTINEdbcsr_multiply_generic(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

Performs a multiplication of two dbcsr_type matrices, as C := alpha * op( A ) * op( B ) + beta * C.

Arguments:
CHARACTER(1),
INTENT(in)
:: transa specifies the form of op( A ) to be used in the matrix multiplication transa = 'N' or 'n', op( A ) = A. transa = 'T' or 't', op( A ) = transpose(A). transa = 'C' or 'c', op( A ) = transpose(conjg(A)).
CHARACTER(1),
INTENT(in)
:: transb specifies the form of op( B ) to be used in the matrix multiplication transb = 'N' or 'n', op( B ) = B. transb = 'T' or 't', op( B ) = transpose(B). transb = 'C' or 'c', op( B ) = transpose(conjg(B)).
INTENT(in)
:: alpha scaling of product
TYPE(dbcsr_type),
INTENT(in)
:: matrix_a left BCSR matrix
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b right BCSR matrix
INTENT(in)
:: beta scaling of existing data
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_c resulting BCSR product matrix.
INTEGER,
INTENT(in),
OPTIONAL
:: first_row first full row of limiting submatrix
INTEGER,
INTENT(in),
OPTIONAL
:: last_row last full row of limiting submatrix
INTEGER,
INTENT(in),
OPTIONAL
:: first_column first full column of limiting submatrix
INTEGER,
INTENT(in),
OPTIONAL
:: last_column last full column of limiting submatrix
INTEGER,
INTENT(in),
OPTIONAL
:: first_k first full column of limiting inner product
INTEGER,
INTENT(in),
OPTIONAL
:: last_k last full column of limiting inner product
LOGICAL,
INTENT(in),
OPTIONAL
:: retain_sparsity enforce the sparsity pattern of the existing product matrix; default is no
REAL(real_8),
INTENT(in),
OPTIONAL
:: filter_eps Filtering of the matrix
INTEGER(int_8),
INTENT(out),
OPTIONAL
:: flop effective flop

SUBROUTINEdbcsr_multiply_lib_finalize(group, output_unit)

Finalize the library

Arguments:
INTEGER,
INTENT(in)
:: group ...
INTEGER,
INTENT(in)
:: output_unit ...

SUBROUTINEdbcsr_multiply_lib_init()

Initialize the library