tall-and-skinny matrix-matrix multiplication. Undocumented dummy arguments are identical to arguments of dbcsr_multiply (see dbcsr_mm, dbcsr_multiply_generic).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=1), | intent(in) | :: | transa | |||
| character(len=1), | intent(in) | :: | transb | |||
| character(len=1), | intent(in) | :: | transc | |||
| type(dbcsr_scalar_type), | intent(in) | :: | alpha | |||
| type(dbcsr_tas_type), | intent(inout), | TARGET | :: | matrix_a | ||
| type(dbcsr_tas_type), | intent(inout), | TARGET | :: | matrix_b | ||
| type(dbcsr_scalar_type), | intent(in) | :: | beta | |||
| type(dbcsr_tas_type), | intent(inout), | TARGET | :: | matrix_c | ||
| logical, | intent(in), | optional | :: | optimize_dist |
Whether distribution should be optimized internally. In the current implementation this guarantees optimal parameters only for dense matrices. |
|
| type(dbcsr_tas_split_info), | intent(out), | optional | :: | split_opt |
optionally return split info containing optimal grid and split parameters. This can be used to choose optimal process grids for subsequent matrix multiplications with matrices of similar shape and sparsity. |
|
| real(kind=real_8), | intent(in), | optional | :: | filter_eps | ||
| integer(kind=int_8), | intent(out), | optional | :: | flop | ||
| logical, | intent(in), | optional | :: | move_data_a |
memory optimization: move data to matrix_c such that matrix_a is empty on return memory optimization: move data to matrix_c such that matrix_b is empty on return for internal use only |
|
| logical, | intent(in), | optional | :: | move_data_b |
memory optimization: move data to matrix_c such that matrix_a is empty on return memory optimization: move data to matrix_c such that matrix_b is empty on return for internal use only |
|
| logical, | intent(in), | optional | :: | retain_sparsity |
memory optimization: move data to matrix_c such that matrix_a is empty on return memory optimization: move data to matrix_c such that matrix_b is empty on return for internal use only |
|
| logical, | intent(in), | optional | :: | simple_split |
memory optimization: move data to matrix_c such that matrix_a is empty on return memory optimization: move data to matrix_c such that matrix_b is empty on return for internal use only |
|
| integer(kind=int_8), | intent(out), | optional, | DIMENSION(:, :), ALLOCATABLE | :: | result_index | |
| integer, | intent(in), | optional | :: | unit_nr |
unit number for logging output |
|
| logical, | intent(in), | optional | :: | log_verbose |
only for testing: verbose output |