Visible to Intel only — GUID: GUID-ED60662C-9D7E-481D-92A9-38E43D4AD3DD
Visible to Intel only — GUID: GUID-ED60662C-9D7E-481D-92A9-38E43D4AD3DD
p?pbsv
Solves a symmetric/Hermitian positive definite banded system of linear equations.
Syntax
void pspbsv (char *uplo , MKL_INT *n , MKL_INT *bw , MKL_INT *nrhs , float *a , MKL_INT *ja , MKL_INT *desca , float *b , MKL_INT *ib , MKL_INT *descb , float *work , MKL_INT *lwork , MKL_INT *info );
void pdpbsv (char *uplo , MKL_INT *n , MKL_INT *bw , MKL_INT *nrhs , double *a , MKL_INT *ja , MKL_INT *desca , double *b , MKL_INT *ib , MKL_INT *descb , double *work , MKL_INT *lwork , MKL_INT *info );
void pcpbsv (char *uplo , MKL_INT *n , MKL_INT *bw , MKL_INT *nrhs , MKL_Complex8 *a , 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 pzpbsv (char *uplo , MKL_INT *n , MKL_INT *bw , MKL_INT *nrhs , MKL_Complex16 *a , 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?pbsvfunction 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/complex banded symmetric positive definite distributed matrix with bandwidth bw.
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
- uplo
-
(global) Must be 'U' or 'L'.
Indicates whether the upper or lower triangular of A is stored.
If uplo = 'U', the upper triangular A is stored
If uplo = 'L', the lower triangular of A is stored.
- n
-
(global) The order of the distributed matrix A(n≥ 0).
- bw
-
(global) The number of subdiagonals in L or U. 0 ≤ bw ≤ n-1.
- nrhs
-
(global) The number of right-hand sides; the number of columns in B(nrhs≥ 0).
- a
-
(local).
Pointer into the local memory to an array with leading size lld_a ≥ (bw+1) (stored in desca). On entry, this array contains the local pieces of the distributed matrix sub(A) to be factored.
- 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.
- 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 ≥ (nb+2*bw)*bw +max((bw*nrhs), bw*bw)
Output Parameters
- a
-
On exit, this array contains information containing details of the factorization. Note that permutations are performed on the matrix, so that the factors returned are different from those returned by LAPACK.
- b
-
On exit, contains the local piece of the solutions distributed matrix X.
- work
-
On exit, work[0] contains the minimal lwork.
- info
-
(global) 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.