SUBROUTINE DGTCON( NORM, N, LOW, DIAG, UP1, UP2, IPIVOT, ANORM, * RCOND, WORK, IWORK2, INFO) CHARACTER * 1 NORM INTEGER N, INFO INTEGER IPIVOT(*), IWORK2(*) DOUBLE PRECISION ANORM, RCOND DOUBLE PRECISION LOW(*), DIAG(*), UP1(*), UP2(*), WORK(*) SUBROUTINE DGTCON_64( NORM, N, LOW, DIAG, UP1, UP2, IPIVOT, ANORM, * RCOND, WORK, IWORK2, INFO) CHARACTER * 1 NORM INTEGER*8 N, INFO INTEGER*8 IPIVOT(*), IWORK2(*) DOUBLE PRECISION ANORM, RCOND DOUBLE PRECISION LOW(*), DIAG(*), UP1(*), UP2(*), WORK(*)
SUBROUTINE GTCON( NORM, [N], LOW, DIAG, UP1, UP2, IPIVOT, ANORM, * RCOND, [WORK], [IWORK2], [INFO]) CHARACTER(LEN=1) :: NORM INTEGER :: N, INFO INTEGER, DIMENSION(:) :: IPIVOT, IWORK2 REAL(8) :: ANORM, RCOND REAL(8), DIMENSION(:) :: LOW, DIAG, UP1, UP2, WORK SUBROUTINE GTCON_64( NORM, [N], LOW, DIAG, UP1, UP2, IPIVOT, ANORM, * RCOND, [WORK], [IWORK2], [INFO]) CHARACTER(LEN=1) :: NORM INTEGER(8) :: N, INFO INTEGER(8), DIMENSION(:) :: IPIVOT, IWORK2 REAL(8) :: ANORM, RCOND REAL(8), DIMENSION(:) :: LOW, DIAG, UP1, UP2, WORK
void dgtcon(char norm, int n, double *low, double *diag, double *up1, double *up2, int *ipivot, double anorm, double *rcond, int *info);
void dgtcon_64(char norm, long n, double *low, double *diag, double *up1, double *up2, long *ipivot, double anorm, double *rcond, long *info);
An estimate is obtained for norm(inv(A)), and the reciprocal of the condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))).