Developer Reference for Intel® oneAPI Math Kernel Library for C
p?ptsv
Syntax
Solves a symmetric or Hermitian positive definite tridiagonal system of linear equations.
void psptsv (MKL_INT *n , MKL_INT *nrhs , float *d , float *e , MKL_INT *ja , MKL_INT *desca , float *b , MKL_INT *ib , MKL_INT *descb , float *work , MKL_INT *lwork , MKL_INT *info );
void pdptsv (MKL_INT *n , MKL_INT *nrhs , double *d , double *e , MKL_INT *ja , MKL_INT *desca , double *b , MKL_INT *ib , MKL_INT *descb , double *work , MKL_INT *lwork , MKL_INT *info );
void pcptsv (char *uplo , MKL_INT *n , MKL_INT *nrhs , float *d , MKL_Complex8 *e , MKL_INT *ja , MKL_INT *desca , MKL_Complex8 *b , MKL_INT *ib , MKL_INT *descb , MKL_Complex8 *work , MKL_INT *lwork , MKL_INT *info );
void pzptsv (char *uplo , MKL_INT *n , MKL_INT *nrhs , double *d , MKL_Complex16 *e , MKL_INT *ja , MKL_INT *desca , MKL_Complex16 *b , MKL_INT *ib , MKL_INT *descb , MKL_Complex16 *work , MKL_INT *lwork , MKL_INT *info );
Include Files
- mkl_scalapack.h
Description
The p?ptsvfunction solves a system of linear equations
A(1:n, ja:ja+n-1)*X = B(ib:ib+n-1, 1:nrhs),
where A(1:n, ja:ja+n-1) is an n-by-n real tridiagonal symmetric positive definite distributed matrix.
Cholesky factorization is used to factor a reordering of the matrix into L*L'.
| 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 matrix A(n≥ 0). 
- nrhs
-  
     (global) The number of right-hand sides; the number of columns of the distributed submatrix B(nrhs≥ 0). 
- d
-  
     (local) Pointer to local part of global vector storing the main diagonal of the matrix. 
- e
-  
     (local) Pointer to local part of global vector storing the upper diagonal of the matrix. Globally, du(n) is not referenced, and du must be aligned with d. 
- 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. If 1d type (dtype_a=501 or 502), dlen ≥ 7; If 2d type (dtype_a=1), dlen ≥ 9. The array descriptor for the distributed matrix A. Contains information of mapping of A to memory. 
- b
-  
     (local) Pointer into the local memory to an array of local lead size lld_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 matrix B indicating the first row of the matrix to be operated on (which may be either all of b or a submatrix of B). 
- descb
-  
     (global and local) array of size dlen. If 1d type (dtype_b = 502), dlen ≥ 7; If 2d type (dtype_b = 1), dlen ≥ 9. The array descriptor for the distributed matrix B. Contains information of mapping of B to memory. 
- work
-  
     (local). Temporary workspace. This space may be overwritten in between calls to functions. work must be the size given in lwork. 
- lwork
-  
     (local or global) Size of user-input workspace work. If lwork is too small, the minimal acceptable size will be returned in work[0] and an error code is returned. lwork > (12*NPCOL+3*nb)+max((10+2*min(100, nrhs))*NPCOL+4*nrhs, 8*NPCOL). 
Output Parameters
- d
-  
     On exit, this array contains information containing the factors of the matrix. Must be of size greater than or equal to desca[nb_ - 1]. 
- e
-  
     On exit, this array contains information containing the factors of the matrix. Must be of size greater than or equal to desca[nb_ - 1]. 
- b
-  
     On exit, this contains the local piece of the solutions distributed matrix X. 
- work
-  
     On exit, work[0] contains the minimal lwork. 
- info
-  
     (local) If info=0, the execution is successful. < 0: If the i-th argument is an array and the j-entry 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. > 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 positive definite, and the factorization was not completed.