Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
p?pttrs
Solves a system of linear equations with a symmetric (Hermitian) positive-definite tridiagonal distributed matrix using the factorization computed by p?pttrf .
Syntax
call pspttrs ( n , nrhs , d , e , ja , desca , b , ib , descb , af , laf , work , lwork , info )
call pdpttrs ( n , nrhs , d , e , ja , desca , b , ib , descb , af , laf , work , lwork , info )
call pcpttrs ( uplo , n , nrhs , d , e , ja , desca , b , ib , descb , af , laf , work , lwork , info )
call pzpttrs ( uplo , n , nrhs , d , e , ja , desca , b , ib , descb , af , laf , work , lwork , info )
Include Files
mkl_scalapack.h
Description
pspttrs pdpttrs pcpttrs pzpttrs The p?pttrs 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 tridiagonal distributed matrix, and sub( B ) denotes the distributed matrix B ( ib : ib + n -1, 1: nrhs ).
This routine function uses the factorization
sub( A ) = P * L * D * L:code:`H` * P:code:`T` , or sub( A ) = P * U:code:`H` * D * U * P:code:`T`
computed by p?pttrf (Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite tridiagonal distributed matrix.) .
Input Parameters
- uplo
-
(global, used in complex flavors only)
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) .
nrhs
(global) INTEGER . The number of right hand sides; the number of columns of the distributed matrix sub( B ) (nrhs≥0) .
- d , e
-
(local) REAL for pspttrs DOUBLE PRECISON for pdpttrs COMPLEX for pcpttrs DOUBLE COMPLEX for pzpttrs . Pointers into the local memory to arrays of size nb_a each. These arrays contain details of the factorization as returned by p?pttrf
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 or dtype_a = 502 , then dlen_≥ 7 ; else if dtype_a = 1 , then dlen_≥ 9 .
- b
-
(local) Same type as d , e . Pointer into the local memory to an array of local size
(lld_b,LOCc(nrhs)) .
On entry, the array b contains the local pieces of the n -by- nrhs right hand side distributed matrix sub( B ).
ib
(global) INTEGER . The row index in the global matrix B indicating the first row of the matrix to be operated on (which may be either all of B or a submatrix of 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) REAL for pspttrs
DOUBLE PRECISION for pdpttrs COMPLEX for pcpttrs DOUBLE COMPLEX for pzpttrs .
Arrays of size laf and ( lwork ), respectively. The array af contains auxiliary fill-in space. The fill-in space is created in a call to the factorization routine p?pttrf and is stored in af .
The array work is a workspace array.
laf
(local) INTEGER . The size of the array af .
Must be laf≥nb_a+2 .
If laf is not large enough, an error code is 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 ≥ (10+2* min (100, nrhs ))* NPCOL +4* nrhs .
Output Parameters
- b
-
On exit, this array contains the local pieces of the 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 :