NAG Library Routine Document
F07GNF (ZPPSV)
1 Purpose
F07GNF (ZPPSV) computes the solution to a complex system of linear equations
where
A is an
n by
n Hermitian positive definite matrix stored in packed format and
X and
B are
n by
r matrices.
2 Specification
INTEGER |
N, NRHS, LDB, INFO |
COMPLEX (KIND=nag_wp) |
AP(*), B(LDB,*) |
CHARACTER(1) |
UPLO |
|
The routine may be called by its
LAPACK
name zppsv.
3 Description
F07GNF (ZPPSV) uses the Cholesky decomposition to factor A as A=UHU if UPLO='U' or A=LLH if UPLO='L', where U is an upper triangular matrix and L is a lower triangular matrix. The factored form of A is then used to solve the system of equations AX=B.
4 References
Anderson E, Bai Z, Bischof C, Blackford S, Demmel J, Dongarra J J, Du Croz J J, Greenbaum A, Hammarling S, McKenney A and Sorensen D (1999)
LAPACK Users' Guide (3rd Edition) SIAM, Philadelphia
http://www.netlib.org/lapack/lug
Golub G H and Van Loan C F (1996)
Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
5 Parameters
- 1: UPLO – CHARACTER(1)Input
On entry: if
UPLO='U', the upper triangle of
A is stored.
If UPLO='L', the lower triangle of A is stored.
Constraint:
UPLO='U' or 'L'.
- 2: N – INTEGERInput
On entry: n, the number of linear equations, i.e., the order of the matrix A.
Constraint:
N≥0.
- 3: NRHS – INTEGERInput
On entry: r, the number of right-hand sides, i.e., the number of columns of the matrix B.
Constraint:
NRHS≥0.
- 4: AP(*) – COMPLEX (KIND=nag_wp) arrayInput/Output
-
Note: the dimension of the array
AP
must be at least
max1,N×N+1/2.
On entry: the
n by
n Hermitian matrix
A, packed by columns.
More precisely,
- if UPLO='U', the upper triangle of A must be stored with element Aij in APi+jj-1/2 for i≤j;
- if UPLO='L', the lower triangle of A must be stored with element Aij in APi+2n-jj-1/2 for i≥j.
On exit: if INFO=0, the factor U or L from the Cholesky factorization A=UHU or A=LLH, in the same storage format as A.
- 5: B(LDB,*) – COMPLEX (KIND=nag_wp) arrayInput/Output
-
Note: the second dimension of the array
B
must be at least
max1,NRHS.
To solve the equations
Ax=b, where
b is a single right-hand side,
B may be supplied as a one-dimensional array with length
LDB=max1,N.
On entry: the n by r right-hand side matrix B.
On exit: if INFO=0, the n by r solution matrix X.
- 6: LDB – INTEGERInput
On entry: the first dimension of the array
B as declared in the (sub)program from which F07GNF (ZPPSV) is called.
Constraint:
LDB≥max1,N.
- 7: INFO – INTEGEROutput
On exit:
INFO=0 unless the routine detects an error (see
Section 6).
6 Error Indicators and Warnings
Errors or warnings detected by the routine:
- INFO<0
If INFO=-i, the ith argument had an illegal value. An explanatory message is output, and execution of the program is terminated.
- INFO>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 has not been computed.
7 Accuracy
The computed solution for a single right-hand side,
x^
, satisfies an equation of the form
where
and
ε
is the
machine precision. An approximate error bound for the computed solution is given by
where
κA
=
A-11
A1
, the condition number of
A
with respect to the solution of the linear equations. See Section 4.4 of
Anderson et al. (1999) for further details.
F07GPF (ZPPSVX) is a comprehensive LAPACK driver that returns forward and backward error bounds and an estimate of the condition number. Alternatively,
F04CEF solves
Ax=b
and returns a forward error bound and condition estimate.
F04CEF calls F07GNF (ZPPSV) to solve the equations.
8 Further Comments
The total number of floating point operations is approximately
43 n3
+
8n2r
, where
r
is the number of right-hand sides.
The real analogue of this routine is
F07GAF (DPPSV).
9 Example
This example solves the equations
where
A
is the Hermitian positive definite matrix
and
Details of the Cholesky factorization of
A
are also output.
9.1 Program Text
Program Text (f07gnfe.f90)
9.2 Program Data
Program Data (f07gnfe.d)
9.3 Program Results
Program Results (f07gnfe.r)