Contents


NAME

     stpcon - estimate the reciprocal of the condition number  of
     a  packed  triangular  matrix A, in either the 1-norm or the
     infinity-norm

SYNOPSIS

     SUBROUTINE STPCON(NORM, UPLO, DIAG, N, A, RCOND, WORK, WORK2, INFO)

     CHARACTER * 1 NORM, UPLO, DIAG
     INTEGER N, INFO
     INTEGER WORK2(*)
     REAL RCOND
     REAL A(*), WORK(*)

     SUBROUTINE STPCON_64(NORM, UPLO, DIAG, N, A, RCOND, WORK, WORK2,
           INFO)

     CHARACTER * 1 NORM, UPLO, DIAG
     INTEGER*8 N, INFO
     INTEGER*8 WORK2(*)
     REAL RCOND
     REAL A(*), WORK(*)

  F95 INTERFACE
     SUBROUTINE TPCON(NORM, UPLO, DIAG, [N], A, RCOND, [WORK], [WORK2],
            [INFO])

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

     SUBROUTINE TPCON_64(NORM, UPLO, DIAG, [N], A, RCOND, [WORK], [WORK2],
            [INFO])

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

  C INTERFACE
     #include <sunperf.h>

     void stpcon(char norm, char uplo, char diag,  int  n,  float
               *a, float *rcond, int *info);
     void stpcon_64(char norm, char  uplo,  char  diag,  long  n,
               float *a, float *rcond, long *info);

PURPOSE

     stpcon estimates the reciprocal of the condition number of a
     packed  triangular  matrix  A,  in  either the 1-norm or the
     infinity-norm.

     The norm of A is computed and an estimate  is  obtained  for
     norm(inv(A)), then the reciprocal of the condition number is
     computed as
        RCOND = 1 / ( norm(A) * norm(inv(A)) ).

ARGUMENTS

     NORM (input)
               Specifies whether the 1-norm condition  number  or
               the infinity-norm condition number is required:
               = '1' or 'O':  1-norm;
               = 'I':         Infinity-norm.

     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) REAL array, dimension (N*(N+1)/2)
               The upper or lower  triangular  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.   If DIAG = 'U', the diagonal elements of
               A are not referenced and are assumed to be 1.

     RCOND (output)
               The reciprocal of  the  condition  number  of  the
               matrix   A,  computed  as  RCOND  =  1/(norm(A)  *
               norm(inv(A))).
     WORK (workspace)
               REAL array, dimension(3*N)

     WORK2 (workspace)
               INTEGER array, dimension(N)

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value