Developer Reference

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

?sptrf

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

Syntax

call ssptrf
(
uplo
,
n
,
ap
,
ipiv
,
info
)
call dsptrf
(
uplo
,
n
,
ap
,
ipiv
,
info
)
call csptrf
(
uplo
,
n
,
ap
,
ipiv
,
info
)
call zsptrf
(
uplo
,
n
,
ap
,
ipiv
,
info
)
call sptrf
(
ap
[
,
uplo
]
[
,
ipiv
]
[
,
info
]
)
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
(