Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
p?pbtrs
Solves a system of linear equations with a Cholesky-factored symmetric/Hermitian positive-definite band matrix.
Syntax
call pspbtrs ( uplo , n , bw , nrhs , a , ja , desca , b , ib , descb , af , laf , work , lwork , info )
call pdpbtrs ( uplo , n , bw , nrhs , a , ja , desca , b , ib , descb , af , laf , work , lwork , info )
call pcpbtrs ( uplo , n , bw , nrhs , a , ja , desca , b , ib , descb , af , laf , work , lwork , info )
call pzpbtrs ( uplo , n , bw , nrhs , a , ja , desca , b , ib , descb , af , laf , work , lwork , info )
Include Files
mkl_scalapack.h
Description
pspbtrs pdpbtrs pcpbtrs pzpbtrs The p?pbtrs routine function solves for X a system of distributed linear equations in the form:
sub( A )* X = sub( B ) ,
where sub( A ) = A (1: n , ja : ja + n -1) is an n -by- n real symmetric or complex Hermitian positive definite distributed band matrix, and sub( B ) denotes the distributed matrix B ( ib : ib + n -1, 1: nrhs ).
This routine function uses Cholesky factorization
sub( A ) = P*U:code:`H`*U*P:code:`T` , or sub( A ) = P*L*L:code:`H`*P:code:`T`
computed by p?pbtrf (Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite banded distributed matrix.) .
Input Parameters
uplo
(global) CHARACTER*1 . Must be ‘U’ or ‘L’ .
If uplo = 'U' , upper triangle of sub( A ) is stored; If uplo = 'L' , lower triangle of sub( A ) is stored.
n
(global) INTEGER . The order of the distributed matrix sub( A ) (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) .
nrhs
(global) INTEGER . The number of right hand sides; the number of columns of the distributed matrix sub( B ) ( nrhs ≥ 0).
- a , b
-
(local) REAL for pspbtrs DOUBLE PRECISION for pdpbtrs COMPLEX for pcpbtrs DOUBLE COMPLEX for pzpbtrs .
Pointers into the local memory to arrays of local sizes (lld_a,LOCc(ja+n-1)) and (lld_b,LOCc(nrhs-1)) , respectively.
The array a contains the permuted triangular factor U or L from the Cholesky factorization sub( A ) = P * U:code:`H` * U * P:code:`T` , or sub( A ) = P * L * L:code:`H`*P:code:`T` of the band matrix A , as returned by p?pbtrf . On entry, the array b contains the local pieces of the n -by- nrhs right hand side distributed matrix sub( B ).
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 .
ib
(global) INTEGER . The row index in the global matrix B indicating the first row of the matrix sub( B ).
descb
(global and local) INTEGER array of size dlen_ . The array descriptor for the distributed matrix B .
If dtype_b = 502 , then dlen_≥ 7 ; else if dtype_b = 1 , then dlen_≥ 9 .
- af , work
-
(local) Arrays, same type as a .
The array af is of size laf . It contains auxiliary fill-in space. The fill-in space is created in a call to the factorization routine GUID-BC12A366-4534-402D-AE49-2854EF8131EA.xml#GUID-BC12A366-4534-402D-AE49-2854EF8131EA and is stored in af .
The array work is a workspace array of size lwork .
laf
(local) INTEGER . The size of the array af .
Must be laf≥nrhs*bw .
If laf is not large enough, an error code will be returned and the minimum acceptable size will be returned in af (1) .
lwork
(local or global) INTEGER . The size of the array work , must be at least lwork≥bw^{2} .
Output Parameters
- b
-
On exit, if info=0 , this array contains the local pieces of the n -by- nrhs solution distributed matrix X .
work(1)[0]
On exit, work(1)[0] contains the minimum value of lwork required for optimum performance.
info
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 .