mult_at_b_real: Performs C : = A**T * B this is the old, deprecated interface for the newer elpa_mult_at_b_real where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed
More...
|
logical function | elpa_mult_at_b_real (uplo_a, uplo_c, na, ncb, a, lda, b, ldb, nblk, mpi_comm_rows, mpi_comm_cols, c, ldc) |
| elpa_mult_at_b_real: Performs C : = A**T * B where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed More...
|
|
mult_at_b_real: Performs C : = A**T * B this is the old, deprecated interface for the newer elpa_mult_at_b_real where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed
- Parameters
-
uplo_a | 'U' if A is upper triangular 'L' if A is lower triangular anything else if A is a full matrix Please note: This pertains to the original A (as set in the calling program) whereas the transpose of A is used for calculations If uplo_a is 'U' or 'L', the other triangle is not used at all, i.e. it may contain arbitrary numbers |
uplo_c | 'U' if only the upper diagonal part of C is needed 'L' if only the upper diagonal part of C is needed anything else if the full matrix C is needed Please note: Even when uplo_c is 'U' or 'L', the other triangle may be written to a certain extent, i.e. one shouldn't rely on the content there! |
na | Number of rows/columns of A, number of rows of B and C |
ncb | Number of columns of B and C |
a | matrix a |
lda | leading dimension of matrix a |
b | matrix b |
ldb | leading dimension of matrix b |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
c | matrix c |
ldc | leading dimension of matrix c |
logical function elpa1_auxiliary::mult_at_b_real::elpa_mult_at_b_real |
( |
character*1 |
uplo_a, |
|
|
character*1 |
uplo_c, |
|
|
integer(kind=ik) |
na, |
|
|
integer(kind=ik) |
ncb, |
|
|
real(kind=rk), dimension(lda,*) |
a, |
|
|
integer(kind=ik) |
lda, |
|
|
real(kind=rk), dimension(ldb,*) |
b, |
|
|
integer(kind=ik) |
ldb, |
|
|
integer(kind=ik) |
nblk, |
|
|
integer(kind=ik) |
mpi_comm_rows, |
|
|
integer(kind=ik) |
mpi_comm_cols, |
|
|
real(kind=rk), dimension(ldc,*) |
c, |
|
|
integer(kind=ik) |
ldc |
|
) |
| |
|
private |
elpa_mult_at_b_real: Performs C : = A**T * B where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed
- Parameters
-
uplo_a | 'U' if A is upper triangular 'L' if A is lower triangular anything else if A is a full matrix Please note: This pertains to the original A (as set in the calling program) whereas the transpose of A is used for calculations If uplo_a is 'U' or 'L', the other triangle is not used at all, i.e. it may contain arbitrary numbers |
uplo_c | 'U' if only the upper diagonal part of C is needed 'L' if only the upper diagonal part of C is needed anything else if the full matrix C is needed Please note: Even when uplo_c is 'U' or 'L', the other triangle may be written to a certain extent, i.e. one shouldn't rely on the content there! |
na | Number of rows/columns of A, number of rows of B and C |
ncb | Number of columns of B and C |
a | matrix a |
lda | leading dimension of matrix a |
b | matrix b |
ldb | leading dimension of matrix b |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
c | matrix c |
ldc | leading dimension of matrix c |
- Returns
- success logical reports success or failure
The documentation for this interface was generated from the following file: