p?pttrf
p?pttrf
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite tridiagonal distributed matrix.
Syntax
void
pspttrf
(
MKL_INT
*n
,
float
*d
,
float
*e
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*af
,
MKL_INT
*laf
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pdpttrf
(
MKL_INT
*n
,
double
*d
,
double
*e
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*af
,
MKL_INT
*laf
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcpttrf
(
MKL_INT
*n
,
float
*d
,
MKL_Complex8
*e
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex8
*af
,
MKL_INT
*laf
,
MKL_Complex8
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pzpttrf
(
MKL_INT
*n
,
double
*d
,
MKL_Complex16
*e
,
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?pttrf
function
computes the Cholesky factorization of an n
-by-n
real symmetric or complex hermitian positive-definite tridiagonal distributed matrix A
(1:n
, ja
:ja
+n
-1).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*D*L
H
*P
T
A
(1:n
, ja
:ja
+n
-1) = P*U
H
*D*U*P
T
where
P
is a permutation matrix, and U
and L
are tridiagonal upper and lower triangular matrices, respectively.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 order of the distributed submatrixA(1:n,ja:ja+n-1)(.n≥0)
- d,e
- (local)Pointers into the local memory to arrays of sizeeach.nb_aOn entry, the arraydcontains the local part of the global vector storing the main diagonal of the distributed matrixA.On entry, the arrayecontains the local part of the global vector storing the upper diagonal of the distributed matrixA.
- 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+2Iflafis not large enough, an error code will be returned and the minimum acceptable size will be returned inaf[0].
- work
- (local) Workspace array of sizelwork.
- lwork
- (local or global) The size of theworkarray, must be at least.lwork≥8*NPCOL
Output Parameters
- d,e
- On exit, overwritten by the details of the factorization.
- af
- (local)Array of sizelaf.Auxiliary fill-in space. The fill-in space is created in a call to the factorizationfunctionp?pttrfand stored inaf.Note that if a linear system is to be solved usingp?pttrsafter 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 positive definite, 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