Previous: sposl Up: ../linpack.html Next: sppdi


SPPCO

       SUBROUTINE SPPCO(AP,N,RCOND,Z,INFO)
       INTEGER N,INFO
       REAL AP(1),Z(1)
       REAL RCOND
 C
 C     SPPCO FACTORS A REAL SYMMETRIC POSITIVE DEFINITE MATRIX
 C     STORED IN PACKED FORM
 C     AND ESTIMATES THE CONDITION OF THE MATRIX.
 C
 C     IF  RCOND  IS NOT NEEDED, SPPFA IS SLIGHTLY FASTER.
 C     TO SOLVE  A*X = B , FOLLOW SPPCO BY SPPSL.
 C     TO COMPUTE  INVERSE(A)*C , FOLLOW SPPCO BY SPPSL.
 C     TO COMPUTE  DETERMINANT(A) , FOLLOW SPPCO BY SPPDI.
 C     TO COMPUTE  INVERSE(A) , FOLLOW SPPCO BY SPPDI.
 C
 C     ON ENTRY
 C
 C        AP      REAL (N*(N+1)/2)
 C                THE PACKED FORM OF A SYMMETRIC MATRIX  A .  THE
 C                COLUMNS OF THE UPPER TRIANGLE ARE STORED SEQUENTIALL
 C                IN A ONE-DIMENSIONAL ARRAY OF LENGTH  N*(N+1)/2 .
 C                SEE COMMENTS BELOW FOR DETAILS.
 C
 C        N       INTEGER
 C                THE ORDER OF THE MATRIX  A .
 C
 C     ON RETURN
 C
 C        AP      AN UPPER TRIANGULAR MATRIX  R , STORED IN PACKED
 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     PACKED STORAGE
 C
 C          THE FOLLOWING PROGRAM SEGMENT WILL PACK THE UPPER
 C          TRIANGLE OF A SYMMETRIC MATRIX.
 C
 C                K = 0
 C                DO 20 J = 1, N
 C                   DO 10 I = 1, J
 C                      K = K + 1
 C                      AP(K) = A(I,J)
 C             10    CONTINUE
 C             20 CONTINUE
 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 SPPFA
 C     BLAS SAXPY,SDOT,SSCAL,SASUM
 C     FORTRAN ABS,AMAX1,REAL,SIGN
 C