p?dttrs
p?dttrs
Solves a system of linear equations with a diagonally dominant-like tridiagonal distributed matrix using the factorization computed by
p?dttrf
.Syntax
void
psdttrs
(
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
pddttrs
(
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
pcdttrs
(
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
pzdttrs
(
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?dttrs
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 tridiagonal 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)
- nrhs
- (global) The number of right hand sides; the number of columns of the distributed matrix sub(B)(.nrhs≥0)
- dl,d,du
- (local)Pointers to the local arrays of sizeeach.nb_aOn entry, these arrays contain details of the factorization. Globally,dl[0]anddu[are not referenced;n-1]dlanddumust be aligned withd.
- 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.Ifordtype_a= 501, thendtype_a= 502;dlen_≥7else if, thendtype_a= 1.dlen_≥9
- b
- (local) Same type asd.Pointer into the local memory to an array of local sizelld_b*LOCc(nrhs)On entry, the arraybcontains the local pieces of then-by-nrhsright hand side distributed matrix sub(B).
- 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 sizelafand (lwork), respectively.The arrayafcontains auxiliary fill-in space. The fill-in space is created in a call to the factorizationfunctionp?dttrfand is stored inaf. If a linear system is to be solved usingp?dttrsafter the factorizationfunction,afmust not be altered.The arrayworkis a workspace array.
- laf
- (local) The size of the arrayaf.Must be.laf≥NB*(bwl+bwu)+6*(bwl+bwu)*(bwl+2*bwu)
- Iflafis 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≥10*NPCOL+4*nrhs
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.