Developer Reference for Intel® oneAPI Math Kernel Library for C
?pbtrf
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite band matrix.
Syntax
lapack_intLAPACKE_spbtrf ( intmatrix_layout , charuplo , lapack_intn , lapack_intkd , float*ab , lapack_intldab );
lapack_intLAPACKE_dpbtrf ( intmatrix_layout , charuplo , lapack_intn , lapack_intkd , double*ab , lapack_intldab );
lapack_intLAPACKE_cpbtrf ( intmatrix_layout , charuplo , lapack_intn , lapack_intkd , lapack_complex_float*ab , lapack_intldab );
lapack_intLAPACKE_zpbtrf ( intmatrix_layout , charuplo , lapack_intn , lapack_intkd , lapack_complex_double*ab , lapack_intldab );
Include Files
mkl.h
Description
spbtrf dpbtrf cpbtrf zpbtrf pbtrf
The routine forms the Cholesky factorization of a symmetric positive-definite or, for complex data, Hermitian positive-definite band matrix A :
\(A = U^{T}*U\) for real data, \(A = U^{H}*U\) for complex data |
if uplo='U' |
\(A = L*L^{T}\) for real data, \(A = L*L^{H}\) 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 in the array ab , and how \(A\) is factored:
If uplo = 'U' , the upper triangle of \(A\) is stored.
If uplo = 'L' , the lower triangle of \(A\) is stored.
n
The order of matrix A ; n ≥ 0.
kd
The number of superdiagonals or subdiagonals in the matrix A ; kd ≥ 0.
ab
Array, size (ldab,*) max(1, ldab * n ) . The array ab contains either the upper or the lower triangular part of the matrix A (as specified by uplo ) in band storage (see Matrix Storage Schemes ).
ldab
The leading dimension of the array ab . (ldab≥kd + 1)
Output Parameters
ab
The upper or lower triangular part of \(A\) (in band storage) 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 .
LAPACK 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.
Application Notes
If uplo = 'U' , the computed factor \(U\) is the exact factor of a perturbed matrix \(A + E\) , where
\[|E| \leq c(kd + 1) \epsilon |U^H| |U|, \quad |e_{ij}| \leq c(kd+1) \epsilon \sqrt{a_{ii}a_{jj}}\]
c(n) is a modest linear function of n , and \(\varepsilon\) is the machine precision .
A similar estimate holds for uplo = 'L' .
The total number of floating-point operations for real flavors is approximately \(n(kd+1)^{2}\) . The number of operations for complex flavors is 4 times greater. All these estimates assume that kd is much less than n .
After calling this routine, you can call the following routines:
?pbtrs (Solves a system of linear equations with a Cholesky-factored symmetric (Hermitian) positive-definite band coefficient matrix.)
to solve \(AX = B\)
?pbcon (Estimates the reciprocal of the condition number of a symmetric (Hermitian) positive-definite band matrix.)
to estimate the condition number of \(A\) .