p?dttrsv
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?dttrsv
function
solves a tridiagonal triangular system of linear equationsA
(1 :n
, ja
:ja
+n
-1)X
= B
(ib
:ib
+n
-1, 1 :nrhs
)A
(1 :n
, ja
:ja
+n
-1)T
X
= B
(ib
:ib
+n
-1, 1 :nrhs
)A
(1 :n
, ja
:ja
+n
-1)H
X
= B
(ib
:ib
+n
-1, 1 :nrhs
)where is a tridiagonal matrix factor produced by the Gaussian elimination code of and
A
(1 :n
, ja
:ja
+n
-1)p?dttrf
and is stored in A
(1 :n
, ja
:ja
+n
-1)af
.The matrix stored in is either upper or lower triangular according to or is dictated by the user by the parameter
A
(1 :n
, ja
:ja
+n
-1)uplo
, and the choice of solving A
(1 :n
, ja
:ja
+n
-1)A
(1 :n
, ja
:ja
+n
-1)T
trans
.The function
p?dttrf
must be called first.Input Parameters
- uplo
- (global)If, the upper triangle ofuplo='U'is stored,A(1:n,ja:ja+n-1)if, the lower triangle ofuplo='L'A(1:n,is stored.ja:ja+n-1)
- trans
- (global)If, solve withtrans='N',A(1:n,ja:ja+n-1)if, solve with conjugate transposetrans='C'.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,is not referenced, anddl[0]dlmust be aligned withd.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,is not referenced, anddu[n-1]dumust be aligned withd.
- ja
- (global) The index in the global matrixAthat points to 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_.if 1dtype(,dtype_a= 501 or 502);dlen≥7if 2dtype(,dtype_a= 1).dlen≥9The array descriptor for the distributed matrixA. Contains information of mapping ofAto memory.
- b
- (local)Pointer into the local memory to an array of local lead dimensionlld_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 matrixBthat points to 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_.if 1dtype(,dtype_b= 502);dlen≥7if 2dtype(,dtype_b= 1).dlen≥9The array descriptor for the distributed matrixB. Contains information of mappingBto memory.
- laf
- (local).Size of user-input auxiliary fill-in spaceaf.laf. If≥2*(nb+2)lafis 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 betweenfunction calls.workmust be the size given inlwork.
- lwork
- (local or global)Size of user-input workspacework. Iflworkis too small, the minimal acceptable size will be returned inand an error code is returned.work[0].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 factorizationfunctionp?dttrfand is stored inaf. If a linear system is to be solved usingp?dttrsafter the factorizationfunction,afmust not be altered after the factorization.
- work
- On exit,contains the minimalwork[0]lwork.
- info
- (local).ifIfinfo=0, the execution is successful.info< 0: If 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.