Contents


NAME

     dpptrs - solve a system of linear equations A*X = B  with  a
     symmetric positive definite matrix A in packed storage using
     the Cholesky factorization A = U**T*U or A = L*L**T computed
     by DPPTRF

SYNOPSIS

     SUBROUTINE DPPTRS(UPLO, N, NRHS, A, B, LDB, INFO)

     CHARACTER * 1 UPLO
     INTEGER N, NRHS, LDB, INFO
     DOUBLE PRECISION A(*), B(LDB,*)

     SUBROUTINE DPPTRS_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 PPTRS(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 PPTRS_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 dpptrs(char uplo, int n, int nrhs,  double  *a,  double
               *b, int ldb, int *info);

     void dpptrs_64(char uplo, long n, long nrhs, double *a, dou-
               ble *b, long ldb, long *info);

PURPOSE

     dpptrs solves a system of linear equations A*X =  B  with  a
     symmetric positive definite matrix A in packed storage using
     the Cholesky factorization A = U**T*U or A = L*L**T computed
     by DPPTRF.

ARGUMENTS

     UPLO (input)
               = 'U':  Upper triangle of A is stored;
               = 'L':  Lower triangle of A is stored.

     N (input) 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) DOUBLE PRECISION array, dimension (N*(N+1)/2)
               The triangular factor U or  L  from  the  Cholesky
               factorization  A  =  U**T*U  or A = L*L**T, packed
               columnwise in a linear array.  The j-th column  of
               U  or  L  is stored in the array A as follows:  if
               UPLO = 'U', A(i + (j-1)*j/2) = U(i,j) for 1<=i<=j;
               if  UPLO = 'L', A(i + (j-1)*(2n-j)/2) = L(i,j) for
               j<=i<=n.

     B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
               On  entry, the right hand side matrix B.  On exit,
               the 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 ille-
               gal value