Developer Reference for Intel® oneAPI Math Kernel Library for C
p?trsv
Solves a system of linear equations whose coefficients are in a distributed triangular matrix.
Syntax
void pstrsv ( const char*uplo , const char*trans , const char*diag , const MKL_INT*n , const float*a , const MKL_INT*ia , const MKL_INT*ja , const MKL_INT*desca , float*x , const MKL_INT*ix , const MKL_INT*jx , const MKL_INT*descx , const MKL_INT*incx );
void pdtrsv ( const char*uplo , const char*trans , const char*diag , const MKL_INT*n , const double*a , const MKL_INT*ia , const MKL_INT*ja , const MKL_INT*desca , double*x , const MKL_INT*ix , const MKL_INT*jx , const MKL_INT*descx , const MKL_INT*incx );
void pctrsv ( const char*uplo , const char*trans , const char*diag , const MKL_INT*n , const MKL_Complex8*a , const MKL_INT*ia , const MKL_INT*ja , const MKL_INT*desca , MKL_Complex8*x , const MKL_INT*ix , const MKL_INT*jx , const MKL_INT*descx , const MKL_INT*incx );
void pztrsv ( const char*uplo , const char*trans , const char*diag , const MKL_INT*n , const MKL_Complex16*a , const MKL_INT*ia , const MKL_INT*ja , const MKL_INT*desca , MKL_Complex16*x , const MKL_INT*ix , const MKL_INT*jx , const MKL_INT*descx , const MKL_INT*incx );
Include Files
mkl_pblas.h
Description
The p?trsv routines solve one of the systems of equations:
sub(A)*sub(x) = b , or sub(A)'*sub(x) = b , or conjg(sub(A)')*sub(x) = b ,
where:
sub(A) is a n -by- n unit, or non-unit, upper or lower triangular distributed matrix, sub(A) = A(ia:ia+n-1, ja:ja+n-1) ,
b and sub(x) are n -element distributed vectors,
sub(x) denotes X(ix, jx:jx+n-1) if incx = m_x , and X(ix: ix+n-1, jx) if incx = 1, .
The routine does not test for singularity or near-singularity. Such tests must be performed before calling this routine.
Input Parameters
uplo
(global) Specifies whether the distributed matrix sub(A) is upper or lower triangular:
if uplo = 'U' or ‘u’ , then the matrix is upper triangular; if uplo = 'L' or ‘l’ , then the matrix is low triangular.
trans
(global) Specifies the form of the system of equations:
if transa = 'N' or 'n' , then sub(A)*sub(x) = b ; if transa = 'T' or 't' , then sub(A)'*sub(x) = b ; if transa = 'C' or 'c' , then conjg(sub(A)')*sub(x) = b .
diag
(global) Specifies whether the matrix sub(A) is unit triangular:
if diag = 'U' or ‘u’ then the matrix is unit triangular; if diag = 'N' or ‘n’ , then the matrix is not unit triangular.
n
(global) Specifies the order of the distributed matrix sub(A) , n ≥ 0.
a
(local)
DOUBLE PRECISION for pdtrsv COMPLEX for pctrsv DOUBLE COMPLEX for pztrsv Array, size at least (lld_a, LOCq(1, ja+n-1)) . Before entry with uplo = 'U' or ‘u’ , this array contains the local entries corresponding to the entries of the upper triangular distributed matrix sub(A) , and the local entries corresponding to the entries of the strictly lower triangular part of the distributed matrix sub(A) is not referenced. Before entry with uplo = 'L' or ‘l’ , this array contains the local entries corresponding to the entries of the lower triangular distributed matrix sub(A) , and the local entries corresponding to the entries of the strictly upper triangular part of the distributed matrix sub(A) is not referenced . When diag = 'U' or ‘u’ , the local entries corresponding to the diagonal elements of the submatrix sub(A) are not referenced either, but are assumed to be unity.
ia , ja
(global) The row and column indices in the distributed matrix A indicating the first row and the first column of the submatrix sub(A) , respectively.
desca
(global and local) array of dimension 9. The array descriptor of the distributed matrix A .
x
(local)
DOUBLE PRECISION for pdtrsv COMPLEX for pctrsv DOUBLE COMPLEX for pztrsv Array, size at least (jx-1)*m_x + ix+(n-1)*abs(incx)) . This array contains the entries of the distributed vector sub(x) . Before entry, sub(x) must contain the n -element right-hand side distributed vector b .
ix , jx
(global) The row and column indices in the distributed matrix X indicating the first row and the first column of the submatrix sub(x) , respectively.
descx
(global and local) array of dimension 9. The array descriptor of the distributed matrix X .
incx
(global) Specifies the increment for the elements of sub(x) . Only two values are supported, namely 1 and m_x . incx must not be zero.
Output Parameters
- x
-
Overwritten with the solution vector.