p?dttrf
p?dttrf
Computes the
LU
factorization of a diagonally dominant-like tridiagonal distributed matrix.Syntax
void
psdttrf
(
MKL_INT
*n
,
float
*dl
,
float
*d
,
float
*du
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*af
,
MKL_INT
*laf
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pddttrf
(
MKL_INT
*n
,
double
*dl
,
double
*d
,
double
*du
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*af
,
MKL_INT
*laf
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcdttrf
(
MKL_INT
*n
,
MKL_Complex8
*dl
,
MKL_Complex8
*d
,
MKL_Complex8
*du
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex8
*af
,
MKL_INT
*laf
,
MKL_Complex8
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pzdttrf
(
MKL_INT
*n
,
MKL_Complex16
*dl
,
MKL_Complex16
*d
,
MKL_Complex16
*du
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex16
*af
,
MKL_INT
*laf
,
MKL_Complex16
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
Include Files
- mkl_scalapack.h
Description
The
p?dttrf
function
computes the LU
factorization of an n
-by-n
real/complex diagonally dominant-like tridiagonal distributed matrix A
(1:n
, ja
:ja
+n
-1) without pivoting for stability.The resulting factorization is not the same factorization as returned from LAPACK. 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*P
T
where
P
is a permutation matrix, and L
and U
are banded lower and upper triangular matrices, respectively.Optimization Notice
|
---|
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804
|
This notice covers the following instruction sets: SSE2, SSE4.2, AVX2, AVX-512.
Input Parameters
- n
- (global) The number of rows and columns to be operated on, that is, the order of the distributed submatrixA(1:n,ja:ja+n-1)(.n≥0)
- dl,d,du
- (local)Pointers to the local arrays of sizeeach.nb_aOn entry, the arraydlcontains the local part of the global vector storing the subdiagonal elements of the matrix. Globally,dl[0]is not referenced, anddlmust be aligned withd.On entry, the arraydcontains the local part of the global vector storing the diagonal elements of the matrix.On entry, the arrayducontains the local part of the global vector storing the super-diagonal elements of the matrix.du[is not referenced, andn-1]dumust 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.If, thendtype_a= 501;dlen_≥7else if, thendtype_a= 1.dlen_≥9
- laf
- (local) The size of the arrayaf.Must belaf≥2*(NB+2) .Iflafis not large enough, an error code will be returned and the minimum acceptable size will be returned inaf[0].
- work
- (local) Same type asd. Workspace array of sizelwork.
- lwork
- (local or global) The size of theworkarray, must be at leastlwork≥8*NPCOL.
Output Parameters
- dl,d,du
- On exit, overwritten by the information containing the factors of the matrix.
- af
- (local)Array of sizelaf.Auxiliary fill-in space. The fill-in space is created in a call to the factorizationfunctionp?dttrfand is stored inaf.Note that if a linear system is to be solved usingp?dttrsafter the factorizationfunction,afmust not be altered.
- work[0]
- On exit,contains the minimum value ofwork[0]lworkrequired for optimum performance.
- 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 diagonally dominant-like, 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