Visible to Intel only — GUID: GUID-0E405235-929E-4F85-AC6F-1B685884480F
Visible to Intel only — GUID: GUID-0E405235-929E-4F85-AC6F-1B685884480F
p?posv
Solves a symmetric positive definite system of linear equations.
Syntax
call psposv(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
call pdposv(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
call pcposv(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
call pzposv(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
Include Files
Description
The p?posvroutine computes the solution to a real/complex system of linear equations
sub(A)*X = sub(B),
where sub(A) denotes A(ia:ia+n-1,ja:ja+n-1) and is an n-by-n symmetric/Hermitian distributed positive definite matrix and X and sub(B) denoting B(ib:ib+n-1,jb:jb+nrhs-1) are n-by-nrhs distributed matrices. The Cholesky decomposition is used to factor sub(A) as
sub(A) = UT*U, if uplo = 'U', or
sub(A) = L*LT, if uplo = 'L',
where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of sub(A) is then used to solve the system of equations.
Input Parameters
- uplo
-
(global) CHARACTER. Must be 'U' or 'L'.
Indicates whether the upper or lower triangular part of sub(A) is stored.
- n
-
(global) INTEGER. The order of the distributed matrix sub(A) (n≥ 0).
- nrhs
-
INTEGER. The number of right-hand sides; the number of columns of the distributed matrix sub(B) (nrhs≥ 0).
- a
-
(local)
REAL for psposv
DOUBLE PRECISION for pdposv
COMPLEX for pcposv
COMPLEX*16 for pzposv.
Pointer into the local memory to an array of size (lld_a,LOCc(ja+n-1)). On entry, this array contains the local pieces of the n-by-n symmetric distributed matrix sub(A) to be factored.
If uplo = 'U', the leading n-by-n upper triangular part of sub(A) contains the upper triangular part of the matrix, and its strictly lower triangular part is not referenced.
If uplo = 'L', the leading n-by-n lower triangular part of sub(A) contains the lower triangular part of the distributed matrix, and its strictly upper triangular part is not referenced.
- ia, ja
-
(global) INTEGER. The row and column indices in the global matrix A indicating the first row and the first column of the submatrix A, respectively.
- desca
-
(global and local) INTEGER array of size dlen_. The array descriptor for the distributed matrix A.
- b
-
(local)
REAL for psposv
DOUBLE PRECISON for pdposv
COMPLEX for pcposv
COMPLEX*16 for pzposv.
Pointer into the local memory to an array of size (lld_b,LOCc(jb+nrhs-1)). On entry, the local pieces of the right hand sides distributed matrix sub(B).
- ib, jb
-
(global) INTEGER. The row and column indices in the global matrix B indicating the first row and the first column of the submatrix B, respectively.
- descb
-
(global and local) INTEGER array of size dlen_. The array descriptor for the distributed matrix B.
Output Parameters
- a
-
On exit, if info = 0, this array contains the local pieces of the factor U or L from the Cholesky factorization sub(A) = UH*U, or L*LH.
- b
-
On exit, if info = 0, sub(B) is overwritten by the solution distributed matrix X.
- info
-
(global) INTEGER.
If info =0, the execution is successful.
If info < 0: If the i-th argument is an array and the j-th 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.
If info > 0: If info = k, the leading minor of order k, A(ia:ia+k-1, ja:ja+k-1) is not positive definite, and the factorization could not be completed, and the solution has not been computed.