Contents


NAME

     cptcon - compute the reciprocal of the condition number  (in
     the  1-norm) of a complex Hermitian positive definite tridi-
     agonal matrix using the factorization A = L*D*L**H  or  A  =
     U**H*D*U computed by CPTTRF

SYNOPSIS

     SUBROUTINE CPTCON(N, D, E, ANORM, RCOND, WORK, INFO)

     COMPLEX E(*)
     INTEGER N, INFO
     REAL ANORM, RCOND
     REAL D(*), WORK(*)

     SUBROUTINE CPTCON_64(N, D, E, ANORM, RCOND, WORK, INFO)

     COMPLEX E(*)
     INTEGER*8 N, INFO
     REAL ANORM, RCOND
     REAL D(*), WORK(*)

  F95 INTERFACE
     SUBROUTINE PTCON([N], D, E, ANORM, RCOND, [WORK], [INFO])

     COMPLEX, DIMENSION(:) :: E
     INTEGER :: N, INFO
     REAL :: ANORM, RCOND
     REAL, DIMENSION(:) :: D, WORK

     SUBROUTINE PTCON_64([N], D, E, ANORM, RCOND, [WORK], [INFO])

     COMPLEX, DIMENSION(:) :: E
     INTEGER(8) :: N, INFO
     REAL :: ANORM, RCOND
     REAL, DIMENSION(:) :: D, WORK

  C INTERFACE
     #include <sunperf.h>

     void cptcon(int n, float *d, complex *e, float anorm,  float
               *rcond, int *info);

     void cptcon_64(long n, float *d, complex  *e,  float  anorm,
               float *rcond, long *info);

PURPOSE

     cptcon computes the reciprocal of the condition  number  (in
     the  1-norm) of a complex Hermitian positive definite tridi-
     agonal matrix using the factorization A = L*D*L**H  or  A  =
     U**H*D*U computed by CPTTRF.

     Norm(inv(A))  is  computed  by  a  direct  method,  and  the
     reciprocal of the condition number is computed as
                      RCOND = 1 / (ANORM * norm(inv(A))).

ARGUMENTS

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

     D (input) The n diagonal elements of the diagonal  matrix  D
               from  the  factorization  of  A,  as  computed  by
               CPTTRF.

     E (input) The (n-1) off-diagonal elements of the unit  bidi-
               agonal  factor U or L from the factorization of A,
               as computed by CPTTRF.

     ANORM (input)
               The 1-norm of the original matrix A.

     RCOND (output)
               The reciprocal of  the  condition  number  of  the
               matrix  A, computed as RCOND = 1/(ANORM * AINVNM),
               where AINVNM is the 1-norm of inv(A)  computed  in
               this routine.

     WORK (workspace)

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

FURTHER DETAILS

     The method used is described in Nicholas J.  Higham,  "Effi-
     cient  Algorithms  for  Computing  the Condition Number of a
     Tridiagonal Matrix", SIAM J. Sci. Stat. Comput., Vol. 7, No.
     1, January 1986.