p?gbtrf
p?gbtrf
Computes the
LU
factorization of a general n-by-n banded distributed matrix.Syntax
void
psgbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
float
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
float
*af
,
MKL_INT
*laf
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pdgbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
double
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
double
*af
,
MKL_INT
*laf
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcgbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_Complex8
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
MKL_Complex8
*af
,
MKL_INT
*laf
,
MKL_Complex8
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pzgbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_Complex16
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
MKL_Complex16
*af
,
MKL_INT
*laf
,
MKL_Complex16
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
Include Files
- mkl_scalapack.h
Description
The
p?gbtrf
function
computes the LU
factorization of a general n
-by-n
real/complex banded distributed matrix A
(1:n
, ja
:ja
+n
-1) using partial pivoting with row interchanges. The resulting factorization is not the same factorization as returned from the LAPACK
function
?gbtrf
. Additional permutations are performed on the matrix for the sake of parallelism.The factorization has the form
A
(1:n
, ja
:ja
+n
-1) = P
*L
*U
*Q
where
P
and Q
are permutation matrices, and L
and U
are banded lower and upper triangular matrices, respectively. The matrix Q
represents reordering of columns for the sake of parallelism, while P
represents reordering of rows for numerical stability using classic partial pivoting.Product and Performance Information
|
---|
Performance varies by use, configuration and other factors. Learn more at
www.Intel.com/PerformanceIndex.
Notice revision #20201201
|
Input Parameters
- n
- (global) The number of rows and columns in the distributed submatrixA(1:n,ja:ja+n-1);.n≥0
- bwl
- (global) The number of sub-diagonals within the band ofA( 0 ≤.bwl≤n-1)
- bwu
- (global) The number of super-diagonals within the band ofA( 0 ≤.bwu≤n-1)
- a
- (local)Pointer into the local memory to an array of local sizewherelld_a*LOCc(ja+n-1).lld_a≥2*bwl+ 2*bwu +1Contains the local pieces of then-by-ndistributed banded matrixA(1:n,ja:ja+n-1) to be factored.
- 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
- laf
- (local) The size of the arrayaf.Must be.laf≥(nb_a+bwu)*(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].
- work
- (local) Same type asa. Workspace array of sizelwork.
- lwork
- (local or global) The size of theworkarray(. Iflwork≥1)lworkis too small, the minimal acceptable size will be returned inwork[0]and an error code is returned.
Output Parameters
- a
- On exit, this array contains details of the factorization. Note that additional permutations are performed on the matrix, so that the factors returned are different from those returned byLAPACK.
- ipiv
- (local) array.The size ofipivmust be.≥nb_aContains pivot indices for local factorizations. Note that youshould not alterthe contents of this array between factorization and solve.
- af
- (local)Array of sizelaf.Auxiliary fill-in space. The fill-in space is created in a call to the factorizationfunctionp?gbtrfand is stored inaf.Note that if a linear system is to be solved usingp?gbtrsafter the factorizationfunction,afmust not be altered after the factorization.
- work[0]
- On exit,contains the minimum value ofwork[0]lworkrequired.
- info
- (global)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.:info>0Ifinfo=k≤NPROCS, the submatrix stored on processorinfoand factored locally was not nonsingular, and the factorization was not completed.Ifinfo=k>NPROCS, the submatrix stored on processorrepresenting interactions with other processors was not nonsingular, and the factorization was not completed.info-NPROCS