## Developer Reference

• 2020.2
• 07/15/2020
• Public Content
Contents

# ?sytrf_rk

Computes the factorization of a real or complex symmetric indefinite matrix using the bounded Bunch-Kaufman (rook) diagonal pivoting method (BLAS3 blocked algorithm).
Description
?sytrf_rk
computes the factorization of a real or complex symmetric matrix A using the bounded Bunch-Kaufman (rook) diagonal pivoting method: 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 is the blocked version of the algorithm, calling Level-3 BLAS.
Input Parameters
uplo
CHARACTER*1
Specifies whether the upper or lower triangular part of the symmetric matrix A is stored:
• =
'U'
: Upper triangular
• =
'L'
: Lower triangular
n
INTEGER
The order of the matrix A.
n
≥ 0.
A
REAL
for
ssytrf_rk
DOUBLE PRECISION
for
dsytrf_rk
COMPLEX
for
csytrf_rk
COMPLEX*16
for
zsytrf_rk
Array, dimension (
lda
,
n
).
On entry, the symmetric matrix A. If
uplo
=
'U'
n
-by-
n
upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If
uplo
=
'L'
n
-by-
n
lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
lda
INTEGER
The leading dimension of the array
A
.
lda
≥ max(1,
n
).
lwork
INTEGER
The length of the array
work
.
If
lwork
=
-1
, then a workspace query is assumed; the routine only calculates the optimal size of the
work
array, returns this value as the first entry of the
work
array, and no error message related to
lwork
is issued by XERBLA.
Output Parameters
A
REAL
for
ssytrf_rk
DOUBLE PRECISION
for
dsytrf_rk
COMPLEX
for
csytrf_rk
COMPLEX*16
for
zsytrf_rk
On exit, contains:
• Only
diagonal elements of the symmetric block diagonal matrix D on the diagonal of A; that is, D(
k
,
k
) = A(
k
,
k
); (superdiagonal (or subdiagonal) elements of D are stored on exit in array
e
).
• If
uplo
=
'U'
, factor U in the superdiagonal part of A. If
uplo
=
'L'
, factor L in the subdiagonal part of A.
e
REAL
for
ssytrf_rk
DOUBLE PRECISION
for
dsytrf_rk
COMPLEX
for
csytrf_rk
COMPLEX*16
for
zsytrf_rk
Array, dimension (
n
).
On exit, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D with 1-by-1 or 2-by-2 diagonal blocks. If
uplo
=
'U'
, e(
i
) = D(
i
-
1,