Contents


NAME

     spptrs - 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 SPPTRF

SYNOPSIS

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

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

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

     CHARACTER * 1 UPLO
     INTEGER*8 N, NRHS, LDB, INFO
     REAL A(*), B(LDB,*)

  F95 INTERFACE
     SUBROUTINE PPTRS(UPLO, [N], [NRHS], A, B, [LDB], [INFO])

     CHARACTER(LEN=1) :: UPLO
     INTEGER :: N, NRHS, LDB, INFO
     REAL, DIMENSION(:) :: A
     REAL, DIMENSION(:,:) :: B

     SUBROUTINE PPTRS_64(UPLO, [N], [NRHS], A, B, [LDB], [INFO])

     CHARACTER(LEN=1) :: UPLO
     INTEGER(8) :: N, NRHS, LDB, INFO
     REAL, DIMENSION(:) :: A
     REAL, DIMENSION(:,:) :: B

  C INTERFACE
     #include <sunperf.h>

     void spptrs(char uplo, int n, int nrhs, float *a, float  *b,
               int ldb, int *info);

     void spptrs_64(char uplo, long n, long nrhs, float *a, float
               *b, long ldb, long *info);

PURPOSE

     spptrs 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 SPPTRF.

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) REAL 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)
               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