p?dbtrs
p?dbtrs
Solves a system of linear equations with a diagonally dominant-like banded distributed matrix using the factorization computed by
p?dbtrf
.Syntax
void
psdbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
float
*a
,
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
pddbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
double
*a
,
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
pcdbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
MKL_Complex8
*a
,
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
pzdbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
MKL_Complex16
*a
,
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?dbtrs
function
solves for X
one of the systems of equations: sub(
A
)*X
= sub(B
), (sub(*
A
))T
X
= sub(B
), or (sub(*
A
))H
X
= sub(B
),where sub(
A
) = A
(1:n
, ja
:ja
+n
-1) is a diagonally dominant-like banded distributed matrix, and sub(B
) denotes the distributed matrix B
(ib
:ib
+n
-1, 1:nrhs
). Input Parameters
- trans
- (global) Must be'N'or'T'or'C'.Indicates the form of the equations:If, then sub(trans='N'A)*X= sub(B) is solved forX.If, then (sub(trans='T'A))*TX= sub(B) is solved forX.If, then (sub(trans='C'A))*HX= sub(B) is solved forX.
- n
- (global) The order of the distributed matrix sub(A)(.n≥0)
- bwl
- (global) The number of subdiagonals within the band ofA( 0 ≤.bwl≤n-1)
- bwu
- (global) The number of superdiagonals within the band ofA( 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 sizesandlld_a*LOCc(ja+n-1), respectively.lld_b*LOCc(nrhs)On entry, the arrayacontains details of theLUfactorization of the band matrixA, as computed byp?dbtrf.On entry, the arraybcontains the local pieces of the right hand side distributed matrix sub(B).
- ja
- (global) The index in the global matrixAindicating the start of the matrix to be operated on (which may be either all ofAor a submatrix ofA).
- desca
- (global and local) array of sizedlen_. The array descriptor for the distributed matrixA.If, thendtype_a= 501;dlen_≥7else if, thendtype_a= 1.dlen_≥9
- ib
- (global) The row index in the global matrixBindicating the first row of the matrix to be operated on (which may be either all ofBor a submatrix ofB).
- descb
- (global and local) array of sizedlen_. The array descriptor for the distributed matrixB.If, thendtype_b= 502;dlen_≥7else if, thendtype_b= 1.dlen_≥9
- af,work
- (local)Arrays of sizelafandlwork, respectively The arrayafcontains auxiliary fill-in space. The fill-in space is created in a call to the factorizationfunctionp?dbtrfand is stored inaf.The arrayworkis a workspace array.
- laf
- (local) The size of the arrayaf.Must belaf≥.NB*(bwl+bwu)+6*(max(bwl,bwu))2Iflafis not large enough, an error code will be returned and the minimum acceptable size will be returned inaf[0].
- lwork
- (local or global) The size of the arraywork, must be at least.lwork≥(max(bwl,bwu))2
Output Parameters
- b
- On exit, this array contains the local pieces of the solution distributed matrixX.
- work[0]
- On exit,contains the minimum value ofwork[0]lworkrequired for optimum performance.
- info
- If, the execution is successful.info=0:info< 0If thei-th argument is an array and thej-th entry, indexedhad an illegal value, thenj- 1,info= -(i*100+j); if thei-th argument is a scalar and had an illegal value, theninfo=-i.