Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
p?pbtrf
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite banded distributed matrix.
Syntax
call pspbtrf ( uplo , n , bw , a , ja , desca , af , laf , work , lwork , info )
call pdpbtrf ( uplo , n , bw , a , ja , desca , af , laf , work , lwork , info )
call pcpbtrf ( uplo , n , bw , a , ja , desca , af , laf , work , lwork , info )
call pzpbtrf ( uplo , n , bw , a , ja , desca , af , laf , work , lwork , info )
Include Files
mkl_scalapack.h
Description
pspbtrf pdpbtrf pcpbtrf pzpbtrf The p?pbtrf routine function computes the Cholesky factorization of an n -by- n real symmetric or complex Hermitian positive-definite banded distributed matrix A (1: n , ja : ja + n -1).
The resulting factorization is not the same factorization as returned from LAPACK. Additional permutations are performed on the matrix for the sake of parallelism.
The factorization has the form:
A (1: n , ja : ja + n -1) = P * U:code:`H` * U * P:code:`T` , if uplo='U' , or
A (1: n , ja : ja + n -1) = P*L*L:code:`H`*P:code:`T` , if uplo='L' ,
where P is a permutation matrix and U and L are banded upper and lower triangular matrices, respectively.
Product and Performance Information Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex . Notice revision #20201201
Input Parameters
uplo
(global) CHARACTER*1 . Must be ‘U’ or ‘L’ .
If uplo = 'U' , upper triangle of A (1: n , ja : ja + n -1) is stored; If uplo = 'L' , lower triangle of A (1: n , ja : ja + n -1) is stored.
n
(global) INTEGER . The order of the distributed submatrix A (1: n , ja : ja + n -1).
(n≥0) .
bw
(global) INTEGER .
The number of superdiagonals of the distributed matrix if uplo = 'U' , or the number of subdiagonals if uplo = 'L' (bw≥0) .
- a
-
(local) REAL for pspbtrf DOUBLE PRECISON for pdpbtrf COMPLEX for pcpbtrf DOUBLE COMPLEX for pzpbtrf .
Pointer into the local memory to an array of size (lld_a,LOCc(ja+n-1)) .
On entry, this array contains the local pieces of the upper or lower triangle of the symmetric/Hermitian band distributed matrix A (1: n , ja : ja + n -1) to be factored.
ja
(global) INTEGER . The index in the global matrix A indicating the start of the matrix to be operated on (which may be either all of A or a submatrix of A ).
desca
(global and local) INTEGER array of size dlen_ . The array descriptor for the distributed matrix A .
If dtype_a = 501 , then dlen_≥ 7 ; else if dtype_a = 1 , then dlen_≥ 9 .
laf
(local) INTEGER . The size of the array af .
Must be laf≥ (NB+2*bw)*bw .
If laf is not large enough, an error code will be returned and the minimum acceptable size will be returned in af (1) .
work
(local) Same type as a . Workspace array of size lwork .
lwork
(local or global) INTEGER . The size of the work array, must be lwork≥bw^{2} .
Output Parameters
- a
-
On exit, if info=0 , contains the permuted triangular factor U or L from the Cholesky factorization of the band matrix A (1: n , ja : ja + n -1), as specified by uplo .
- af
-
(local) REAL for pspbtrf DOUBLE PRECISON for pdpbtrf COMPLEX for pcpbtrf DOUBLE COMPLEX for pzpbtrf .
Array of size laf . Auxiliary fill-in space. The fill-in space is created in a call to the factorization routine p?pbtrf and stored in af . Note that if a linear system is to be solved using p?pbtrs after the factorization routine , af must not be altered.
work(1)[0]
On exit, work(1)[0] contains the minimum value of lwork required for optimum performance.
info
(global) INTEGER .
If info=0 , the execution is successful. info < 0 :
If the i -th argument is an array and the j- th entry had an illegal value, then info = -( i *100+ j ); if the i- th argument is a scalar and had an illegal value, then info = -i .
info>0 : If info = k ≤ NPROCS , the submatrix stored on processor info and factored locally was not positive definite, and the factorization was not completed. If info = k > NPROCS , the submatrix stored on processor info-NPROCS representing interactions with other processors was not nonsingular, and the factorization was not completed.