Developer Reference for Intel® oneAPI Math Kernel Library for C
A newer version of this document is available. Customers should click here to go to the newest version.
?potrf
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite matrix.
Syntax
lapack_int LAPACKE_spotrf (int matrix_layout , char uplo , lapack_int n , float * a , lapack_int lda );
lapack_int LAPACKE_dpotrf (int matrix_layout , char uplo , lapack_int n , double * a , lapack_int lda );
lapack_int LAPACKE_cpotrf (int matrix_layout , char uplo , lapack_int n , lapack_complex_float * a , lapack_int lda );
lapack_int LAPACKE_zpotrf (int matrix_layout , char uplo , lapack_int n , lapack_complex_double * a , lapack_int lda );
Include Files
- mkl.h
 
Description
The routine forms the Cholesky factorization of a symmetric positive-definite or, for complex data, Hermitian positive-definite matrix A:
| A = UT* U for real data, A = UH* U for complex data | if uplo='U' | 
| A = L*LT for real data, A = L*LH for complex data | if uplo='L' | 
where L is a lower triangular matrix and U is upper triangular.
This routine supports the Progress Routine feature. See Progress Function for details.
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 and how A is factored:
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
 -  
     
Specifies the order of the matrix A. The value of n must be at least zero.
 - a
 -  
     
Array, size max(1, lda*n). The array a contains either the upper or the lower triangular part of the matrix A (see uplo).
 - lda
 -  
     
The leading dimension of a. Must be at least max(1, n).
 
Output Parameters
- a
 -  
     
The upper or lower triangular part of a is overwritten by the Cholesky factor U or L, as specified by uplo.
 
Return Values
This function returns a value info.
If info=0, the execution is successful.
If info = -i, parameter i had an illegal value.
If info = i, the leading minor of order i (and therefore the matrix A itself) is not positive-definite, and the factorization could not be completed. This may indicate an error in forming the matrix A.
Application Notes
If uplo = 'U', the computed factor U is the exact factor of a perturbed matrix A + E, where
 
   c(n) is a modest linear function of n, and ε is the machine precision.
A similar estimate holds for uplo = 'L'.
The total number of floating-point operations is approximately (1/3)n3 for real flavors or (4/3)n3 for complex flavors.
After calling this routine, you can call the following routines:
to solve A*X = B  |  
     |
to estimate the condition number of A  |  
     |
to compute the inverse of A.  |