Visible to Intel only — GUID: GUID-3D5D4AB1-FAEB-4B27-9809-673E35DF665F
Visible to Intel only — GUID: GUID-3D5D4AB1-FAEB-4B27-9809-673E35DF665F
p?dttrsv
Computes an LU factorization of a general band matrix, using partial pivoting with row interchanges. The function is called by p?dttrs.
Syntax
void psdttrsv (char *uplo , char *trans , MKL_INT *n , MKL_INT *nrhs , float *dl , float *d , float *du , MKL_INT *ja , MKL_INT *desca , float *b , MKL_INT *ib , MKL_INT *descb , float *af , MKL_INT *laf , float *work , MKL_INT *lwork , MKL_INT *info );
void pddttrsv (char *uplo , char *trans , MKL_INT *n , MKL_INT *nrhs , double *dl , double *d , double *du , MKL_INT *ja , MKL_INT *desca , double *b , MKL_INT *ib , MKL_INT *descb , double *af , MKL_INT *laf , double *work , MKL_INT *lwork , MKL_INT *info );
void pcdttrsv (char *uplo , char *trans , MKL_INT *n , MKL_INT *nrhs , MKL_Complex8 *dl , MKL_Complex8 *d , MKL_Complex8 *du , MKL_INT *ja , MKL_INT *desca , MKL_Complex8 *b , MKL_INT *ib , MKL_INT *descb , MKL_Complex8 *af , MKL_INT *laf , MKL_Complex8 *work , MKL_INT *lwork , MKL_INT *info );
void pzdttrsv (char *uplo , char *trans , MKL_INT *n , MKL_INT *nrhs , MKL_Complex16 *dl , MKL_Complex16 *d , MKL_Complex16 *du , MKL_INT *ja , MKL_INT *desca , MKL_Complex16 *b , MKL_INT *ib , MKL_INT *descb , MKL_Complex16 *af , MKL_INT *laf , MKL_Complex16 *work , MKL_INT *lwork , MKL_INT *info );
Include Files
- mkl_scalapack.h
Description
The p?dttrsvfunction solves a tridiagonal triangular system of linear equations
A(1 :n, ja:ja+n-1)*X = B(ib:ib+n-1, 1 :nrhs) or
A(1 :n, ja:ja+n-1)T * X = B(ib:ib+n-1, 1 :nrhs) for real flavors; A(1 :n, ja:ja+n-1)H* X = B(ib:ib+n-1, 1 :nrhs) for complex flavors,
where A(1 :n, ja:ja+n-1) is a tridiagonal matrix factor produced by the Gaussian elimination code of p?dttrf and is stored in A(1 :n, ja:ja+n-1) and af.
The matrix stored in A(1 :n, ja:ja+n-1) is either upper or lower triangular according to uplo, and the choice of solving A(1 :n, ja:ja+n-1) or A(1 :n, ja:ja+n-1)T is dictated by the user by the parameter trans.
The function p?dttrf must be called first.
Input Parameters
- uplo
-
(global)
If uplo='U', the upper triangle of A(1:n, ja:ja+n-1) is stored,
if uplo = 'L', the lower triangle of A(1:n, ja:ja+n-1) is stored.
- trans
-
(global)
If trans = 'N', solve with A(1:n, ja:ja+n-1),
if trans = 'C', solve with conjugate transpose A(1:n, ja:ja+n-1).
- n
-
(global) The order of the distributed submatrix A;(n≥ 0).
- nrhs
-
(global) The number of right-hand sides; the number of columns of the distributed submatrix B(ib:ib+n-1, 1:nrhs). (nrhs≥ 0).
- dl
-
(local).
Pointer to local part of global vector storing the lower diagonal of the matrix.
Globally, dl[0] is not referenced, and dl must be aligned with d.
Must be of size ≥nb_a.
- d
-
(local).
Pointer to local part of global vector storing the main diagonal of the matrix.
- du
-
(local).
Pointer to local part of global vector storing the upper diagonal of the matrix.
Globally, du[n-1] is not referenced, and du must be aligned with d.
- ja
-
(global) The index in the global matrix A that points to 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) array of size dlen_.
if 1d type (dtype_a = 501 or 502), dlen≥ 7;
if 2d type (dtype_a = 1), dlen≥ 9.
The array descriptor for the distributed matrix A. Contains information of mapping of A to memory.
- b
-
(local)
Pointer into the local memory to an array of local lead dimension lld_b≥nb. On entry, this array contains the local pieces of the right-hand sides B(ib:ib+n-1, 1 :nrhs).
- ib
-
(global) The row index in the global matrix B that points to 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) array of size dlen_.
if 1d type (dtype_b = 502), dlen≥7;
if 2d type (dtype_b = 1), dlen≥ 9.
The array descriptor for the distributed matrix B. Contains information of mapping B to memory.
- laf
-
(local).
Size of user-input auxiliary fill-in space af.
laf≥ 2*(nb+2). If laf is not large enough, an error code is returned and the minimum acceptable size will be returned in af[0].
- work
-
(local).
Temporary workspace. This space may be overwritten in between function calls.
work must be the size given in lwork.
- lwork
-
(local or global)
Size of user-input workspace work. If lwork is too small, the minimal acceptable size will be returned in work[0] and an error code is returned.
lwork≥ 10*npcol+4*nrhs.
Output Parameters
- dl
-
(local).
On exit, this array contains information containing the factors of the matrix.
- d
-
On exit, this array contains information containing the factors of the matrix. Must be of size ≥nb_a.
- b
-
On exit, this contains the local piece of the solutions distributed matrix X.
- af
-
(local).
Auxiliary fill-in space. The fill-in space is created in a call to the factorization function p?dttrf and is stored in af. If a linear system is to be solved using p?dttrs after the factorization function, af must not be altered after the factorization.
- work
-
On exit, work[0] contains the minimal lwork.
- info
-
(local).
If info=0, the execution is successful.
if 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.