.RI "With the definintions of the input and output variables:"
.br
.RI "int \fBna\fP: global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "double complex *\fBa\fP: pointer to locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
.br
.RI "int \fBlda\fP: leading dimension of locally distributed matrix \fBa\fP"
.br
.RI "int \fBnblk\fP: blocksize of block cyclic distributin, must be the same in both directions"
.br
.RI "int \fBmatrixCols\fP: number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "int \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int \fBwantDebug\fP: if 1, print more debug information in case of an error"
.br
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION
Does a Cholesky factorization of a complex, hermetian matrix. The ELPA communicators \fBmpi_comm_rows\fP and \fBmpi_comm_cols\fP are obtained with the \fBget_elpa_communicators\fP(3) function. The distributed quadratic marix \fBa\fP has global dimensions \fBna\fP x \fBna\fP, and a local size \fBlda\fP x \fBmatrixCols\fP.
.RI "With the definintions of the input and output variables:"
.br
.RI "int \fBna\fP: global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "double *\fBa\fP: pointer to locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
.br
.RI "int \fBlda\fP: leading dimension of locally distributed matrix \fBa\fP"
.br
.RI "int \fBnblk\fP: blocksize of block cyclic distributin, must be the same in both directions"
.br
.RI "int \fBmatrixCols\fP: number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "int \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int \fBwantDebug\fP: if 1, print more debug information in case of an error"
.br
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION
Does a Cholesky factorization of a real, symmetric matrix. The ELPA communicators \fBmpi_comm_rows\fP and \fBmpi_comm_cols\fP are obtained with the \fBget_elpa_communicators\fP(3) function. The distributed quadratic marix \fBa\fP has global dimensions \fBna\fP x \fBna\fP, and a local size \fBlda\fP x \fBmatrixCols\fP.
.RI "With the definintions of the input and output variables:"
.br
.RI "int \fBna\fP: global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "int \fBnev\fP: number of eigenvalues/eigenvectors to be computed"
.br
.RI "double *\fBd\fP: pointer to array d(na) on input diagonal elements of tridiagonal matrix, on output the eigenvalues in ascending order"
.br
.RI "double *\fBe\fP: pointer to array e(na) on input subdiagonal elements of matrix, on exit destroyed"
.br
.RI "double *\fBq\fP: on exit \fBq\fP contains the eigenvectors. The local dimensions are \fBldq\fP x \fBmatrixCols\fP"
.br
.RI "int \fBldq\fP: leading dimension of locally distributed matrix \fBq\fP"
.br
.RI "int \fBnblk\fP: blocksize of block cyclic distributin, must be the same in both directions"
.br
.RI "int \fBmatrixCols\fP: number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "int \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int \fBwantDebug\fP: if 1, print more debug information in case of an error"
.br
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION
Solves a tri-diagonal matrix and returns \fBnev\fP eigenvalues/eigenvectors. The ELPA communicators \fBmpi_comm_rows\fP and \fBmpi_comm_cols\fP are obtained with the \fBget_elpa_communicators\fP(3) function. The distributed quadratic marix \fBq\fP has global dimensions \fBna\fP x \fBna\fP, and a local size \fBldq\fP x \fBmatrixCols\fP.
!c> \brief C interface to solve tridiagonal eigensystem with divide and conquer method
!c> \details
!c>
!c> \param na Matrix dimension
!c> \param nev number of eigenvalues/vectors to be computed
!c> \param d array d(na) on input diagonal elements of tridiagonal matrix, on
!c> output the eigenvalues in ascending order
!c> \param e array e(na) on input subdiagonal elements of matrix, on exit destroyed
!c> \param q on exit : matrix q(ldq,matrixCols) contains the eigenvectors
!c> \param ldq leading dimension of matrix q
!c> \param nblk blocksize of cyclic distribution, must be the same in both directions!
!c> \param matrixCols columns of matrix q
!c> \param mpi_comm_rows MPI communicator for rows
!c> \param mpi_comm_cols MPI communicator for columns
!c> \param wantDebug give more debug information if 1, else 0
!c> \result success int 1 on success, else 0
!c> */
!c> int elpa_solve_tridi(int na, int nev, double *d, double *e, double *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int wantDebug);
!c> \brief C interface for elpa_mult_at_b_real: Performs C : = A**T * B
!c> where A is a square matrix (na,na) which is optionally upper or lower triangular
!c> B is a (na,ncb) matrix
!c> C is a (na,ncb) matrix where optionally only the upper or lower
!c> triangle may be computed
!c> \details
!c> \param uplo_a 'U' if A is upper triangular
!c> 'L' if A is lower triangular
!c> anything else if A is a full matrix
!c> Please note: This pertains to the original A (as set in the calling program)
!c> whereas the transpose of A is used for calculations
!c> If uplo_a is 'U' or 'L', the other triangle is not used at all,
!c> i.e. it may contain arbitrary numbers
!c> \param uplo_c 'U' if only the upper diagonal part of C is needed
!c> 'L' if only the upper diagonal part of C is needed
!c> anything else if the full matrix C is needed
!c> Please note: Even when uplo_c is 'U' or 'L', the other triangle may be
!c> written to a certain extent, i.e. one shouldn't rely on the content there!
!c> \param na Number of rows/columns of A, number of rows of B and C
!c> \param ncb Number of columns of B and C
!c> \param a matrix a
!c> \param lda leading dimension of matrix a
!c> \param b matrix b
!c> \param ldb leading dimension of matrix b
!c> \param nblk blocksize of cyclic distribution, must be the same in both directions!
!c> \param mpi_comm_rows MPI communicator for rows
!c> \param mpi_comm_cols MPI communicator for columns
!c> \param c matrix c
!c> \param ldc leading dimension of matrix c
!c> \result success int report success (1) or failure (0)
!c> */
!c> int elpa_mult_at_b_real(char uplo_a, char uplo_c, int na, int ncb, double *a, int lda, double *b, int ldb, int nlbk, int mpi_comm_rows, int mpi_comm_cols, double *c, int ldc);
!c> \brief C interface for elpa_mult_ah_b_complex: Performs C : = A**H * B
!c> where A is a square matrix (na,na) which is optionally upper or lower triangular
!c> B is a (na,ncb) matrix
!c> C is a (na,ncb) matrix where optionally only the upper or lower
!c> triangle may be computed
!c> \details
!c>
!c> \param uplo_a 'U' if A is upper triangular
!c> 'L' if A is lower triangular
!c> anything else if A is a full matrix
!c> Please note: This pertains to the original A (as set in the calling program)
!c> whereas the transpose of A is used for calculations
!c> If uplo_a is 'U' or 'L', the other triangle is not used at all,
!c> i.e. it may contain arbitrary numbers
!c> \param uplo_c 'U' if only the upper diagonal part of C is needed
!c> 'L' if only the upper diagonal part of C is needed
!c> anything else if the full matrix C is needed
!c> Please note: Even when uplo_c is 'U' or 'L', the other triangle may be
!c> written to a certain extent, i.e. one shouldn't rely on the content there!
!c> \param na Number of rows/columns of A, number of rows of B and C
!c> \param ncb Number of columns of B and C
!c> \param a matrix a
!c> \param lda leading dimension of matrix a
!c> \param b matrix b
!c> \param ldb leading dimension of matrix b
!c> \param nblk blocksize of cyclic distribution, must be the same in both directions!
!c> \param mpi_comm_rows MPI communicator for rows
!c> \param mpi_comm_cols MPI communicator for columns
!c> \param c matrix c
!c> \param ldc leading dimension of matrix c
!c> \result success int reports success (1) or failure (0)
!c> */
!c> int elpa_mult_ah_b_complex(char uplo_a, char uplo_c, int na, int ncb, double complex *a, int lda, double complex *b, int ldb, int nblk, int mpi_comm_rows, int mpi_comm_cols, double complex *c, int ldc);