Previous: snrm2 Up: ../linpack.html Next: spbdi


SPBCO

       SUBROUTINE SPBCO(ABD,LDA,N,M,RCOND,Z,INFO)
       INTEGER LDA,N,M,INFO
       REAL ABD(LDA,1),Z(1)
       REAL RCOND
 C
 C     SPBCO FACTORS A REAL SYMMETRIC POSITIVE DEFINITE MATRIX
 C     STORED IN BAND FORM AND ESTIMATES THE CONDITION OF THE MATRIX.
 C
 C     IF  RCOND  IS NOT NEEDED, SPBFA IS SLIGHTLY FASTER.
 C     TO SOLVE  A*X = B , FOLLOW SPBCO BY SPBSL.
 C     TO COMPUTE  INVERSE(A)*C , FOLLOW SPBCO BY SPBSL.
 C     TO COMPUTE  DETERMINANT(A) , FOLLOW SPBCO BY SPBDI.
 C
 C     ON ENTRY
 C
 C        ABD     REAL(LDA, N)
 C                THE MATRIX TO BE FACTORED.  THE COLUMNS OF THE UPPER
 C                TRIANGLE ARE STORED IN THE COLUMNS OF ABD AND THE
 C                DIAGONALS OF THE UPPER TRIANGLE ARE STORED IN THE
 C                ROWS OF ABD .  SEE THE COMMENTS BELOW FOR DETAILS.
 C
 C        LDA     INTEGER
 C                THE LEADING DIMENSION OF THE ARRAY  ABD .
 C                LDA MUST BE .GE. M + 1 .
 C
 C        N       INTEGER
 C                THE ORDER OF THE MATRIX  A .
 C
 C        M       INTEGER
 C                THE NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
 C                0 .LE. M .LT. N .
 C
 C     ON RETURN
 C
 C        ABD     AN UPPER TRIANGULAR MATRIX  R , STORED IN BAND
 C                FORM, SO THAT  A = TRANS(R)*R .
 C                IF  INFO .NE. 0 , THE FACTORIZATION IS NOT COMPLETE.
 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.  IF INFO .NE. 0 , RCOND IS UNCHANGED.
 C
 C        Z       REAL(N)
 C                A WORK VECTOR WHOSE CONTENTS ARE USUALLY UNIMPORTANT
 C                IF  A  IS SINGULAR TO WORKING PRECISION, THEN  Z  IS
 C                AN APPROXIMATE NULL VECTOR IN THE SENSE THAT
 C                NORM(A*Z) = RCOND*NORM(A)*NORM(Z) .
 C                IF  INFO .NE. 0 , Z  IS UNCHANGED.
 C
 C        INFO    INTEGER
 C                = 0  FOR NORMAL RETURN.
 C                = K  SIGNALS AN ERROR CONDITION.  THE LEADING MINOR
 C                     OF ORDER  K  IS NOT POSITIVE DEFINITE.
 C
 C     BAND STORAGE
 C
 C           IF  A  IS A SYMMETRIC POSITIVE DEFINITE BAND MATRIX,
 C           THE FOLLOWING PROGRAM SEGMENT WILL SET UP THE INPUT.
 C
 C                   M = (BAND WIDTH ABOVE DIAGONAL)
 C                   DO 20 J = 1, N
 C                      I1 = MAX0(1, J-M)
 C                      DO 10 I = I1, J
 C                         K = I-J+M+1
 C                         ABD(K,J) = A(I,J)
 C                10    CONTINUE
 C                20 CONTINUE
 C
 C           THIS USES  M + 1  ROWS OF  A , EXCEPT FOR THE  M BY M
 C           UPPER LEFT TRIANGLE, WHICH IS IGNORED.
 C
 C     EXAMPLE..  IF THE ORIGINAL MATRIX IS
 C
 C           11 12 13  0  0  0
 C           12 22 23 24  0  0
 C           13 23 33 34 35  0
 C            0 24 34 44 45 46
 C            0  0 35 45 55 56
 C            0  0  0 46 56 66
 C
 C     THEN  N = 6 , M = 2  AND  ABD  SHOULD CONTAIN
 C
 C            *  * 13 24 35 46
 C            * 12 23 34 45 56
 C           11 22 33 44 55 66
 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 SPBFA
 C     BLAS SAXPY,SDOT,SSCAL,SASUM
 C     FORTRAN ABS,AMAX1,MAX0,MIN0,REAL,SIGN
 C