Solves a system of linear equations with a UDU- or LDL-factored Hermitian matrix computed by ?hetrf and converted by ?syconv.
FORTRAN 77:
call chetrs2( uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info )
call zhetrs2( uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info )
FORTRAN 95:
call hetrs2( a, b, ipiv [,uplo] [,info] )
C:
lapack_int LAPACKE_<?>hetrs2( int matrix_order, char uplo, lapack_int n, lapack_int nrhs, const <datatype>* a, lapack_int lda, const lapack_int* ipiv, <datatype>* b, lapack_int ldb );
The routine solves a system of linear equations A*X = B with a complex Hermitian matrix A using the factorization of A:
if uplo='U', |
A = U*D*UH |
if uplo='L', |
A = L*D*LH |
where
U and L are upper and lower triangular matrices with unit diagonal
The factorization is computed by ?hetrf and converted by ?syconv.
The data types are given for the Fortran interface. A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.
uplo |
CHARACTER*1. Must be 'U' or 'L'. Indicates how the input matrix A has been factored: If uplo = 'U', the array a stores the upper triangular factor U of the factorization A = U*D*UH. If uplo = 'L', the array a stores the lower triangular factor L of the factorization A = L*D*LH. |
n |
INTEGER. The order of matrix A; n ≥ 0. |
nrhs |
INTEGER. The number of right-hand sides; nrhs ≥ 0. |
a, b |
COMPLEX for chetrs2 DOUBLE COMPLEX for zhetrs2 Arrays: a(lda,*), b(ldb,*). The array a contains the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ?hetrf. The array b contains the right-hand side matrix B. The second dimension of a must be at least max(1,n), and the second dimension of b at least max(1,nrhs). |
lda |
INTEGER. The leading dimension of a; lda ≥ max(1, n). |
ldb |
INTEGER. The leading dimension of b; ldb ≥ max(1, n). |
ipiv |
INTEGER. Array of DIMENSION n. The ipiv array contains details of the interchanges and the block structure of D as determined by ?hetrf. |
work |
COMPLEX for chetrs2 DOUBLE COMPLEX for zhetrs2 Workspace array, DIMENSION n. |
b |
Overwritten by the solution matrix X. |
info |
INTEGER. If info = 0, the execution is successful. If info = -i, the i-th parameter had an illegal value. |
Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or reconstructible arguments, see Fortran 95 Interface Conventions.
Specific details for the routine hetrs2 interface are as follows:
a |
Holds the matrix A of size (n, n). |
b |
Holds the matrix B of size (n, nrhs). |
ipiv |
Holds the vector of length n. |
uplo |
Must be 'U' or 'L'. The default value is 'U'. |