# strdi.f

          SUBROUTINE STRDI (T, LDT, N, DET, JOB, INFO)
    C***BEGIN PROLOGUE  STRDI
    C***PURPOSE  Compute the determinant and inverse of a triangular matrix.
    C***LIBRARY   SLATEC (LINPACK)
    C***CATEGORY  D2A3, D3A3
    C***TYPE      SINGLE PRECISION (STRDI-S, DTRDI-D, CTRDI-C)
    C***KEYWORDS  DETERMINANT, INVERSE, LINEAR ALGEBRA, LINPACK, MATRIX,
    C             TRIANGULAR
    C***AUTHOR  Moler, C. B., (U. of New Mexico)
    C***DESCRIPTION
    C
    C     STRDI computes the determinant and inverse of a real
    C     triangular matrix.
    C
    C     On Entry
    C
    C        T       REAL(LDT,N)
    C                T contains the triangular matrix.  The zero
    C                elements of the matrix are not referenced, and
    C                the corresponding elements of the array can be
    C                used to store other information.
    C
    C        LDT     INTEGER
    C                LDT is the leading dimension of the array T.
    C
    C        N       INTEGER
    C                N is the order of the system.
    C
    C        JOB     INTEGER
    C                = 010       no det, inverse of lower triangular.
    C                = 011       no det, inverse of upper triangular.
    C                = 100       det, no inverse.
    C                = 110       det, inverse of lower triangular.
    C                = 111       det, inverse of upper triangular.
    C
    C     On Return
    C
    C        T       inverse of original matrix if requested.
    C                Otherwise unchanged.
    C
    C        DET     REAL(2)
    C                determinant of original matrix if requested.
    C                Otherwise not referenced.
    C                Determinant = DET(1) * 10.0**DET(2)
    C                with  1.0 .LE. ABS(DET(1)) .LT. 10.0
    C                or  DET(1) .EQ. 0.0 .
    C
    C        INFO    INTEGER
    C                INFO contains zero if the system is nonsingular
    C                and the inverse is requested.
    C                Otherwise INFO contains the index of
    C                a zero diagonal element of T.
    C
    C***REFERENCES  J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W.
    C                 Stewart, LINPACK Users' Guide, SIAM, 1979.
    C***ROUTINES CALLED  SAXPY, SSCAL
    C***REVISION HISTORY  (YYMMDD)
    C   780814  DATE WRITTEN
    C   890831  Modified array declarations.  (WRB)
    C   890831  REVISION DATE from Version 3.2
    C   891214  Prologue converted to Version 4.0 format.  (BAB)
    C   900326  Removed duplicate information from DESCRIPTION section.
    C           (WRB)
    C   920501  Reformatted the REFERENCES section.  (WRB)
    C***END PROLOGUE  STRDI