## Developer Reference

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

# ?sptrf

Computes the Bunch-Kaufman factorization of a symmetric matrix using packed storage.

## Syntax

Include Files
• mkl.fi
,
lapack.f90
Description
The routine computes the factorization of a real/complex symmetric matrix
A
stored in the packed format using the Bunch-Kaufman diagonal pivoting method. The form of the factorization is:
• if
uplo
=
'U'
,
A
=
U*D*U
T
• if
uplo
=
'L'
,
A
=
L*D*L
T
,
where
U
and
L
are products of permutation and triangular matrices with unit diagonal (upper triangular for
U
and lower triangular for
L
), and
D
is a symmetric block-diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks.
U
and
L
have 2-by-2 unit diagonal blocks corresponding to the 2-by-2 blocks of
D
.
This routine supports the Progress Routine feature. See Progress Function for details.
Input Parameters
uplo
CHARACTER*1
.
Must be
'U'
or
'L'
.
Indicates whether the upper or lower triangular part of
A
is packed in the array
ap
and how
A
is factored:
If
uplo
=
'U'
, the array
ap
stores the upper triangular part of the matrix
A
, and
A
is factored as
U*D*U
T
.
If
uplo
=
'L'
, the array
ap
stores the lower triangular part of the matrix
A
, and
A
is factored as
L*D*L
T
.
n
INTEGER
.
The order of matrix
A
;
n
0.
ap
REAL
for
ssptrf
DOUBLE PRECISION
for
dsptrf
COMPLEX
for
csptrf
DOUBLE COMPLEX
for
zsptrf
.
Array, size at least max(1,
n
(
n
+1)/2). The array
ap
contains the upper or the lower triangular part of the matrix
A
(as specified by
uplo
) in packed storage.
Output Parameters
ap
The upper or lower triangle of
A
(as specified by
uplo
) is overwritten by details of the block-diagonal matrix
D
and the multipliers used to obtain the factor
U
(or
L
).
ipiv
INTEGER
.
Array, size at least
max(1,
n
)
. Contains details of the interchanges and the block structure of
D
. If
ipiv
(
i
) =
k
>0
, then
d
i
i
is a 1-by-1 block, and the
i
-th row and column of
A
was interchanged with the
k
-th row and column.
If
uplo
=
'U'
and
ipiv
(