# hetrs_3 - Man Page

{he,sy}trs_3: solve using factor

## Synopsis

### Functions

subroutine chetrs_3 (uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
CHETRS_3
subroutine csytrs_3 (uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
CSYTRS_3
subroutine dsytrs_3 (uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
DSYTRS_3
subroutine ssytrs_3 (uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
SSYTRS_3
subroutine zhetrs_3 (uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
ZHETRS_3
subroutine zsytrs_3 (uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
ZSYTRS_3

## Function Documentation

### subroutine chetrs_3 (character uplo, integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, integer info)

CHETRS_3

Purpose:

``` CHETRS_3 solves a system of linear equations A * X = B with a complex
Hermitian matrix A using the factorization computed
by CHETRF_RK or CHETRF_BK:

A = P*U*D*(U**H)*(P**T) or A = P*L*D*(L**H)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix,
U**H (or L**H) is the conjugate of U (or L), P is a permutation
matrix, P**T is the transpose of P, and D is Hermitian and block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.```
Parameters

UPLO

```          UPLO is CHARACTER*1
Specifies whether the details of the factorization are
stored as an upper or lower triangular matrix:
= 'U':  Upper triangular, form is A = P*U*D*(U**H)*(P**T);
= 'L':  Lower triangular, form is A = P*L*D*(L**H)*(P**T).```

N

```          N is INTEGER
The order of the matrix A.  N >= 0.```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B.  NRHS >= 0.```

A

```          A is COMPLEX array, dimension (LDA,N)
Diagonal of the block diagonal matrix D and factors U or L
as computed by CHETRF_RK and CHETRF_BK:
a) ONLY diagonal elements of the Hermitian block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
should be provided on entry in array E), and
b) If UPLO = 'U': factor U in the superdiagonal part of A.
If UPLO = 'L': factor L in the subdiagonal part of A.```

LDA

```          LDA is INTEGER
The leading dimension of the array A.  LDA >= max(1,N).```

E

```          E is COMPLEX array, dimension (N)
On entry, contains the superdiagonal (or subdiagonal)
elements of the Hermitian block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced;
If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced.

NOTE: For 1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is not referenced in both
UPLO = 'U' or UPLO = 'L' cases.```

IPIV

```          IPIV is INTEGER array, dimension (N)
Details of the interchanges and the block structure of D
as determined by CHETRF_RK or CHETRF_BK.```

B

```          B is COMPLEX array, dimension (LDB,NRHS)
On entry, the right hand side matrix B.
On exit, the solution matrix X.```

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Contributors:

```  June 2017,  Igor Kozachenko,
Computer Science Division,
University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester```

Definition at line 163 of file chetrs_3.f.

### subroutine csytrs_3 (character uplo, integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, integer info)

CSYTRS_3

Purpose:

``` CSYTRS_3 solves a system of linear equations A * X = B with a complex
symmetric matrix A using the factorization computed
by CSYTRF_RK or CSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a permutation
matrix, P**T is the transpose of P, and D is symmetric and block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.```
Parameters

UPLO

```          UPLO is CHARACTER*1
Specifies whether the details of the factorization are
stored as an upper or lower triangular matrix:
= 'U':  Upper triangular, form is A = P*U*D*(U**T)*(P**T);
= 'L':  Lower triangular, form is A = P*L*D*(L**T)*(P**T).```

N

```          N is INTEGER
The order of the matrix A.  N >= 0.```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B.  NRHS >= 0.```

A

```          A is COMPLEX array, dimension (LDA,N)
Diagonal of the block diagonal matrix D and factors U or L
as computed by CSYTRF_RK and CSYTRF_BK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
should be provided on entry in array E), and
b) If UPLO = 'U': factor U in the superdiagonal part of A.
If UPLO = 'L': factor L in the subdiagonal part of A.```

LDA

```          LDA is INTEGER
The leading dimension of the array A.  LDA >= max(1,N).```

E

```          E is COMPLEX array, dimension (N)
On entry, contains the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced;
If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced.

NOTE: For 1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is not referenced in both
UPLO = 'U' or UPLO = 'L' cases.```

IPIV

```          IPIV is INTEGER array, dimension (N)
Details of the interchanges and the block structure of D
as determined by CSYTRF_RK or CSYTRF_BK.```

B

```          B is COMPLEX array, dimension (LDB,NRHS)
On entry, the right hand side matrix B.
On exit, the solution matrix X.```

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Contributors:

```  June 2017,  Igor Kozachenko,
Computer Science Division,
University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester```

Definition at line 163 of file csytrs_3.f.

### subroutine dsytrs_3 (character uplo, integer n, integer nrhs, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) e, integer, dimension( * ) ipiv, double precision, dimension( ldb, * ) b, integer ldb, integer info)

DSYTRS_3

Purpose:

``` DSYTRS_3 solves a system of linear equations A * X = B with a real
symmetric matrix A using the factorization computed
by DSYTRF_RK or DSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a permutation
matrix, P**T is the transpose of P, and D is symmetric and block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.```
Parameters

UPLO

```          UPLO is CHARACTER*1
Specifies whether the details of the factorization are
stored as an upper or lower triangular matrix:
= 'U':  Upper triangular, form is A = P*U*D*(U**T)*(P**T);
= 'L':  Lower triangular, form is A = P*L*D*(L**T)*(P**T).```

N

```          N is INTEGER
The order of the matrix A.  N >= 0.```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B.  NRHS >= 0.```

A

```          A is DOUBLE PRECISION array, dimension (LDA,N)
Diagonal of the block diagonal matrix D and factors U or L
as computed by DSYTRF_RK and DSYTRF_BK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
should be provided on entry in array E), and
b) If UPLO = 'U': factor U in the superdiagonal part of A.
If UPLO = 'L': factor L in the subdiagonal part of A.```

LDA

```          LDA is INTEGER
The leading dimension of the array A.  LDA >= max(1,N).```

E

```          E is DOUBLE PRECISION array, dimension (N)
On entry, contains the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced;
If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced.

NOTE: For 1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is not referenced in both
UPLO = 'U' or UPLO = 'L' cases.```

IPIV

```          IPIV is INTEGER array, dimension (N)
Details of the interchanges and the block structure of D
as determined by DSYTRF_RK or DSYTRF_BK.```

B

```          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
On entry, the right hand side matrix B.
On exit, the solution matrix X.```

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Contributors:

```  June 2017,  Igor Kozachenko,
Computer Science Division,
University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester```

Definition at line 163 of file dsytrs_3.f.

### subroutine ssytrs_3 (character uplo, integer n, integer nrhs, real, dimension( lda, * ) a, integer lda, real, dimension( * ) e, integer, dimension( * ) ipiv, real, dimension( ldb, * ) b, integer ldb, integer info)

SSYTRS_3

Purpose:

``` SSYTRS_3 solves a system of linear equations A * X = B with a real
symmetric matrix A using the factorization computed
by SSYTRF_RK or SSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a permutation
matrix, P**T is the transpose of P, and D is symmetric and block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.```
Parameters

UPLO

```          UPLO is CHARACTER*1
Specifies whether the details of the factorization are
stored as an upper or lower triangular matrix:
= 'U':  Upper triangular, form is A = P*U*D*(U**T)*(P**T);
= 'L':  Lower triangular, form is A = P*L*D*(L**T)*(P**T).```

N

```          N is INTEGER
The order of the matrix A.  N >= 0.```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B.  NRHS >= 0.```

A

```          A is REAL array, dimension (LDA,N)
Diagonal of the block diagonal matrix D and factors U or L
as computed by SSYTRF_RK and SSYTRF_BK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
should be provided on entry in array E), and
b) If UPLO = 'U': factor U in the superdiagonal part of A.
If UPLO = 'L': factor L in the subdiagonal part of A.```

LDA

```          LDA is INTEGER
The leading dimension of the array A.  LDA >= max(1,N).```

E

```          E is REAL array, dimension (N)
On entry, contains the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced;
If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced.

NOTE: For 1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is not referenced in both
UPLO = 'U' or UPLO = 'L' cases.```

IPIV

```          IPIV is INTEGER array, dimension (N)
Details of the interchanges and the block structure of D
as determined by SSYTRF_RK or SSYTRF_BK.```

B

```          B is REAL array, dimension (LDB,NRHS)
On entry, the right hand side matrix B.
On exit, the solution matrix X.```

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Contributors:

```  June 2017,  Igor Kozachenko,
Computer Science Division,
University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester```

Definition at line 163 of file ssytrs_3.f.

### subroutine zhetrs_3 (character uplo, integer n, integer nrhs, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) e, integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b, integer ldb, integer info)

ZHETRS_3

Purpose:

``` ZHETRS_3 solves a system of linear equations A * X = B with a complex
Hermitian matrix A using the factorization computed
by ZHETRF_RK or ZHETRF_BK:

A = P*U*D*(U**H)*(P**T) or A = P*L*D*(L**H)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix,
U**H (or L**H) is the conjugate of U (or L), P is a permutation
matrix, P**T is the transpose of P, and D is Hermitian and block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.```
Parameters

UPLO

```          UPLO is CHARACTER*1
Specifies whether the details of the factorization are
stored as an upper or lower triangular matrix:
= 'U':  Upper triangular, form is A = P*U*D*(U**H)*(P**T);
= 'L':  Lower triangular, form is A = P*L*D*(L**H)*(P**T).```

N

```          N is INTEGER
The order of the matrix A.  N >= 0.```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B.  NRHS >= 0.```

A

```          A is COMPLEX*16 array, dimension (LDA,N)
Diagonal of the block diagonal matrix D and factors U or L
as computed by ZHETRF_RK and ZHETRF_BK:
a) ONLY diagonal elements of the Hermitian block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
should be provided on entry in array E), and
b) If UPLO = 'U': factor U in the superdiagonal part of A.
If UPLO = 'L': factor L in the subdiagonal part of A.```

LDA

```          LDA is INTEGER
The leading dimension of the array A.  LDA >= max(1,N).```

E

```          E is COMPLEX*16 array, dimension (N)
On entry, contains the superdiagonal (or subdiagonal)
elements of the Hermitian block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced;
If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced.

NOTE: For 1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is not referenced in both
UPLO = 'U' or UPLO = 'L' cases.```

IPIV

```          IPIV is INTEGER array, dimension (N)
Details of the interchanges and the block structure of D
as determined by ZHETRF_RK or ZHETRF_BK.```

B

```          B is COMPLEX*16 array, dimension (LDB,NRHS)
On entry, the right hand side matrix B.
On exit, the solution matrix X.```

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Contributors:

```  June 2017,  Igor Kozachenko,
Computer Science Division,
University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester```

Definition at line 163 of file zhetrs_3.f.

### subroutine zsytrs_3 (character uplo, integer n, integer nrhs, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) e, integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b, integer ldb, integer info)

ZSYTRS_3

Purpose:

``` ZSYTRS_3 solves a system of linear equations A * X = B with a complex
symmetric matrix A using the factorization computed
by ZSYTRF_RK or ZSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a permutation
matrix, P**T is the transpose of P, and D is symmetric and block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.```
Parameters

UPLO

```          UPLO is CHARACTER*1
Specifies whether the details of the factorization are
stored as an upper or lower triangular matrix:
= 'U':  Upper triangular, form is A = P*U*D*(U**T)*(P**T);
= 'L':  Lower triangular, form is A = P*L*D*(L**T)*(P**T).```

N

```          N is INTEGER
The order of the matrix A.  N >= 0.```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B.  NRHS >= 0.```

A

```          A is COMPLEX*16 array, dimension (LDA,N)
Diagonal of the block diagonal matrix D and factors U or L
as computed by ZSYTRF_RK and ZSYTRF_BK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
should be provided on entry in array E), and
b) If UPLO = 'U': factor U in the superdiagonal part of A.
If UPLO = 'L': factor L in the subdiagonal part of A.```

LDA

```          LDA is INTEGER
The leading dimension of the array A.  LDA >= max(1,N).```

E

```          E is COMPLEX*16 array, dimension (N)
On entry, contains the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced;
If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced.

NOTE: For 1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is not referenced in both
UPLO = 'U' or UPLO = 'L' cases.```

IPIV

```          IPIV is INTEGER array, dimension (N)
Details of the interchanges and the block structure of D
as determined by ZSYTRF_RK or ZSYTRF_BK.```

B

```          B is COMPLEX*16 array, dimension (LDB,NRHS)
On entry, the right hand side matrix B.
On exit, the solution matrix X.```

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Contributors:

```  June 2017,  Igor Kozachenko,
Computer Science Division,
University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester```

Definition at line 163 of file zsytrs_3.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Info

Tue Nov 28 2023 12:08:43 Version 3.12.0 LAPACK