Visible to Intel only — GUID: GUID-2C2925C1-9003-4C39-8406-F8A5859181C9
Visible to Intel only — GUID: GUID-2C2925C1-9003-4C39-8406-F8A5859181C9
p?gbtrs
Solves a system of distributed linear equations with a general band matrix, using the LU factorization computed by p?gbtrf.
Syntax
void psgbtrs (char *trans , MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_INT *nrhs , float *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , float *b , MKL_INT *ib , MKL_INT *descb , float *af , MKL_INT *laf , float *work , MKL_INT *lwork , MKL_INT *info );
void pdgbtrs (char *trans , MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_INT *nrhs , double *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , double *b , MKL_INT *ib , MKL_INT *descb , double *af , MKL_INT *laf , double *work , MKL_INT *lwork , MKL_INT *info );
void pcgbtrs (char *trans , MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_INT *nrhs , MKL_Complex8 *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , 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 pzgbtrs (char *trans , MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_INT *nrhs , MKL_Complex16 *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , 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?gbtrs function solves a system of distributed linear equations with a general band distributed matrix sub(A) = A(1:n, ja:ja+n-1) using the LU factorization computed by p?gbtrf.
The system has one of the following forms specified by trans:
sub(A)*X = sub(B) (no transpose),
sub(A)T*X = sub(B) (transpose),
sub(A)H*X = sub(B) (conjugate transpose),
where sub(B) = B(ib:ib+n-1, 1:nrhs).
Before calling this function,you must call p?gbtrf to compute the LU factorization of sub(A).
Input Parameters
- 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)T*X = sub(B) is solved for X.
If trans = 'C', then sub(A)H *X = sub(B) is solved for X.
- n
-
(global) The number of linear equations; the order of the distributed matrix sub(A) (n≥ 0).
- bwl
-
(global) The number of sub-diagonals within the band of A( 0 ≤ bwl ≤ n-1 ).
- bwu
-
(global) The number of super-diagonals within the band of A( 0 ≤ bwu ≤ n-1 ).
- nrhs
-
(global) The number of right hand sides; the number of columns of the distributed matrix sub(B) (nrhs≥ 0).
- a, b
-
(local)
Pointers into the local memory to arrays of local sizes lld_a*LOCc(ja+n-1) and lld_b*LOCc(nrhs), respectively.
The array a contains details of the LU factorization of the distributed band matrix A.
On entry, the array b contains the local pieces of the right hand sides B(ib:ib+n-1, 1:nrhs).
- ja
-
(global) 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) 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) 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).
- descb
-
(global and local) array of size dlen_. The array descriptor for the distributed matrix A.
If dtype_b = 502, then dlen_≥ 7;
else if dtype_b = 1, then dlen_≥ 9.
- laf
-
(local) The size of the array af.
Must be laf≥nb_a*(bwl+bwu)+6*(bwl+bwu)*(bwl+2*bwu).
If laf is not large enough, an error code will be returned and the minimum acceptable size will be returned in af[0].
- work
-
(local) Same type as a. Workspace array of size lwork.
- lwork
-
(local or global) The size of the work array, must be at least lwork≥nrhs*(nb_a+2*bwl+4*bwu).
Output Parameters
- ipiv
-
(local) array.
The size of ipiv must be ≥nb_a.
Contains pivot indices for local factorizations. Note that you should not alter the contents of this array between factorization and solve.
- b
-
On exit, overwritten by the local pieces of the solution distributed matrix X.
- af
-
(local)
Array of size laf.
Auxiliary Fill-in space. The fill-in space is created in a call to the factorization function p?gbtrf and is stored in af.
Note that if a linear system is to be solved using p?gbtrs after the factorization function,af must not be altered after the factorization.
- work[0]
-
On exit, work[0] contains the minimum value of lwork required for optimum performance.
- 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.