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.
call pspbsv(uplo, n, bw, nrhs, a, ja, desca, b, ib, descb, work, lwork, info)
call pdpbsv(uplo, n, bw, nrhs, a, ja, desca, b, ib, descb, work, lwork, info)
call pcpbsv(uplo, n, bw, nrhs, a, ja, desca, b, ib, descb, work, lwork, info)
call pzpbsv(uplo, n, bw, nrhs, a, ja, desca, b, ib, descb, work, lwork, info)
The p?pbsvroutine 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 |
- uplo
-
(global) CHARACTER. 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) INTEGER. The order of the distributed matrix A(n≥ 0).
- bw
-
(global) INTEGER. The number of subdiagonals in L or U. 0 ≤ bw ≤ n-1.
- nrhs
-
(global) INTEGER. The number of right-hand sides; the number of columns in B(nrhs≥ 0).
- a
-
(local). REAL for pspbsv
DOUBLE PRECISON for pdpbsv
COMPLEX for pcpbsv
DOUBLE COMPLEX for pzpbsv.
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) INTEGER. 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) INTEGER array of size dlen_. The array descriptor for the distributed matrix A.
- b
-
(local)
REAL for pspbsv
DOUBLE PRECISON for pdpbsv
COMPLEX for pcpbsv
DOUBLE COMPLEX for pzpbsv.
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) INTEGER. 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) INTEGER 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).
REAL for pspbsv
DOUBLE PRECISON for pdpbsv
COMPLEX for pcpbsv
DOUBLE COMPLEX for pzpbsv.
Temporary workspace. This space may be overwritten in between calls to routines. work must be the size given in lwork.
- lwork
-
(local or global) INTEGER. Size of user-input workspace work. If lwork is too small, the minimal acceptable size will be returned in work(1) and an error code is returned. lwork ≥ (nb+2*bw)*bw +max((bw*nrhs), bw*bw)
- 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(1) contains the minimal lwork.
- info
-
(global) INTEGER. 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.