elpa_mult_at_b_ral_double - Performs C = transpose(A) * B (legacy interface)
use elpa1
success =
elpa_mult_at_b_real_double (uplo_a, uplo_c, na, ncb, a, lda,
ldaCols, b, ldb, ldbCols, nblk, mpi_comm_rows, mpi_comm_cols, c, ldc, ldcCols)
With the definitions of the input and output variables:
character, intent(in)
uplo_a: 'U' if
a is upper triangular, 'L' if
a is lower triangular, anything else if
a is a full matrix
character, intent(in)
uplo_c: 'U' if only the upper diagonal part of
c is needed, 'L' if only the lower diagonal part of
c is needed,
anything else if the full matrix
c is needed
integer, intent(in)
na: Number of rows/columns of
a, number of
rows of
b and
c
integer, intent(in)
ncb: Number of /columns of
b and
c
real*8, intent(inout)
a: locally distributed part of the matrix
a.
The local dimensions are
lda x
ldaCols
integer, intent(in)
lda: leading dimension of locally distributed matrix
a
integer, intent(in)
ldaCols: number of columns of locally distributed
matrices
a
real*8, intent(inout)
b: locally distributed part of the matrix
b.
The local dimensions are
ldb x
ldbCols
integer, intent(in)
ldb: leading dimension of locally distributed matrix
b
integer, intent(in)
ldbCols: number of columns of locally distributed
matrices
b
integer, intent(in)
nblk: blocksize of cyclic distribution, must be the
same in both directions
integer, intent(in)
mpi_comm_rows: communicator for communication in
rows. Constructed with
elpa_get_communicators(3)
integer, intent(in)
mpi_comm_cols: communicator for communication in
colums. Constructed with
elpa_get_communicators(3)
real*8, intent(inout)
c: locally distributed part of the matrix
c.
The local dimensions are
ldc x
ldcCols
integer, intent(in)
ldc: leading dimension of locally distributed matrix
c
integer, intent(in)
ldcCols: number of columns of locally distributed
matrices
c
logical
success: return value indicating success or failure
#include "elpa_legacy.h"
int success =
elpa_mult_at_b_real_double (
char uplo_a,
char uplo_c,
int na,
int ncb,
double *a,
int lda,
int ldaCols,
double *b,
int ldb,
int ldbCols,
int nblk,
int mpi_comm_rows,
int
mpi_comm_cols,
double *c,
int lc,
int ldcCols );
With the definitions of the input and output variables:
char
uplo_a: 'U' if
a is upper triangular, 'L' if
a is
lower triangular, anything else if
a is a full matrix
char
uplo_c: 'U' if only the upper diagonal part of
c is needed,
'L' if only the lower diagonal part of
c is needed, anything else if
the full matrix
c is needed
int
na: Number of rows/columns of
a, number of rows of
b
and
c
int
ncb: Number of /columns of
b and
c
double *
a: locally distributed part of the matrix
a. The local
dimensions are
lda x
ldaCols
int
lda: leading dimension of locally distributed matrix
a
int
ldaCols: number of columns of locally distributed matrices
a
double *
b: locally distributed part of the matrix
b. The local
dimensions are
ldb x
ldbCols
int
ldb: leading dimension of locally distributed matrix
b
int
ldbCols: number of columns of locally distributed matrices
b
int
nblk: blocksize of cyclic distribution, must be the same in both
directions
int
mpi_comm_rows: communicator for communication in rows. Constructed
with
elpa_get_communicators(3)
int
mpi_comm_cols: communicator for communication in colums. Constructed
with
elpa_get_communicators(3)
double *
c: locally distributed part of the matrix
c. The local
dimensions are
ldc x
ldcCols
int
ldc: leading dimension of locally distributed matrix
c
int
ldcCols: number of columns of locally distributed matrices
c
int
success: return value indicating success (1) or failure (0)
Does c = transpose(a) * b. The ELPA communicators
mpi_comm_rows and
mpi_comm_cols are obtained with the
elpa_get_communicators(3)
function.
This function is part of the legacy API of the ELPA library. Better use the
current API.
Old interface:
elpa_get_communicators(3)
elpa_mult_at_b_real_single(3)
elpa_mult_ah_b_complex_single(3)
elpa_mult_ah_b_complex_double(3)
Current interface:
elpa2_print_kernels(1)