Visible to Intel only — GUID: GUID-11BCB871-887C-4F29-9500-863F83DF6B41
Visible to Intel only — GUID: GUID-11BCB871-887C-4F29-9500-863F83DF6B41
?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 = UT * U, if uplo = 'U', or
A = L * LT, if uplo = 'L',
for complex flavors:
A = UH * U, if uplo = 'U',
or A = L * LH, 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 = UT*U or A = L*LT; For complex flavors: A = UH*U or A = L*LH. |
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.