p?dbtrsv
p?dbtrsv
Computes an LU factorization of a general triangular matrix with no pivoting. The
function
is called by p?dbtrs
.Syntax
void
psdbtrsv
(
char
*uplo
,
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
pddbtrsv
(
char
*uplo
,
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
pcdbtrsv
(
char
*uplo
,
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
pzdbtrsv
(
char
*uplo
,
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?dbtrsv
function
solves a banded triangular system of linear equations A
(1 :n
, ja
:ja
+n
-1)X
= B
(ib
:ib
+n
-1, 1 :nrhs
) orA
(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 is a banded triangular matrix factor produced by the Gaussian elimination code of and is either upper or lower triangular according to or is dictated by the user by the parameter
A
(1 :n
, ja
:ja
+n
-1)p?dbtrf
and is stored in A
(1 :n
, ja
:ja
+n
-1)af
. The matrix stored in 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?dbtrf
must be called first.Input Parameters
- uplo
- (global)Ifuplo='U', the upper triangle ofA(1:n,is stored,ja:ja+n-1)ifuplo='L', the lower triangle ofA(1:n,is stored.ja:ja+n-1)
- trans
- (global)Iftrans='N', solve withA(1:n,,ja:ja+n-1)iftrans='C', solve with conjugate transposeA(1:n,.ja:ja+n-1)
- n
- (global) The order of the distributed submatrixA;(n≥0).
- bwl
- (global) Number of subdiagonals. 0 ≤-1.bwl≤n
- bwu
- (global) Number of subdiagonals. 0 ≤-1.bwu≤n
- nrhs
- (global) The number of right-hand sides; the number of columns of the distributed submatrixB(nrhs≥0).
- a
- (local).Pointer into the local memory to an array of size, wherelld_a*LOCc(ja+n-1)lld_a≥(bwl+bwu+1). On entry, this array contains the local pieces of then-by-nunsymmetric banded distributed Cholesky factorLorL, represented in globalTAasA(1 :n,. This local portion is stored in the packed banded format used in LAPACK.ja:ja+n-1)See theApplication Notesbelow and the ScaLAPACK manual for more detail on the format of distributed matrices.
- 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≥7;if 2dtype (dtype_a= 1),dlen≥9. The 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_.if1,dtype (dtype_b=502)dlen≥7;if2typed(,dtype_b=1). The array descriptor for the distributed matrixdlen≥9B. Contains information of mappingBto memory.
- laf
- (local)Size of user-input auxiliary fill-in spaceaf.laf. If≥nb*(bwl+bwu)+6*max(bwl,bwu)*max(bwl,bwu)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≥max(bwl,bwu)*nrhs
Output Parameters
- a
- (local).This local portion is stored in the packed banded format used in LAPACK. Please see the ScaLAPACK manual for more detail on the format of distributed matrices.
- b
- On exit, this contains the local piece of the solutions distributed matrixX.
- af
- (local).auxiliary fill-in space. The fill-in space is created in a call to the factorizationfunctionp?dbtrfand is stored inaf. If a linear system is to be solved usingp?dbtrfafter the factorizationfunction,afmust not be altered after the factorization.
- work
- On exit,contains the minimalwork[0]lwork.
- info
- (local).Ifinfo= 0, the execution is successful.< 0: If thei-th argument is an array and thej-th entry, indexedhad an illegal value, thenj-1,info= - (, if thei*100+j)i-th argument is a scalar and had an illegal value, theninfo= -i.