expert routine for tensor contraction. For internal use only.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_scalar_type), | intent(in) | :: | alpha | |||
type(dbcsr_t_type), | intent(inout), | TARGET | :: | tensor_1 | ||
type(dbcsr_t_type), | intent(inout), | TARGET | :: | tensor_2 | ||
type(dbcsr_scalar_type), | intent(in) | :: | beta | |||
type(dbcsr_t_type), | intent(inout), | TARGET | :: | tensor_3 | ||
integer, | intent(in), | DIMENSION(:) | :: | contract_1 | ||
integer, | intent(in), | DIMENSION(:) | :: | notcontract_1 | ||
integer, | intent(in), | DIMENSION(:) | :: | contract_2 | ||
integer, | intent(in), | DIMENSION(:) | :: | notcontract_2 | ||
integer, | intent(in), | DIMENSION(:) | :: | map_1 | ||
integer, | intent(in), | DIMENSION(:) | :: | map_2 | ||
integer, | intent(in), | optional, | DIMENSION(2, SIZE(contract_1)) | :: | bounds_1 | |
integer, | intent(in), | optional, | DIMENSION(2, SIZE(notcontract_1)) | :: | bounds_2 | |
integer, | intent(in), | optional, | DIMENSION(2, SIZE(notcontract_2)) | :: | bounds_3 | |
logical, | intent(in), | optional | :: | optimize_dist | ||
type(dbcsr_t_pgrid_type), | intent(out), | optional, | POINTER | :: | pgrid_opt_1 | |
type(dbcsr_t_pgrid_type), | intent(out), | optional, | POINTER | :: | pgrid_opt_2 | |
type(dbcsr_t_pgrid_type), | intent(out), | optional, | POINTER | :: | pgrid_opt_3 | |
real(kind=real_8), | intent(in), | optional | :: | filter_eps | ||
integer(kind=int_8), | intent(out), | optional | :: | flop | ||
logical, | intent(in), | optional | :: | move_data | ||
logical, | intent(in), | optional | :: | retain_sparsity | ||
integer, | intent(out), | optional | :: | nblks_local |
number of local blocks on this MPI rank |
|
integer, | intent(out), | optional, | DIMENSION(dbcsr_t_max_nblks_local(tensor_3), ndims_tensor(tensor_3)) | :: | result_index |
get indices of non-zero tensor blocks for tensor_3 without actually performing contraction this is an estimate based on block norm multiplication |
integer, | intent(in), | optional | :: | unit_nr | ||
logical, | intent(in), | optional | :: | log_verbose |