Developer Reference for Intel® oneAPI Math Kernel Library for C
p?trtrs
Solves a system of linear equations with a triangular distributed matrix.
Syntax
voidpstrtrs ( char*uplo , char*trans , char*diag , MKL_INT*n , MKL_INT*nrhs , float*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , float*b , MKL_INT*ib , MKL_INT*jb , MKL_INT*descb , MKL_INT*info );
voidpdtrtrs ( char*uplo , char*trans , char*diag , MKL_INT*n , MKL_INT*nrhs , double*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , double*b , MKL_INT*ib , MKL_INT*jb , MKL_INT*descb , MKL_INT*info );
voidpctrtrs ( char*uplo , char*trans , char*diag , MKL_INT*n , MKL_INT*nrhs , MKL_Complex8*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , MKL_Complex8*b , MKL_INT*ib , MKL_INT*jb , MKL_INT*descb , MKL_INT*info );
voidpztrtrs ( char*uplo , char*trans , char*diag , MKL_INT*n , MKL_INT*nrhs , MKL_Complex16*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , MKL_Complex16*b , MKL_INT*ib , MKL_INT*jb , MKL_INT*descb , MKL_INT*info );
Include Files
mkl_scalapack.h
Description
pstrtrs pdtrtrs pctrtrs pztrtrs The p?trtrs routine function solves for X one of the following systems of linear equations:
sub( A )* X = sub( B ),
(sub( A )) :code:`T` * X = sub( B ), or
(sub( A )) :code:`H` * X = sub( B ),
where sub( A ) = A ( ia : ia + n -1, ja : ja + n -1) is a triangular distributed matrix of order n , and sub( B ) denotes the distributed matrix B ( ib : ib + n -1, jb : jb + nrhs -1).
A check is made to verify that sub( A ) is nonsingular.
Input Parameters
uplo
(global) Must be ‘U’ or ‘L’ .
Indicates whether sub( A ) is upper or lower triangular: If uplo = 'U' , then sub( A ) is upper triangular. If uplo = 'L' , then sub( A ) is lower triangular.
trans
(global) Must be ‘N’ or ‘T’ or ‘C’ .
Indicates the form of the equations: If trans = 'N' , then sub( A )* X = sub( B ) is solved for X . If trans = 'T' , then sub( A ) :code:`T` * X = sub( B ) is solved for X . If trans = 'C' , then sub( A ) :code:`H` * X = sub( B ) is solved for X .
diag
(global) Must be ‘N’ or ‘U’ .
If diag = 'N' , then sub( A ) is not a unit triangular matrix. If diag = 'U' , then sub( A ) is unit triangular.
n
(global) The order of the distributed matrix sub( A ) (n≥0) .
nrhs
(global) The number of right-hand sides; i.e., the number of columns of the distributed matrix sub( B ) (nrhs≥0) .
- a , b
-
(local) REAL for pstrtrs DOUBLE PRECISION for pdtrtrs COMPLEX for pctrtrs DOUBLE COMPLEX for pztrtrs .
Pointers into the local memory to arrays of local sizes (lld_a,LOCc(ja+n-1))lld_a * LOCc ( ja + n -1) and (lld_b,LOCc(jb+nrhs-1))lld_b * LOCc ( jb + nrhs -1 ) , respectively.
The array a contains the local pieces of the distributed triangular matrix sub( A ). If uplo = 'U' , the leading n -by- n upper triangular part of sub( A ) contains the upper triangular matrix, and the strictly lower triangular part of sub( A ) is not referenced. If uplo = 'L' , the leading n -by- n lower triangular part of sub( A ) contains the lower triangular matrix, and the strictly upper triangular part of sub( A ) is not referenced. If diag = 'U' , the diagonal elements of sub( A ) are also not referenced and are assumed to be 1. On entry, the array b contains the local pieces of the right hand side distributed matrix sub( B ).
ia , ja
(global) The row and column indices in the global matrix A indicating the first row and the first column of the matrix sub( A ), respectively.
desca
(global and local) array of size dlen_ . The array descriptor for the distributed matrix A .
ib , jb
(global) The row and column indices in the global matrix B indicating the first row and the first column of the matrix sub( B ), respectively.
descb
(global and local) array of size dlen_ . The array descriptor for the distributed matrix B .
Output Parameters
- b
-
On exit, if info=0 , sub( B ) is overwritten by the solution matrix X .
info
If info=0 , the execution is successful.
info < 0 :
if the i -th argument is an array and the j- th entry , indexed j - 1, 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 = i , the i -th diagonal element of sub( A ) is zero, indicating that the submatrix is singular and the solutions X have not been computed.