zppsv(3P) Sun Performance Library zppsv(3P)NAMEzppsv - compute the solution to a complex system of linear equations A
* X = B,
SYNOPSIS
SUBROUTINE ZPPSV(UPLO, N, NRHS, A, B, LDB, INFO)
CHARACTER * 1 UPLO
DOUBLE COMPLEX A(*), B(LDB,*)
INTEGER N, NRHS, LDB, INFO
SUBROUTINE ZPPSV_64(UPLO, N, NRHS, A, B, LDB, INFO)
CHARACTER * 1 UPLO
DOUBLE COMPLEX A(*), B(LDB,*)
INTEGER*8 N, NRHS, LDB, INFO
F95 INTERFACE
SUBROUTINE PPSV(UPLO, [N], [NRHS], A, B, [LDB], [INFO])
CHARACTER(LEN=1) :: UPLO
COMPLEX(8), DIMENSION(:) :: A
COMPLEX(8), DIMENSION(:,:) :: B
INTEGER :: N, NRHS, LDB, INFO
SUBROUTINE PPSV_64(UPLO, [N], [NRHS], A, B, [LDB], [INFO])
CHARACTER(LEN=1) :: UPLO
COMPLEX(8), DIMENSION(:) :: A
COMPLEX(8), DIMENSION(:,:) :: B
INTEGER(8) :: N, NRHS, LDB, INFO
C INTERFACE
#include <sunperf.h>
void zppsv(char uplo, int n, int nrhs, doublecomplex *a, doublecomplex
*b, int ldb, int *info);
void zppsv_64(char uplo, long n, long nrhs, doublecomplex *a, double‐
complex *b, long ldb, long *info);
PURPOSEzppsv computes the solution to a complex system of linear equations
A * X = B, where A is an N-by-N Hermitian positive definite matrix
stored in packed format and X and B are N-by-NRHS matrices.
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. The factored form of A is then used to solve the system of
equations A * X = B.
ARGUMENTS
UPLO (input)
= 'U': Upper triangle of A is stored;
= 'L': Lower triangle of A is stored.
N (input) The number of linear equations, i.e., the order of the matrix
A. N >= 0.
NRHS (input)
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
A (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the Hermitian matrix
A, packed columnwise in a linear array. The j-th column of A
is stored in the array A as follows: if UPLO = 'U', A(i +
(j-1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', A(i +
(j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. See below for further
details.
On exit, if INFO = 0, 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) COMPLEX*16 array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B. On exit,
if INFO = 0, the N-by-NRHS solution matrix X.
LDB (input)
The leading dimension of the array B. LDB >= max(1,N).
INFO (output)
= 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 com‐
pleted, and the solution has not been computed.
FURTHER DETAILS
The packed storage scheme is illustrated by the following example when
N = 4, UPLO = 'U':
Two-dimensional storage of the Hermitian matrix A:
a11 a12 a13 a14
a22 a23 a24
a33 a34 (aij = conjg(aji))
a44
Packed storage of the upper triangle of A:
A = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
6 Mar 2009 zppsv(3P)