Documentation for module dbcsr_operations

Higher-level operations on DBCSR matrices.

source: dbcsr_operations.F
Loading...

Generic procedures:

dbcsr_add
dbcsr_add_on_diag
dbcsr_filter
dbcsr_get_diag
dbcsr_norm
dbcsr_scale
dbcsr_scale_by_vector
dbcsr_set
dbcsr_set_diag
dbcsr_trace

public Subroutines/Functions:

SUBROUTINE
dbcsr_conjg (matrix)
Conjugate a DBCSR matrix
copy a matrix
copy a matrix, retaining current sparsity
Crop and copies a matrix.
compute a norm of a dbcsr matrix
Computes varios functions (defined by func) of matrix elements
compute a norm of a dbcsr matrix
get the diagonal of a dbcsr matrix
Gets information about a matrix
Returns the occupation of the matrix
Hadamard product C = A . B (C needs to be different from A and B)
... TODO : unify with other version which is generic in the data_type
FUNCTION
REAL(real_8)
dbcsr_maxabs (matrix)
compute a norm of a dbcsr matrix
FUNCTION
LOGICAL
dbcsr_may_be_dense (matrix, occ_thresh)
Returns whether the matrix could be represeneted in a dense form
Sums blocks in a replicated dbcsr matrix, which has the same structure on all ranks.
SUBROUTINE
dbcsr_triu (matrix_a)
triu of a dbcsr matrix

Generic procedure dbcsr_add

...

TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a × × × × ×
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b × × × × ×
INTENT(in),
OPTIONAL
:: alpha_scalar ×
REAL(real_4),
INTENT(in)
:: alpha_scalar ×
REAL(real_8),
INTENT(in)
:: alpha_scalar ×
COMPLEX(real_4),
INTENT(in)
:: alpha_scalar ×
COMPLEX(real_8),
INTENT(in)
:: alpha_scalar ×
INTENT(in),
OPTIONAL
:: beta_scalar ×
REAL(real_4),
INTENT(in)
:: beta_scalar ×
REAL(real_8),
INTENT(in)
:: beta_scalar ×
COMPLEX(real_4),
INTENT(in)
:: beta_scalar ×
COMPLEX(real_8),
INTENT(in)
:: beta_scalar ×
INTEGER(int_8),
INTENT(inout),
OPTIONAL
:: flop ×

Generic procedure dbcsr_add_on_diag

add a constant to the diagonal of a matrix

TYPE(dbcsr_type),
INTENT(inout)
:: matrix × × × ×
REAL(real_4),
INTENT(in)
:: alpha ×
REAL(real_8),
INTENT(in)
:: alpha ×
COMPLEX(real_4),
INTENT(in)
:: alpha ×
COMPLEX(real_8),
INTENT(in)
:: alpha ×

Generic procedure dbcsr_filter

filter a dbcsr matrix

TYPE(dbcsr_type),
INTENT(inout)
:: matrix × × × × ×
INTENT(in)
:: eps ×
REAL(real_4),
INTENT(in)
:: eps ×
REAL(real_8),
INTENT(in)
:: eps ×
COMPLEX(real_4),
INTENT(in)
:: eps ×
COMPLEX(real_8),
INTENT(in)
:: eps ×
INTEGER,
INTENT(in),
OPTIONAL
:: method × × × × ×
LOGICAL,
INTENT(in),
OPTIONAL
:: use_absolute × × × × ×
LOGICAL,
INTENT(in),
OPTIONAL
:: filter_diag × × × × ×
LOGICAL,
INTENT(in),
OPTIONAL
:: quick × × × × ×

Generic procedure dbcsr_get_diag

...

TYPE(dbcsr_type),
INTENT(in)
:: matrix × × × ×
REAL(real_4),
INTENT(out)
:: diag(:) ×
REAL(real_8),
INTENT(out)
:: diag(:) ×
COMPLEX(real_4),
INTENT(out)
:: diag(:) ×
COMPLEX(real_8),
INTENT(out)
:: diag(:) ×

Generic procedure dbcsr_norm

compute a norm of a dbcsr matrix

TYPE(dbcsr_type),
INTENT(inout)
:: matrix × × × ×
INTEGER,
INTENT(in)
:: which_norm × × × ×
REAL(real_8),
INTENT(out),
OPTIONAL
:: norm_scalar ×
REAL(real_4),
INTENT(out)
:: norm_scalar ×
INTENT(inout),
OPTIONAL
:: norm_vector ×
REAL(real_4),
INTENT(out),
TARGET
:: norm_vector(:) ×
REAL(real_8),
INTENT(out),
TARGET
:: norm_vector(:) ×

Generic procedure dbcsr_scale

...

TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a × × × × ×
INTENT(in)
:: alpha_scalar ×
REAL(real_4),
INTENT(in)
:: alpha_scalar ×
REAL(real_8),
INTENT(in)
:: alpha_scalar ×
COMPLEX(real_4),
INTENT(in)
:: alpha_scalar ×
COMPLEX(real_8),
INTENT(in)
:: alpha_scalar ×
INTEGER,
INTENT(in),
OPTIONAL
:: limits(4) ×
INTEGER,
INTENT(in),
OPTIONAL
:: last_column × × × ×

Generic procedure dbcsr_scale_by_vector

...

TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a × × × × ×
INTENT(in),
OPTIONAL
:: alpha ×
REAL(real_4),
INTENT(in),
TARGET
:: alpha(:) ×
REAL(real_8),
INTENT(in),
TARGET
:: alpha(:) ×
COMPLEX(real_4),
INTENT(in),
TARGET
:: alpha(:) ×
COMPLEX(real_8),
INTENT(in),
TARGET
:: alpha(:) ×
CHARACTER(*),
INTENT(in)
:: side × × × × ×

Generic procedure dbcsr_set

Interface for dbcsr_set

TYPE(dbcsr_type),
INTENT(inout)
:: matrix × × × ×
REAL(real_4),
INTENT(in)
:: alpha ×
REAL(real_8),
INTENT(in)
:: alpha ×
COMPLEX(real_4),
INTENT(in)
:: alpha ×
COMPLEX(real_8),
INTENT(in)
:: alpha ×

Generic procedure dbcsr_set_diag

...

TYPE(dbcsr_type),
INTENT(inout)
:: matrix × × × ×
REAL(real_4),
INTENT(in)
:: diag(:) ×
REAL(real_8),
INTENT(in)
:: diag(:) ×
COMPLEX(real_4),
INTENT(in)
:: diag(:) ×
COMPLEX(real_8),
INTENT(in)
:: diag(:) ×

Generic procedure dbcsr_trace

...

TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a × × × × × × × × ×
INTENT(inout)
:: trace ×
REAL(real_4),
INTENT(inout)
:: trace × ×
REAL(real_8),
INTENT(inout)
:: trace × ×
COMPLEX(real_4),
INTENT(inout)
:: trace × ×
COMPLEX(real_8),
INTENT(inout)
:: trace × ×
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b × × × ×

SUBROUTINEdbcsr_conjg(matrix)

Conjugate a DBCSR matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix DBCSR matrix

SUBROUTINEdbcsr_copy(matrix_b, matrix_a, name, keep_sparsity, shallow_data, keep_imaginary, matrix_type)

copy a matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b target DBCSR matrix
TYPE(dbcsr_type),
INTENT(in)
:: matrix_a source DBCSR matrix
CHARACTER(*),
INTENT(in),
OPTIONAL
:: name name of the new matrix
LOGICAL,
INTENT(in),
OPTIONAL
:: keep_sparsity keep the target matrix sparsity; default is False.
LOGICAL,
INTENT(in),
OPTIONAL
:: shallow_data shallow data copy
LOGICAL,
INTENT(in),
OPTIONAL
:: keep_imaginary when copy from complex to real,& the default is to keep only the real part; if this flag is set, the imaginary part is used
CHARACTER,
INTENT(in),
OPTIONAL
:: matrix_type 'N' for normal, 'T' for transposed, 'S' for symmetric, and 'A' for antisymmetric

SUBROUTINEdbcsr_copy_into_existing(matrix_b, matrix_a)

copy a matrix, retaining current sparsity

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b target DBCSR matrix
TYPE(dbcsr_type),
INTENT(in)
:: matrix_a source DBCSR matrix

SUBROUTINEdbcsr_crop_matrix(matrix_b, matrix_a, full_row_bounds, full_column_bounds, shallow_data)

Crop and copies a matrix.

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b target DBCSR matrix
TYPE(dbcsr_type),
INTENT(in)
:: matrix_a source DBCSR matrix
INTEGER,
INTENT(in),
OPTIONAL
:: full_row_bounds(2) rows to extract (array of size 2 holding the lower and upper inclusive bounds)
INTEGER,
INTENT(in),
OPTIONAL
:: full_column_bounds(2) columns to extract (array of size 2 holding the lower and upper inclusive bounds)
LOGICAL,
INTENT(in),
OPTIONAL
:: shallow_data ...

FUNCTIONdbcsr_frobenius_norm(matrix, local)

compute a norm of a dbcsr matrix

Return Value ::
REAL(real_8)
Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix the matrix
LOGICAL,
INTENT(in),
OPTIONAL
:: local ...

SUBROUTINEdbcsr_function_of_elements(matrix_a, func, a0, a1, a2)

Computes varios functions (defined by func) of matrix elements

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
INTEGER,
INTENT(in)
:: func ...
REAL(dp),
INTENT(in),
OPTIONAL
:: a0 ...
REAL(dp),
INTENT(in),
OPTIONAL
:: a1 ...
REAL(dp),
INTENT(in),
OPTIONAL
:: a2 ...

FUNCTIONdbcsr_gershgorin_norm(matrix)

compute a norm of a dbcsr matrix

Return Value ::
REAL(real_8)
Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix the matrix

SUBROUTINEdbcsr_get_block_diag(matrix, diag)

get the diagonal of a dbcsr matrix

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix the matrix
TYPE(dbcsr_type),
INTENT(inout)
:: diag the diagonal

SUBROUTINEdbcsr_get_info(matrix, nblkrows_total, nblkcols_total, nfullrows_total, nfullcols_total, nblkrows_local, nblkcols_local, nfullrows_local, nfullcols_local, my_prow, my_pcol, local_rows, local_cols, proc_row_dist, proc_col_dist, row_blk_size, col_blk_size, row_blk_offset, col_blk_offset, distribution, name, data_area, matrix_type, data_type)

Gets information about a matrix

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix matrix to query
INTEGER,
INTENT(out),
OPTIONAL
:: nblkrows_total ...
INTEGER,
INTENT(out),
OPTIONAL
:: nblkcols_total ...
INTEGER,
INTENT(out),
OPTIONAL
:: nfullrows_total ...
INTEGER,
INTENT(out),
OPTIONAL
:: nfullcols_total ...
INTEGER,
INTENT(out),
OPTIONAL
:: nblkrows_local ...
INTEGER,
INTENT(out),
OPTIONAL
:: nblkcols_local ...
INTEGER,
INTENT(out),
OPTIONAL
:: nfullrows_local ...
INTEGER,
INTENT(out),
OPTIONAL
:: nfullcols_local ...
INTEGER,
INTENT(out),
OPTIONAL
:: my_prow ...
INTEGER,
INTENT(out),
OPTIONAL
:: my_pcol ...
INTEGER,
OPTIONAL, POINTER
:: local_rows(:) ...
INTEGER,
OPTIONAL, POINTER
:: local_cols(:) ...
INTEGER,
OPTIONAL, POINTER
:: proc_row_dist(:) ...
INTEGER,
OPTIONAL, POINTER
:: proc_col_dist(:) ...
INTEGER,
OPTIONAL, POINTER
:: row_blk_size(:) ...
INTEGER,
OPTIONAL, POINTER
:: col_blk_size(:) ...
INTEGER,
OPTIONAL, POINTER
:: row_blk_offset(:) ...
INTEGER,
OPTIONAL, POINTER
:: col_blk_offset(:) ...
INTENT(out),
OPTIONAL
:: distribution the data distribution of the matrix
CHARACTER(*),
INTENT(out),
OPTIONAL
:: name matrix name
INTENT(out),
OPTIONAL
:: data_area data_area
CHARACTER,
OPTIONAL
:: matrix_type matrix type (regular, symmetric, see dbcsr_types.F for values)
INTEGER,
OPTIONAL
:: data_type data type (single/double precision real/complex)

FUNCTIONdbcsr_get_occupation(matrix)

Returns the occupation of the matrix

Return Value ::
REAL(real_8)
Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix matrix from which to get the occupation

SUBROUTINEdbcsr_hadamard_product(matrix_a, matrix_b, matrix_c, b_assume_value)

Hadamard product C = A . B (C needs to be different from A and B)

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix_a DBCSR matrix
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b DBCSR matrix
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_c DBCSR matrix
REAL(dp),
INTENT(in),
OPTIONAL
:: b_assume_value ...

SUBROUTINEdbcsr_init_random(matrix, keep_sparsity)

... TODO : unify with other version which is generic in the data_type

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
LOGICAL,
OPTIONAL
:: keep_sparsity ...

FUNCTIONdbcsr_maxabs(matrix)

compute a norm of a dbcsr matrix

Return Value ::
REAL(real_8)
Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix the matrix

FUNCTIONdbcsr_may_be_dense(matrix, occ_thresh)

Returns whether the matrix could be represeneted in a dense form

Return Value ::
LOGICAL
use the mutable and not append-only working structures
Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix matrix
REAL(real_8),
INTENT(in)
:: occ_thresh ...

SUBROUTINEdbcsr_sum_replicated(matrix)

Sums blocks in a replicated dbcsr matrix, which has the same structure on all ranks.

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix dbcsr matrix to operate on

SUBROUTINEdbcsr_triu(matrix_a)

triu of a dbcsr matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a the matrix

SUBROUTINEdbcsr_add_anytype(matrix_a, matrix_b, alpha_scalar, beta_scalar, flop)

add and scale matrices A = alpha*A + beta*B or

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b DBCSR matrix
INTENT(in),
OPTIONAL
:: alpha_scalar ...
INTENT(in),
OPTIONAL
:: beta_scalar ...
INTEGER(int_8),
INTENT(inout),
OPTIONAL
:: flop ...

SUBROUTINEdbcsr_add_s(matrix_a, matrix_b, alpha_scalar, beta_scalar)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b ...
REAL(real_4),
INTENT(in)
:: alpha_scalar ...
REAL(real_4),
INTENT(in)
:: beta_scalar ...

SUBROUTINEdbcsr_add_d(matrix_a, matrix_b, alpha_scalar, beta_scalar)

Interface for dbcsr_add

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b ...
REAL(real_8),
INTENT(in)
:: alpha_scalar ...
REAL(real_8),
INTENT(in)
:: beta_scalar ...

SUBROUTINEdbcsr_add_c(matrix_a, matrix_b, alpha_scalar, beta_scalar)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b ...
COMPLEX(real_4),
INTENT(in)
:: alpha_scalar ...
COMPLEX(real_4),
INTENT(in)
:: beta_scalar ...

SUBROUTINEdbcsr_add_z(matrix_a, matrix_b, alpha_scalar, beta_scalar)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
TYPE(dbcsr_type),
INTENT(in)
:: matrix_b ...
COMPLEX(real_8),
INTENT(in)
:: alpha_scalar ...
COMPLEX(real_8),
INTENT(in)
:: beta_scalar ...

SUBROUTINEdbcsr_add_on_diag_s(matrix, alpha)

add a constant to the diagonal of a matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix DBCSR matrix
REAL(real_4),
INTENT(in)
:: alpha scalar

SUBROUTINEdbcsr_add_on_diag_ds(matrix, alpha)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
REAL(real_8),
INTENT(in)
:: alpha ...

SUBROUTINEdbcsr_add_on_diag_c(matrix, alpha)

add a constant to the diagonal of a matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix DBCSR matrix
COMPLEX(real_4),
INTENT(in)
:: alpha scalar

SUBROUTINEdbcsr_add_on_diag_z(matrix, alpha)

add a constant to the diagonal of a matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix DBCSR matrix
COMPLEX(real_8),
INTENT(in)
:: alpha scalar

SUBROUTINEdbcsr_filter_anytype(matrix, eps, method, use_absolute, filter_diag, quick)

filter a dbcsr matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix the matrix
INTENT(in)
:: eps the threshold
INTEGER,
INTENT(in),
OPTIONAL
:: method how the matrix is filtered
LOGICAL,
INTENT(in),
OPTIONAL
:: use_absolute ...
LOGICAL,
INTENT(in),
OPTIONAL
:: filter_diag NYI
LOGICAL,
INTENT(in),
OPTIONAL
:: quick filter just the index (no data copying)

SUBROUTINEdbcsr_filter_s(matrix, eps, method, use_absolute, filter_diag, quick)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
REAL(real_4),
INTENT(in)
:: eps ...
INTEGER,
INTENT(in),
OPTIONAL
:: method ...
LOGICAL,
INTENT(in),
OPTIONAL
:: use_absolute ...
LOGICAL,
INTENT(in),
OPTIONAL
:: filter_diag ...
LOGICAL,
INTENT(in),
OPTIONAL
:: quick ...

SUBROUTINEdbcsr_filter_d(matrix, eps, method, use_absolute, filter_diag, quick)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
REAL(real_8),
INTENT(in)
:: eps ...
INTEGER,
INTENT(in),
OPTIONAL
:: method ...
LOGICAL,
INTENT(in),
OPTIONAL
:: use_absolute ...
LOGICAL,
INTENT(in),
OPTIONAL
:: filter_diag ...
LOGICAL,
INTENT(in),
OPTIONAL
:: quick ...

SUBROUTINEdbcsr_filter_c(matrix, eps, method, use_absolute, filter_diag, quick)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
COMPLEX(real_4),
INTENT(in)
:: eps ...
INTEGER,
INTENT(in),
OPTIONAL
:: method ...
LOGICAL,
INTENT(in),
OPTIONAL
:: use_absolute ...
LOGICAL,
INTENT(in),
OPTIONAL
:: filter_diag ...
LOGICAL,
INTENT(in),
OPTIONAL
:: quick ...

SUBROUTINEdbcsr_filter_z(matrix, eps, method, use_absolute, filter_diag, quick)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
COMPLEX(real_8),
INTENT(in)
:: eps ...
INTEGER,
INTENT(in),
OPTIONAL
:: method ...
LOGICAL,
INTENT(in),
OPTIONAL
:: use_absolute ...
LOGICAL,
INTENT(in),
OPTIONAL
:: filter_diag ...
LOGICAL,
INTENT(in),
OPTIONAL
:: quick ...

SUBROUTINEdbcsr_get_diag_s(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix ...
REAL(real_4),
INTENT(out)
:: diag(:) ...

SUBROUTINEdbcsr_get_diag_d(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix ...
REAL(real_8),
INTENT(out)
:: diag(:) ...

SUBROUTINEdbcsr_get_diag_c(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix ...
COMPLEX(real_4),
INTENT(out)
:: diag(:) ...

SUBROUTINEdbcsr_get_diag_z(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix ...
COMPLEX(real_8),
INTENT(out)
:: diag(:) ...

SUBROUTINEdbcsr_norm_anytype(matrix, which_norm, norm_scalar, norm_vector)

compute a norm of a dbcsr matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix the matrix
INTEGER,
INTENT(in)
:: which_norm ...
REAL(real_8),
INTENT(out),
OPTIONAL
:: norm_scalar ...
INTENT(inout),
OPTIONAL
:: norm_vector ...

SUBROUTINEdbcsr_norm_r4_scal(matrix, which_norm, norm_scalar)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
INTEGER,
INTENT(in)
:: which_norm ...
REAL(real_4),
INTENT(out)
:: norm_scalar ...

SUBROUTINEdbcsr_norm_r4_vec(matrix, which_norm, norm_vector)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
INTEGER,
INTENT(in)
:: which_norm ...
REAL(real_4),
INTENT(out),
TARGET
:: norm_vector(:) ...

SUBROUTINEdbcsr_norm_r8_vec(matrix, which_norm, norm_vector)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
INTEGER,
INTENT(in)
:: which_norm ...
REAL(real_8),
INTENT(out),
TARGET
:: norm_vector(:) ...

SUBROUTINEdbcsr_scale_anytype(matrix_a, alpha_scalar, limits)

Scales a DBCSR matrix by alpha

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
INTENT(in)
:: alpha_scalar a scalar
INTEGER,
INTENT(in),
OPTIONAL
:: limits(4) Scale only a subbox

SUBROUTINEdbcsr_scale_s(matrix_a, alpha_scalar, last_column)

Interface for matrix scaling by a scalar

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
REAL(real_4),
INTENT(in)
:: alpha_scalar ...
INTEGER,
INTENT(in),
OPTIONAL
:: last_column ...

SUBROUTINEdbcsr_scale_d(matrix_a, alpha_scalar, last_column)

Interface for matrix scaling by a scalar

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
REAL(real_8),
INTENT(in)
:: alpha_scalar ...
INTEGER,
INTENT(in),
OPTIONAL
:: last_column ...

SUBROUTINEdbcsr_scale_c(matrix_a, alpha_scalar, last_column)

Interface for matrix scaling by a scalar

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
COMPLEX(real_4),
INTENT(in)
:: alpha_scalar ...
INTEGER,
INTENT(in),
OPTIONAL
:: last_column ...

SUBROUTINEdbcsr_scale_z(matrix_a, alpha_scalar, last_column)

Interface for matrix scaling by a scalar

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
COMPLEX(real_8),
INTENT(in)
:: alpha_scalar ...
INTEGER,
INTENT(in),
OPTIONAL
:: last_column ...

SUBROUTINEdbcsr_scale_by_vector_anytype(matrix_a, alpha, side)

Scales a DBCSR matrix by alpha

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
INTENT(in),
OPTIONAL
:: alpha the scaling vector
CHARACTER(*),
INTENT(in)
:: side apply the scaling from the side

SUBROUTINEdbcsr_scale_by_vector_s(matrix_a, alpha, side)

Interface for matrix scaling by a vector

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
REAL(real_4),
INTENT(in),
TARGET
:: alpha(:) ...
CHARACTER(*),
INTENT(in)
:: side ...

SUBROUTINEdbcsr_scale_by_vector_d(matrix_a, alpha, side)

Interface for matrix scaling by a vector

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
REAL(real_8),
INTENT(in),
TARGET
:: alpha(:) ...
CHARACTER(*),
INTENT(in)
:: side ...

SUBROUTINEdbcsr_scale_by_vector_c(matrix_a, alpha, side)

Interface for matrix scaling by a vector

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
COMPLEX(real_4),
INTENT(in),
TARGET
:: alpha(:) ...
CHARACTER(*),
INTENT(in)
:: side ...

SUBROUTINEdbcsr_scale_by_vector_z(matrix_a, alpha, side)

Interface for matrix scaling by a vector

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
COMPLEX(real_8),
INTENT(in),
TARGET
:: alpha(:) ...
CHARACTER(*),
INTENT(in)
:: side ...

SUBROUTINEdbcsr_set_s(matrix, alpha)

Interface for dbcsr_set

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
REAL(real_4),
INTENT(in)
:: alpha ...

SUBROUTINEdbcsr_set_d(matrix, alpha)

Interface for dbcsr_set

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
REAL(real_8),
INTENT(in)
:: alpha ...

SUBROUTINEdbcsr_set_c(matrix, alpha)

Interface for dbcsr_set

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
COMPLEX(real_4),
INTENT(in)
:: alpha ...

SUBROUTINEdbcsr_set_z(matrix, alpha)

Interface for dbcsr_set

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
COMPLEX(real_8),
INTENT(in)
:: alpha ...

SUBROUTINEdbcsr_set_diag_s(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
REAL(real_4),
INTENT(in)
:: diag(:) ...

SUBROUTINEdbcsr_set_diag_d(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
REAL(real_8),
INTENT(in)
:: diag(:) ...

SUBROUTINEdbcsr_set_diag_c(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
COMPLEX(real_4),
INTENT(in)
:: diag(:) ...

SUBROUTINEdbcsr_set_diag_z(matrix, diag)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
COMPLEX(real_8),
INTENT(in)
:: diag(:) ...

SUBROUTINEdbcsr_trace_a_any(matrix_a, trace)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
INTENT(inout)
:: trace ...

SUBROUTINEdbcsr_trace_a_s(matrix_a, trace)

traces a DBCSR matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
REAL(real_4),
INTENT(inout)
:: trace the trace of the matrix

SUBROUTINEdbcsr_trace_a_d(matrix_a, trace)

traces a DBCSR matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
REAL(real_8),
INTENT(inout)
:: trace the trace of the matrix

SUBROUTINEdbcsr_trace_a_c(matrix_a, trace)

traces a DBCSR matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
COMPLEX(real_4),
INTENT(inout)
:: trace the trace of the matrix

SUBROUTINEdbcsr_trace_a_z(matrix_a, trace)

traces a DBCSR matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrix
COMPLEX(real_8),
INTENT(inout)
:: trace the trace of the matrix

SUBROUTINEdbcsr_trace_ab_s(matrix_a, matrix_b, trace)

traces a product of DBCSR matrices

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrices
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b DBCSR matrices
REAL(real_4),
INTENT(inout)
:: trace the trace of the product of the matrices

SUBROUTINEdbcsr_trace_a_b_d(matrix_a, matrix_b, trace)

...

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a ...
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b ...
REAL(real_8),
INTENT(inout)
:: trace ...

SUBROUTINEdbcsr_trace_ab_c(matrix_a, matrix_b, trace)

traces a product of DBCSR matrices

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrices
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b DBCSR matrices
COMPLEX(real_4),
INTENT(inout)
:: trace the trace of the product of the matrices

SUBROUTINEdbcsr_trace_ab_z(matrix_a, matrix_b, trace)

traces a product of DBCSR matrices

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_a DBCSR matrices
TYPE(dbcsr_type),
INTENT(inout)
:: matrix_b DBCSR matrices
COMPLEX(real_8),
INTENT(inout)
:: trace the trace of the product of the matrices