![]() |
(git:d18deda)
|
Data Types | |
type | dbm_distribution_obj |
type | dbm_iterator |
type | dbm_type |
Functions/Subroutines | |
subroutine | validate (matrix) |
Dummy for when DBM_VALIDATE_AGAINST_DBCSR is not defined. | |
subroutine, public | dbm_create_from_template (matrix, name, template) |
Creates a new matrix from given template, reusing dist and row/col_block_sizes. | |
subroutine, public | dbm_create (matrix, name, dist, row_block_sizes, col_block_sizes) |
Creates a new matrix. | |
subroutine, public | dbm_finalize (matrix) |
Needed to be called for DBCSR after blocks where inserted. For DBM it's a no-opt. | |
subroutine, public | dbm_release (matrix) |
Releases a matrix and all its ressources. | |
subroutine, public | dbm_copy (matrix_a, matrix_b) |
Copies content of matrix_b into matrix_a. Matrices must have the same row/col block sizes and distribution. | |
subroutine, public | dbm_redistribute (matrix, redist) |
Copies content of matrix_b into matrix_a. Matrices may have different distributions. | |
subroutine, public | dbm_get_block_p (matrix, row, col, block, row_size, col_size) |
Looks up a block from given matrics. This routine is thread-safe. If the block is not found then a null pointer is returned. | |
subroutine, public | dbm_put_block (matrix, row, col, block, summation) |
Adds a block to given matrix. This routine is thread-safe. If block already exist then it gets overwritten (or summed). | |
subroutine, public | dbm_clear (matrix) |
Remove all blocks from given matrix, but does not release the underlying memory. | |
subroutine, public | dbm_filter (matrix, eps) |
Removes all blocks from the given matrix whose block norm is below the given threshold. Blocks of size zero are always kept. | |
subroutine, public | dbm_reserve_blocks (matrix, rows, cols) |
Adds given list of blocks efficiently. The blocks will be filled with zeros. | |
subroutine, public | dbm_scale (matrix, alpha) |
Multiplies all entries in the given matrix by the given factor alpha. | |
subroutine, public | dbm_zero (matrix) |
Sets all blocks in the given matrix to zero. | |
subroutine, public | dbm_add (matrix_a, matrix_b) |
Adds matrix_b to matrix_a. | |
subroutine, public | dbm_multiply (transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, retain_sparsity, filter_eps, flop) |
Computes matrix product: matrix_c = alpha * matrix_a * matrix_b + beta * matrix_c. | |
subroutine, public | dbm_iterator_start (iterator, matrix) |
Creates an iterator for the blocks of the given matrix. The iteration order is not stable. | |
integer function, public | dbm_iterator_num_blocks (iterator) |
Returns number of blocks the iterator will provide to calling thread. | |
logical function, public | dbm_iterator_blocks_left (iterator) |
Tests whether the given iterator has any block left. | |
subroutine, public | dbm_iterator_next_block (iterator, row, column, block, row_size, col_size) |
Returns the next block from the given iterator. | |
subroutine, public | dbm_iterator_stop (iterator) |
Releases the given iterator. | |
real(kind=dp) function, public | dbm_checksum (matrix) |
Computes a checksum of the given matrix. | |
real(kind=dp) function, public | dbm_maxabs (matrix) |
Returns the absolute value of the larges element of the entire given matrix. | |
character(len=default_string_length) function, public | dbm_get_name (matrix) |
Returns the name of the matrix of the given matrix. | |
pure integer function, public | dbm_get_nze (matrix) |
Returns the number of local Non-Zero Elements of the given matrix. | |
pure integer function, public | dbm_get_num_blocks (matrix) |
Returns the number of local blocks of the given matrix. | |
integer function, dimension(:), pointer, contiguous, public | dbm_get_row_block_sizes (matrix) |
Returns the row block sizes of the given matrix. | |
integer function, dimension(:), pointer, contiguous, public | dbm_get_col_block_sizes (matrix) |
Returns the column block sizes of the given matrix. | |
subroutine, public | dbm_get_local_rows (matrix, local_rows) |
Returns the local row block sizes of the given matrix. | |
subroutine, public | dbm_get_local_cols (matrix, local_cols) |
Returns the local column block sizes of the given matrix. | |
subroutine, public | dbm_get_stored_coordinates (matrix, row, column, processor) |
Returns the MPI rank on which the given block should be stored. | |
type(dbm_distribution_obj) function, public | dbm_get_distribution (matrix) |
Returns the distribution of the given matrix. | |
subroutine, public | dbm_distribution_new (dist, mp_comm, row_dist_block, col_dist_block) |
Creates a new two dimensional distribution. | |
subroutine, public | dbm_distribution_hold (dist) |
Increases the reference counter of the given distribution. | |
subroutine, public | dbm_distribution_release (dist) |
Decreases the reference counter of the given distribution. | |
integer function, dimension(:), pointer, contiguous, public | dbm_distribution_row_dist (dist) |
Returns the rows of the given distribution. | |
integer function, dimension(:), pointer, contiguous, public | dbm_distribution_col_dist (dist) |
Returns the columns of the given distribution. | |
subroutine, public | dbm_library_init () |
Initialize DBM library. | |
subroutine, public | dbm_library_finalize () |
Finalize DBM library. | |
subroutine, public | dbm_library_print_stats (mpi_comm, output_unit) |
Print DBM library statistics. | |
subroutine dbm_api::validate | ( | type(dbm_type), intent(in) | matrix | ) |
subroutine, public dbm_api::dbm_create | ( | type(dbm_type), intent(inout) | matrix, |
character(len=*), intent(in) | name, | ||
type(dbm_distribution_obj), intent(in) | dist, | ||
integer, dimension(:), intent(in), pointer, contiguous | row_block_sizes, | ||
integer, dimension(:), intent(in), pointer, contiguous | col_block_sizes | ||
) |
subroutine, public dbm_api::dbm_finalize | ( | type(dbm_type), intent(inout) | matrix | ) |
subroutine, public dbm_api::dbm_release | ( | type(dbm_type), intent(inout) | matrix | ) |
subroutine, public dbm_api::dbm_get_block_p | ( | type(dbm_type), intent(inout) | matrix, |
integer, intent(in) | row, | ||
integer, intent(in) | col, | ||
real(dp), dimension(:, :), intent(out), pointer | block, | ||
integer, intent(out), optional | row_size, | ||
integer, intent(out), optional | col_size | ||
) |
subroutine, public dbm_api::dbm_put_block | ( | type(dbm_type), intent(inout) | matrix, |
integer, intent(in) | row, | ||
integer, intent(in) | col, | ||
real(dp), dimension(:, :), intent(in), contiguous | block, | ||
logical, intent(in), optional | summation | ||
) |
subroutine, public dbm_api::dbm_clear | ( | type(dbm_type), intent(inout) | matrix | ) |
subroutine, public dbm_api::dbm_filter | ( | type(dbm_type), intent(inout) | matrix, |
real(dp), intent(in) | eps | ||
) |
subroutine, public dbm_api::dbm_reserve_blocks | ( | type(dbm_type), intent(inout) | matrix, |
integer, dimension(:), intent(in) | rows, | ||
integer, dimension(:), intent(in) | cols | ||
) |
subroutine, public dbm_api::dbm_scale | ( | type(dbm_type), intent(inout) | matrix, |
real(dp), intent(in) | alpha | ||
) |
subroutine, public dbm_api::dbm_zero | ( | type(dbm_type), intent(inout) | matrix | ) |
subroutine, public dbm_api::dbm_multiply | ( | logical, intent(in) | transa, |
logical, intent(in) | transb, | ||
real(kind=dp), intent(in) | alpha, | ||
type(dbm_type), intent(in) | matrix_a, | ||
type(dbm_type), intent(in) | matrix_b, | ||
real(kind=dp), intent(in) | beta, | ||
type(dbm_type), intent(inout) | matrix_c, | ||
logical, intent(in), optional | retain_sparsity, | ||
real(kind=dp), intent(in), optional | filter_eps, | ||
integer(int_8), intent(out), optional | flop | ||
) |
Computes matrix product: matrix_c = alpha * matrix_a * matrix_b + beta * matrix_c.
transa | ... |
transb | ... |
alpha | ... |
matrix_a | ... |
matrix_b | ... |
beta | ... |
matrix_c | ... |
retain_sparsity | ... |
filter_eps | ... |
flop | ... |
Definition at line 733 of file dbm_api.F.
subroutine, public dbm_api::dbm_iterator_start | ( | type(dbm_iterator), intent(out) | iterator, |
type(dbm_type), intent(in) | matrix | ||
) |
integer function, public dbm_api::dbm_iterator_num_blocks | ( | type(dbm_iterator), intent(in) | iterator | ) |
logical function, public dbm_api::dbm_iterator_blocks_left | ( | type(dbm_iterator), intent(in) | iterator | ) |
subroutine, public dbm_api::dbm_iterator_next_block | ( | type(dbm_iterator), intent(inout) | iterator, |
integer, intent(out) | row, | ||
integer, intent(out) | column, | ||
real(dp), dimension(:, :), intent(out), optional, pointer | block, | ||
integer, intent(out), optional | row_size, | ||
integer, intent(out), optional | col_size | ||
) |
subroutine, public dbm_api::dbm_iterator_stop | ( | type(dbm_iterator), intent(inout) | iterator | ) |
real(kind=dp) function, public dbm_api::dbm_checksum | ( | type(dbm_type), intent(in) | matrix | ) |
real(kind=dp) function, public dbm_api::dbm_maxabs | ( | type(dbm_type), intent(inout) | matrix | ) |
character(len=default_string_length) function, public dbm_api::dbm_get_name | ( | type(dbm_type), intent(in) | matrix | ) |
pure integer function, public dbm_api::dbm_get_nze | ( | type(dbm_type), intent(in) | matrix | ) |
pure integer function, public dbm_api::dbm_get_num_blocks | ( | type(dbm_type), intent(in) | matrix | ) |
integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_get_row_block_sizes | ( | type(dbm_type), intent(in) | matrix | ) |
integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_get_col_block_sizes | ( | type(dbm_type), intent(in) | matrix | ) |
subroutine, public dbm_api::dbm_get_local_rows | ( | type(dbm_type), intent(in) | matrix, |
integer, dimension(:), allocatable | local_rows | ||
) |
subroutine, public dbm_api::dbm_get_local_cols | ( | type(dbm_type), intent(in) | matrix, |
integer, dimension(:), allocatable | local_cols | ||
) |
subroutine, public dbm_api::dbm_get_stored_coordinates | ( | type(dbm_type), intent(in) | matrix, |
integer, intent(in) | row, | ||
integer, intent(in) | column, | ||
integer, intent(out) | processor | ||
) |
type(dbm_distribution_obj) function, public dbm_api::dbm_get_distribution | ( | type(dbm_type), intent(in) | matrix | ) |
subroutine, public dbm_api::dbm_distribution_new | ( | type(dbm_distribution_obj), intent(out) | dist, |
class(mp_comm_type), intent(in) | mp_comm, | ||
integer, dimension(:), intent(in), pointer, contiguous | row_dist_block, | ||
integer, dimension(:), intent(in), pointer, contiguous | col_dist_block | ||
) |
subroutine, public dbm_api::dbm_distribution_hold | ( | type(dbm_distribution_obj) | dist | ) |
subroutine, public dbm_api::dbm_distribution_release | ( | type(dbm_distribution_obj) | dist | ) |
integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_distribution_row_dist | ( | type(dbm_distribution_obj), intent(in) | dist | ) |
integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_distribution_col_dist | ( | type(dbm_distribution_obj), intent(in) | dist | ) |
subroutine, public dbm_api::dbm_library_init | ( | void | ) |
subroutine, public dbm_api::dbm_library_finalize | ( | void | ) |
subroutine, public dbm_api::dbm_library_print_stats | ( | type(mp_comm_type), intent(in) | mpi_comm, |
integer, intent(in) | output_unit | ||
) |