Purpose
=======
LA_PPSV computes the solution to a linear system of equations
A*X = B, where A is real symmetric or complex Hermitian and, in either
case, positive definite, and where X and B are rectangular matrices or
vectors. A is stored in packed format. The Cholesky decomposition is
used to factor A as
A = U^H*U if UPLO = 'U', or A = L*L^H if UPLO = 'L'
where U is an upper triangular matrix and L is a lower triangular
matrix (L = U^H ). The factored form of A is then used to solve the
above system.
=========
SUBROUTINE LA_PPSV( AP, B, UPLO=uplo, INFO=info )
(), INTENT(INOUT) :: AP(:),
CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO
INTEGER, INTENT(OUT), OPTIONAL :: INFO
where
::= REAL | COMPLEX
::= KIND(1.0) | KIND(1.0D0)
::= B(:,:) | B(:)
Arguments
=========
AP (input/output) REAL or COMPLEX array, shape (:) with size(AP)
= n*(n+1)/2, where n is the order of A.
On entry, the upper or lower triangle of matrix A in packed
storage. The elements are stored columnwise as follows:
if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j<=n;
if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for 1<=j<=i<=n.
On exit, the factor U or L from the Cholesky factorization
A = U^H*U or A = L*L^H , in the same storage format as A.
B (input/output) REAL or COMPLEX array, shape (:,:) with
size(B,1) = n or shape (:) with size(B) = n.
On entry, the matrix B.
On exit, the solution matrix X.
UPLO Optional, (input) CHARACTER(LEN=1)
= 'U': Upper triangle of A is stored;
= 'L': Lower triangle of A is stored.
Default value: 'U'.
INFO Optional (output) INTEGER.
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal value.
> 0: if INFO = i, the leading minor of order i of A is not
positive definite, so the factorization could not be
completed and the solution could not be computed.
If INFO is not present and an error occurs, then the program is
terminated with an error message.