Developer Reference

Contents

?potrf2

Computes Cholesky factorization using a recursive algorithm.

Syntax

lapack_int
LAPACKE_spotrf2
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
float
*
a
,
lapack_int
lda
);
lapack_int
LAPACKE_dpotrf2
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
double
*
a
,
lapack_int
lda
);
lapack_int
LAPACKE_cpotrf2
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
lapack_complex_float
*
a
,
lapack_int
lda
);
lapack_int
LAPACKE_zpotrf2
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
lapack_complex_double
*
a
,
lapack_int
lda
);
Include Files
  • mkl.h
Description
?potrf2
computes the Cholesky factorization of a real or complex symmetric positive definite matrix
A
using the recursive algorithm.
The factorization has the form
for real flavors:
A
=
U
T
*
U
, if
uplo
= 'U', or
A
=
L
*
L
T
, if
uplo
= 'L',
for complex flavors:
A
=
U
H
*
U
, if
uplo
= 'U',
or
A
=
L
*
L
H
, if
uplo
= 'L',
where
U
is an upper triangular matrix and
L
is lower triangular.
This is the recursive version of the algorithm. It divides the matrix into four submatrices:
where
A11
is
n1
by
n1
and
A22
is
n2
by
n2
, with
n1
=
n
/2 and
n2
=
n
-
n1
.
The subroutine calls itself to factor
A11
. Update and scale
A21
or
A12
, update
A22
then call itself to factor
A22
.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
uplo
= 'U': Upper triangle of
A
is stored;
= 'L': Lower triangle of
A
is stored.
n
The order of the matrix
A
.
n
0.
a
Array, size
(
lda
*
n
)
.
On entry, the symmetric matrix
A
.
If
uplo
= 'U', the leading
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', the leading
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
The leading dimension of the array
a
.
lda
max(1,
n
).
Output Parameters
a
On exit, if
info
= 0, the factor
U
or
L
from the Cholesky factorization.
For real flavors:
A
=
U
T
*
U
or
A
=
L
*
L
T
;
For complex flavors:
A
=
U
H
*
U
or
A
=
L
*
L
H
.
Return Values
This function returns a value
info
.
= 0: successful exit
< 0: if
info
= -
i
, the
i
-th argument had an illegal value
> 0: if
info
=
i
, the leading minor of order
i
is not positive definite, and the factorization could not be completed.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804