Developer Reference for Intel® oneAPI Math Kernel Library for C
?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:
\[\begin{split}A = \begin{pmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{pmatrix}\end{split}\]
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
-
Specifies the order of the matrix A . The value of n must be at least zero.
- a
-
REAL for spotrf2 DOUBLE PRECISION for dpotrf2 COMPLEX for cpotrf2 DOUBLE COMPLEX for zpotrf2
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.