Contents


NAME

     stptri - compute the inverse of a real upper or  lower  tri-
     angular matrix A stored in packed format

SYNOPSIS

     SUBROUTINE STPTRI(UPLO, DIAG, N, A, INFO)

     CHARACTER * 1 UPLO, DIAG
     INTEGER N, INFO
     REAL A(*)

     SUBROUTINE STPTRI_64(UPLO, DIAG, N, A, INFO)

     CHARACTER * 1 UPLO, DIAG
     INTEGER*8 N, INFO
     REAL A(*)

  F95 INTERFACE
     SUBROUTINE TPTRI(UPLO, DIAG, [N], A, [INFO])

     CHARACTER(LEN=1) :: UPLO, DIAG
     INTEGER :: N, INFO
     REAL, DIMENSION(:) :: A

     SUBROUTINE TPTRI_64(UPLO, DIAG, [N], A, [INFO])

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

  C INTERFACE
     #include <sunperf.h>

     void stptri(char uplo, char  diag,  int  n,  float  *a,  int
               *info);

     void stptri_64(char uplo, char diag, long n, float *a,  long
               *info);

PURPOSE

     stptri computes the inverse of a real upper  or  lower  tri-
     angular matrix A stored in packed format.

ARGUMENTS

     UPLO (input)
               = 'U':  A is upper triangular;
               = 'L':  A is lower triangular.

     DIAG (input)
               = 'N':  A is non-unit triangular;
               = 'U':  A is unit triangular.

     N (input) The order of the matrix A.  N >= 0.

     A (input/output) REAL array, dimension (N*(N+1)/2)
               On entry, the upper or lower triangular matrix  A,
               stored  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)*((2*n-j)/2)  =
               A(i,j)   for   j<=i<=n.   See  below  for  further
               details.  On exit, the (triangular) inverse of the
               original  matrix,  in the same packed storage for-
               mat.

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value
               > 0:  if INFO = i, A(i,i) is  exactly  zero.   The
               triangular  matrix is singular and its inverse can
               not be computed.

FURTHER DETAILS

     A triangular matrix A can be transferred to  packed  storage
     using one of the following program segments:

     UPLO = 'U':                      UPLO = 'L':

           JC = 1                           JC = 1
           DO 2 J = 1, N                    DO 2 J = 1, N
              DO 1 I = 1, J                    DO 1 I = J, N
                 A(JC+I-1)  =  A(I,J)               A(JC+I-J)   =
     A(I,J)
         1    CONTINUE                    1    CONTINUE
              JC = JC + J                      JC = JC + N - J  +
     1
         2 CONTINUE                       2 CONTINUE