dppsv(3P) Sun Performance Library dppsv(3P)NAMEdppsv - compute the solution to a real system of linear equations A *
X = B,
SYNOPSIS
SUBROUTINE DPPSV(UPLO, N, NRHS, A, B, LDB, INFO)
CHARACTER * 1 UPLO
INTEGER N, NRHS, LDB, INFO
DOUBLE PRECISION A(*), B(LDB,*)
SUBROUTINE DPPSV_64(UPLO, N, NRHS, A, B, LDB, INFO)
CHARACTER * 1 UPLO
INTEGER*8 N, NRHS, LDB, INFO
DOUBLE PRECISION A(*), B(LDB,*)
F95 INTERFACE
SUBROUTINE PPSV(UPLO, [N], [NRHS], A, B, [LDB], [INFO])
CHARACTER(LEN=1) :: UPLO
INTEGER :: N, NRHS, LDB, INFO
REAL(8), DIMENSION(:) :: A
REAL(8), DIMENSION(:,:) :: B
SUBROUTINE PPSV_64(UPLO, [N], [NRHS], A, B, [LDB], [INFO])
CHARACTER(LEN=1) :: UPLO
INTEGER(8) :: N, NRHS, LDB, INFO
REAL(8), DIMENSION(:) :: A
REAL(8), DIMENSION(:,:) :: B
C INTERFACE
#include <sunperf.h>
void dppsv(char uplo, int n, int nrhs, double *a, double *b, int ldb,
int *info);
void dppsv_64(char uplo, long n, long nrhs, double *a, double *b, long
ldb, long *info);
PURPOSEdppsv computes the solution to a real system of linear equations
A * X = B, where A is an N-by-N symmetric 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**T* U, if UPLO = 'U', or
A = L * L**T, 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) DOUBLE PRECISION array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the symmetric 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**T*U or A = L*L**T, in the same storage
format as A.
B (input/output) DOUBLE PRECISION 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 symmetric 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 dppsv(3P)