Previous: sdot Up: ../linpack.html Next: sgbdi


SGBCO

       SUBROUTINE SGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
       INTEGER LDA,N,ML,MU,IPVT(1)
       REAL ABD(LDA,1),Z(1)
       REAL RCOND
 C
 C     SGBCO FACTORS A REAL BAND MATRIX BY GAUSSIAN
 C     ELIMINATION AND ESTIMATES THE CONDITION OF THE MATRIX.
 C
 C     IF  RCOND  IS NOT NEEDED, SGBFA IS SLIGHTLY FASTER.
 C     TO SOLVE  A*X = B , FOLLOW SGBCO BY SGBSL.
 C     TO COMPUTE  INVERSE(A)*C , FOLLOW SGBCO BY SGBSL.
 C     TO COMPUTE  DETERMINANT(A) , FOLLOW SGBCO BY SGBDI.
 C
 C     ON ENTRY
 C
 C        ABD     REAL(LDA, N)
 C                CONTAINS THE MATRIX IN BAND STORAGE.  THE COLUMNS
 C                OF THE MATRIX ARE STORED IN THE COLUMNS OF  ABD  AND
 C                THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
 C                ML+1 THROUGH 2*ML+MU+1 OF  ABD .
 C                SEE THE COMMENTS BELOW FOR DETAILS.
 C
 C        LDA     INTEGER
 C                THE LEADING DIMENSION OF THE ARRAY  ABD .
 C                LDA MUST BE .GE. 2*ML + MU + 1 .
 C
 C        N       INTEGER
 C                THE ORDER OF THE ORIGINAL MATRIX.
 C
 C        ML      INTEGER
 C                NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
 C                0 .LE. ML .LT. N .
 C
 C        MU      INTEGER
 C                NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
 C                0 .LE. MU .LT. N .
 C                MORE EFFICIENT IF  ML .LE. MU .
 C
 C     ON RETURN
 C
 C        ABD     AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
 C                THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
 C                THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
 C                L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
 C                TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
 C
 C        IPVT    INTEGER(N)
 C                AN INTEGER VECTOR OF PIVOT INDICES.
 C
 C        RCOND   REAL
 C                AN ESTIMATE OF THE RECIPROCAL CONDITION OF  A .
 C                FOR THE SYSTEM  A*X = B , RELATIVE PERTURBATIONS
 C                IN  A  AND  B  OF SIZE  EPSILON  MAY CAUSE
 C                RELATIVE PERTURBATIONS IN  X  OF SIZE  EPSILON/RCOND .
 C                IF  RCOND  IS SO SMALL THAT THE LOGICAL EXPRESSION
 C                           1.0 + RCOND .EQ. 1.0
 C                IS TRUE, THEN  A  MAY BE SINGULAR TO WORKING
 C                PRECISION.  IN PARTICULAR,  RCOND  IS ZERO  IF
 C                EXACT SINGULARITY IS DETECTED OR THE ESTIMATE
 C                UNDERFLOWS.
 C
 C        Z       REAL(N)
 C                A WORK VECTOR WHOSE CONTENTS ARE USUALLY UNIMPORTANT.
 C                IF  A  IS CLOSE TO A SINGULAR MATRIX, THEN  Z  IS
 C                AN APPROXIMATE NULL VECTOR IN THE SENSE THAT
 C                NORM(A*Z) = RCOND*NORM(A)*NORM(Z) .
 C
 C     BAND STORAGE
 C
 C           IF  A  IS A BAND MATRIX, THE FOLLOWING PROGRAM SEGMENT
 C           WILL SET UP THE INPUT.
 C
 C                   ML = (BAND WIDTH BELOW THE DIAGONAL)
 C                   MU = (BAND WIDTH ABOVE THE DIAGONAL)
 C                   M = ML + MU + 1
 C                   DO 20 J = 1, N
 C                      I1 = MAX0(1, J-MU)
 C                      I2 = MIN0(N, J+ML)
 C                      DO 10 I = I1, I2
 C                         K = I - J + M
 C                         ABD(K,J) = A(I,J)
 C                10    CONTINUE
 C                20 CONTINUE
 C
 C           THIS USES ROWS  ML+1  THROUGH  2*ML+MU+1  OF  ABD .
 C           IN ADDITION, THE FIRST  ML  ROWS IN  ABD  ARE USED FOR
 C           ELEMENTS GENERATED DURING THE TRIANGULARIZATION.
 C           THE TOTAL NUMBER OF ROWS NEEDED IN  ABD  IS  2*ML+MU+1 .
 C           THE  ML+MU BY ML+MU  UPPER LEFT TRIANGLE AND THE
 C           ML BY ML  LOWER RIGHT TRIANGLE ARE NOT REFERENCED.
 C
 C     EXAMPLE..  IF THE ORIGINAL MATRIX IS
 C
 C           11 12 13  0  0  0
 C           21 22 23 24  0  0
 C            0 32 33 34 35  0
 C            0  0 43 44 45 46
 C            0  0  0 54 55 56
 C            0  0  0  0 65 66
 C
 C      THEN  N = 6, ML = 1, MU = 2, LDA .GE. 5  AND ABD SHOULD CONTAIN
 C
 C            *  *  *  +  +  +  , * = NOT USED
 C            *  * 13 24 35 46  , + = USED FOR PIVOTING
 C            * 12 23 34 45 56
 C           11 22 33 44 55 66
 C           21 32 43 54 65  *
 C
 C     LINPACK. THIS VERSION DATED 08/14/78 .
 C     CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
 C
 C     SUBROUTINES AND FUNCTIONS
 C
 C     LINPACK SGBFA
 C     BLAS SAXPY,SDOT,SSCAL,SASUM
 C     FORTRAN ABS,AMAX1,MAX0,MIN0,SIGN