Eigenvalue SoLvers for Petaflop-Applications (ELPA) 2024.05.001.rc1
Loading...
Searching...
No Matches
Functions/Subroutines
elpa_multiply_a_b Module Reference

Functions/Subroutines

function, public elpa_mult_at_b_a_h_a_real_double_impl (obj, uplo_a, uplo_c, ncb, a, b, ldb, ldbcols, c, ldc, ldccols)
 elpa_mult_at_b_a_h_a_real_double_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 
function, public elpa_mult_at_b_d_ptr_real_double_impl (obj, uplo_a, uplo_c, ncb, adev, bdev, ldb, ldbcols, cdev, ldc, ldccols)
 elpa_mult_at_b_d_ptr_real_double_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 
function, public elpa_mult_at_b_a_h_a_real_single_impl (obj, uplo_a, uplo_c, ncb, a, b, ldb, ldbcols, c, ldc, ldccols)
 elpa_mult_at_b_real_a_h_a_single_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 
function, public elpa_mult_at_b_d_ptr_real_single_impl (obj, uplo_a, uplo_c, ncb, adev, bdev, ldb, ldbcols, cdev, ldc, ldccols)
 elpa_mult_at_b_real_d_ptr_single_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 
function, public elpa_mult_ah_b_a_h_a_complex_double_impl (obj, uplo_a, uplo_c, ncb, a, b, ldb, ldbcols, c, ldc, ldccols)
 elpa_mult_ah_b_a_h_a_complex_double_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 
function, public elpa_mult_ah_b_d_ptr_complex_double_impl (obj, uplo_a, uplo_c, ncb, adev, bdev, ldb, ldbcols, cdev, ldc, ldccols)
 elpa_mult_ah_b_a_h_a_complex_double_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 
function, public elpa_mult_ah_b_a_h_a_complex_single_impl (obj, uplo_a, uplo_c, ncb, a, b, ldb, ldbcols, c, ldc, ldccols)
 elpa_mult_ah_b_a_h_a_complex_single_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 
function, public elpa_mult_ah_b_d_ptr_complex_single_impl (obj, uplo_a, uplo_c, ncb, adev, bdev, ldb, ldbcols, cdev, ldc, ldccols)
 elpa_mult_ah_b_d_ptr_complex_single_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,ncb) matrix where optionally only the upper or lower triangle may be computed
 

Function/Subroutine Documentation

◆ elpa_mult_ah_b_a_h_a_complex_double_impl()

function, public elpa_multiply_a_b::elpa_mult_ah_b_a_h_a_complex_double_impl ( obj,
uplo_a,
uplo_c,
ncb,
a,
b,
ldb,
ldbcols,
c,
ldc,
ldccols )

elpa_mult_ah_b_a_h_a_complex_double_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a
obj%local_ncolsleading dimension of matrix a, set with class method objset("local_nrows",value)
ldaColscolumns of matrix a
bmatrix b
ldbleading dimension of matrix b
ldbColscolumns of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c
ldcleading dimension of matrix c
Returns
success

◆ elpa_mult_ah_b_a_h_a_complex_single_impl()

function, public elpa_multiply_a_b::elpa_mult_ah_b_a_h_a_complex_single_impl ( obj,
uplo_a,
uplo_c,
ncb,
a,
b,
ldb,
ldbcols,
c,
ldc,
ldccols )

elpa_mult_ah_b_a_h_a_complex_single_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a
obj%local_ncolsleading dimension of matrix a, set with class method objset("local_nrows",value)
ldaColscolumns of matrix a
bmatrix b
ldbleading dimension of matrix b
ldbColscolumns of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c
ldcleading dimension of matrix c
Returns
success

◆ elpa_mult_ah_b_d_ptr_complex_double_impl()

function, public elpa_multiply_a_b::elpa_mult_ah_b_d_ptr_complex_double_impl ( obj,
uplo_a,
uplo_c,
ncb,
adev,
bdev,
ldb,
ldbcols,
cdev,
ldc,
ldccols )

elpa_mult_ah_b_a_h_a_complex_double_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a, as a device pointer of type(c_ptr)
obj%local_ncolsleading dimension of matrix a, set with class method objset("local_nrows",value)
ldaColscolumns of matrix a
bmatrix b, as a device pointer of type(c_ptr)
ldbleading dimension of matrix b
ldbColscolumns of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c, as a device_pointer of type(c_ptr)
ldcleading dimension of matrix c
Returns
success

◆ elpa_mult_ah_b_d_ptr_complex_single_impl()

function, public elpa_multiply_a_b::elpa_mult_ah_b_d_ptr_complex_single_impl ( obj,
uplo_a,
uplo_c,
ncb,
adev,
bdev,
ldb,
ldbcols,
cdev,
ldc,
ldccols )

elpa_mult_ah_b_d_ptr_complex_single_impl: Performs C : = A**H * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a, as a device pointer of type(c_ptr)
obj%local_ncolsleading dimension of matrix a, set with class method objset("local_nrows",value)
ldaColscolumns of matrix a
bmatrix b, as a device pointer of type(c_ptr)
ldbleading dimension of matrix b
ldbColscolumns of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c, as a device pointer of type(c_ptr)
ldcleading dimension of matrix c
Returns
success

◆ elpa_mult_at_b_a_h_a_real_double_impl()

function, public elpa_multiply_a_b::elpa_mult_at_b_a_h_a_real_double_impl ( obj,
uplo_a,
uplo_c,
ncb,
a,
b,
ldb,
ldbcols,
c,
ldc,
ldccols )

elpa_mult_at_b_a_h_a_real_double_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a
obj%local_nrowsleading dimension of matrix a, set with class method objset("local_nrows",value)
bmatrix b
ldbleading dimension of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c
ldcleading dimension of matrix c
Returns
success

◆ elpa_mult_at_b_a_h_a_real_single_impl()

function, public elpa_multiply_a_b::elpa_mult_at_b_a_h_a_real_single_impl ( obj,
uplo_a,
uplo_c,
ncb,
a,
b,
ldb,
ldbcols,
c,
ldc,
ldccols )

elpa_mult_at_b_real_a_h_a_single_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a
obj%local_nrowsleading dimension of matrix a, set with class method objset("local_nrows",value)
bmatrix b
ldbleading dimension of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c
ldcleading dimension of matrix c
Returns
success

◆ elpa_mult_at_b_d_ptr_real_double_impl()

function, public elpa_multiply_a_b::elpa_mult_at_b_d_ptr_real_double_impl ( obj,
uplo_a,
uplo_c,
ncb,
adev,
bdev,
ldb,
ldbcols,
cdev,
ldc,
ldccols )

elpa_mult_at_b_d_ptr_real_double_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a, as a device pointer of type(c_ptr)
obj%local_nrowsleading dimension of matrix a, set with class method objset("local_nrows",value)
bmatrix b, as a device pointer of type(c_ptr)
ldbleading dimension of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c, as a device pointer of type(c_ptr)
ldcleading dimension of matrix c
Returns
success

◆ elpa_mult_at_b_d_ptr_real_single_impl()

function, public elpa_multiply_a_b::elpa_mult_at_b_d_ptr_real_single_impl ( obj,
uplo_a,
uplo_c,
ncb,
adev,
bdev,
ldb,
ldbcols,
cdev,
ldc,
ldccols )

elpa_mult_at_b_real_d_ptr_single_impl: Performs C : = A**T * B where A is a square matrix (objna,objna) which is optionally upper or lower triangular B is a (objna,ncb) matrix C is a (objna,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!
naNumber of rows/columns of A, number of rows of B and C
ncbNumber of columns of B and C
amatrix a, as a device pointer of type(c_ptr)
obj%local_nrowsleading dimension of matrix a, set with class method objset("local_nrows",value)
bmatrix b, as a device pointer of type(c_ptr)
ldbleading dimension of matrix b
nblkblocksize of cyclic distribution, must be the same in both directions!
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
cmatrix c, as a device pointer of type(c_ptr)
ldcleading dimension of matrix c
Returns
success