Contents


NAME

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

SYNOPSIS

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

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

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

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

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

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

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

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

  C INTERFACE
     #include <sunperf.h>
     void strcon(char norm, char uplo, char diag,  int  n,  float
               *a, int lda, float *rcond, int *info);

     void strcon_64(char norm, char  uplo,  char  diag,  long  n,
               float *a, long lda, float *rcond, long *info);

PURPOSE

     strcon estimates the reciprocal of the condition number of a
     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) The triangular matrix A.  If UPLO = 'U', the lead-
               ing  N-by-N  upper  triangular part of the array A
               contains the  upper  triangular  matrix,  and  the
               strictly  lower triangular part of A is not refer-
               enced.  If UPLO = 'L', the  leading  N-by-N  lower
               triangular  part of the array A contains the lower
               triangular matrix, and the strictly upper triangu-
               lar  part  of A is not referenced.  If DIAG = 'U',
               the diagonal elements of A are also not referenced
               and are assumed to be 1.
     LDA (input)
               The leading dimension of  the  array  A.   LDA  >=
               max(1,N).

     RCOND (output)
               The reciprocal of  the  condition  number  of  the
               matrix   A,  computed  as  RCOND  =  1/(norm(A)  *
               norm(inv(A))).

     WORK (workspace)
               dimension(3*N)

     WORK2 (workspace)
               dimension(N)

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