FreeBSD Manual Pages
elpa_hermitian_multiply(3) Library Functions Manual elpa_hermitian_multiply(3) NAME elpa_hermitian_multiply - performs a "hermitian" multiplication of matri- ces: C = A^T * B for real matrices and C = A^H * B for complex matrices There are also variations of this routine that can accept not only host but also device pointers as input/output. Names of these routines explicitly contain the corresponding datatypes: elpa_hermitian_multiply_double, elpa_hermitian_multiply_float, elpa_hermitian_multiply_double_complex, elpa_hermitian_multiply_float_complex. SYNOPSIS FORTRAN INTERFACE use elpa class(elpa_t), pointer :: elpa_handle call elpa_handle%hermitian_multiply (uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error) With the definitions of the input and output variables: class(elpa_t) :: elpa_handle An instance of the ELPA object. character*1 :: uplo_a Should be set to 'U' if A is upper triangular, to 'L' if A is lower triangular or to anything else if A is a full matrix. character*1 :: uplo_c Should be set to 'U' if only the upper diagonal part of C is needed, to 'L' if only the upper diagonal part of C is needed, or to any- thing else if the full matrix C is needed. integer :: ncb The number of columns of the global matrices b and c. datatype :: a The matrix a. The dimensions of matrix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype of the matrix can be one of "real(kind=c_double)", "real(kind=c_float)", "com- plex(kind=c_double)", or "complex(kind=c_float)". datatype :: b The matrix b. The dimensions of the matrix are specified by the pa- rameters nrows_b and ncols_b. The datatype of the matrix can be one of "real(kind=c_double)", "real(kind=c_float)", "complex(kind=c_dou- ble)", or "complex(kind=c_float)". integer :: nrows_b The number of rows of matrix b. integer :: ncols_b The number of columns of matrix b. datatype :: c The matrix c. The dimensions of the matrix are specified by the pa- rameters nrows_c and ncols_c. The datatype of the matrix can be one of "real(kind=c_double)", "real(kind=c_float)", "complex(kind=c_dou- ble)", or "complex(kind=c_float)". integer :: nrows_c The number of rows of matrix c. integer :: ncols_c The number of columns of matrix c. integer, optional :: error The return error code of the function. Should be "ELPA_OK". The er- ror code can be queried with the function elpa_strerr(3) C/C++ INTERFACE #include <elpa/elpa.h> elpa_t elpa_handle; void elpa_hermitian_multiply(elpa_t elpa_handle, char uplo_a, char uplo_c, int ncb, datatype *a, datatype *b, int nrows_b, int ncols_b, datatype *c, int nrows_c, int ncols_c, int *error); With the definitions of the input and output variables: elpa_t elpa_handle; The handle to the ELPA object char uplo_a; Should be set to 'U' if A is upper triangular, to 'L' if A is lower triangular or anything else if A is a full matrix. char uplo_c; Should be set to 'U' if only the upper diagonal part of C is needed, to 'L' if only the upper diagonal part of C is needed, or to any- thing else if the full matrix C is needed. int ncb; The number of columns of the global matrices b and c. datatype *a; The matrix a. The dimensions of matrix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype can be one of "double", "float", "double complex"/"std::complex<double>", "float complex"/"std::complex<float>" for C/C++. datatype *b; The matrix b. The dimensions of the matrix are specified by the pa- rameters nrows_b and ncols_b. The datatype can be one of "double", "float", "double complex"/"std::complex<double>", "float com- plex"/"std::complex<float>" for C/C++. int nrows_b; The number of rows of matrix b. int ncols_b; The number of columns of matrix b. datatype *c; The matrix c. The dimensions of the matrix are specified by the pa- rametersn rows_c and ncols_c. The datatype can be one of "double", "float", "double complex"/"std::complex<double>", "float com- plex"/"std::complex<float>" for C/C++. int nrows_c; The number of rows of matrix c. int ncols_c; The number of columns of matrix c. int *error; The return error code of the function. Should be "ELPA_OK". The er- ror code can be queried with the function elpa_strerr(3) DESCRIPTION Performs a "hermitian" multiplication: C = A^T * B for real matrices and C=A^H * B for complex matrices. The functions elpa_init(3), elpa_allo- cate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_hermit- ian_multiply can be called. SEE ALSO elpa2_print_kernels(1) elpa_init(3) elpa_allocate(3) elpa_set(3) elpa_setup(3) elpa_strerr(3) elpa_eigenvalues(3) elpa_eigenvectors(3) elpa_solve_tridiagonal(3) elpa_uninit(3) elpa_deallocate(3) ELPA Fri Apr 5 2024 elpa_hermitian_multiply(3)
NAME | SYNOPSIS | DESCRIPTION | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=elpa_hermitian_multiply&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
