Contents

# ?pstrf

Computes the Cholesky factorization with complete pivoting of a real symmetric (complex Hermitian) positive semidefinite matrix.

## Syntax

Include Files
• mkl.h
Description
The routine computes the Cholesky factorization with complete pivoting of a real symmetric (complex Hermitian) positive semidefinite matrix. The form of the factorization is:
• P
T
*
A
*
P
=
U
T
*
U
, if
uplo
=
'U'
for real flavors,
• P
T
*
A
*
P
=
U
H
*
U
, if
uplo
=
'U'
for complex flavors,
• P
T
*
A
*
P
=
L
*
L
T
, if
uplo
=
'L'
for real flavors,
• P
T
*
A
*
P
=
L
*
L
H
, if
uplo
=
'L'
for complex flavors,
where
P
is a permutation matrix stored as vector
piv
, and
U
and
L
are upper and lower triangular matrices, respectively.
This algorithm does not attempt to check that
A
is positive semidefinite. This version of the algorithm calls level 3 BLAS.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
uplo
Must be
'U'
or
'L'
.
Indicates whether the upper or lower triangular part of
A
is stored:
If
uplo
=
'U'
, the array
a
stores the upper triangular part of the matrix
A
, and the strictly lower triangular part of the matrix is not referenced.
If
uplo
=
'L'
, the array
a
stores the lower triangular part of the matrix
A
, and the strictly upper triangular part of the matrix is not referenced.
n
The order of matrix
A
;
n
0.
a
Array
a
, size
max(1,
lda
*
n
)
. The array
a
contains either the upper or the lower triangular part of the matrix
A
(see
uplo
). .
tol
User defined tolerance. If
tol
< 0, then
n
*
ε
*max(
A
k
,
k
), where
ε
is the machine precision, will be used (see Error Analysis for the definition of machine precision). The algorithm terminates at the
(
k
-1)
-st step, if the pivot
tol
.
lda
a
; at least
max(1,
n
)
.
Output Parameters
a
If
info
= 0
, the factor
U
or
L
from the Cholesky factorization
is as described in
Description
.
piv
Array, size at least
max(1,
n
)
. The array
piv
is such that the nonzero entries are
P
piv
[
k
-1],
k
(1
k
n
).
rank
The rank of
a
given by the number of steps the algorithm completed.
Return Values
This function returns a value
info
.
If
info
= 0
, the execution is successful.
If
info
=
-k
, the
k-
th argument had an illegal value.
If
info
> 0
, the matrix
A
is either rank deficient with a computed rank as returned in
rank
, or is not positive semidefinite.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.