Developer Reference for Intel® oneAPI Math Kernel Library for C
p?pttrf
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite tridiagonal distributed matrix.
Syntax
voidpspttrf ( 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 );
voidpdpttrf ( 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 );
voidpcpttrf ( 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 );
voidpzpttrf ( 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
pspttrf pdpttrf pcpttrf pzpttrf The p?pttrf routine 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:code:`H`*P:code:`T` , or
A (1: n , ja : ja + n -1) = P*U:code:`H`*D*U*P:code:`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 submatrix A(1:n, ja:ja+n-1)
(n≥ 0) .
- d , e
-
(local) REAL for pspttrf DOUBLE PRECISON for pdpttrf COMPLEX for pcpttrf DOUBLE COMPLEX for pzpttrf . Pointers into the local memory to arrays of size nb_a each. On entry, the array d contains the local part of the global vector storing the main diagonal of the distributed matrix A . On entry, the array e contains the local part of the global vector storing the upper diagonal of the distributed matrix A .
ja
(global) The index in the global matrix A indicating the start of the matrix to be operated on (which may be either all of A or a submatrix of A ).
desca
(global and local ) array of size dlen_ . The array descriptor for the distributed matrix A .
If dtype_a = 501 , then dlen_≥ 7 ; else if dtype_a = 1 , then dlen_≥ 9 .
laf
(local) The size of the array af .
Must be laf≥nb_a+2 .
If laf is not large enough, an error code will be returned and the minimum acceptable size will be returned in af [0] .
work
(local) Workspace array of size lwork .
lwork
(local or global) The size of the work array, must be at least
lwork≥ 8*NPCOL .
Output Parameters
- d , e
-
On exit, overwritten by the details of the factorization.
- af
-
(local) REAL for pspttrf DOUBLE PRECISION for pdpttrf COMPLEX for pcpttrf DOUBLE COMPLEX for pzpttrf . Array of size laf .
Auxiliary fill-in space. The fill-in space is created in a call to the factorization function p?pttrf and stored in af .
Note that if a linear system is to be solved using p?pttrs after the factorization function , af must not be altered.
work(1)[0]
On exit, work(1)[0] contains the minimum value of lwork required for optimum performance.
info
(global)
If info=0 , the execution is successful. info < 0 :
If the i -th argument is an array and the j- th entry , indexed j - 1, had an illegal value, then info = -( i *100+ j ); if the i- th argument is a scalar and had an illegal value, then info = -i .
info> 0 : If info = k ≤ NPROCS , the submatrix stored on processor info and factored locally was not positive definite, and the factorization was not completed. If info = k > NPROCS , the submatrix stored on processor info-NPROCS representing interactions with other processors was not nonsingular, and the factorization was not completed.