Previous: sspdi Up: ../linpack.html Next: sspsl
SUBROUTINE SSPFA(AP,N,KPVT,INFO)
INTEGER N,KPVT(1),INFO
REAL AP(1)
C
C SSPFA FACTORS A REAL SYMMETRIC MATRIX STORED IN
C PACKED FORM BY ELIMINATION WITH SYMMETRIC PIVOTING.
C
C TO SOLVE A*X = B , FOLLOW SSPFA BY SSPSL.
C TO COMPUTE INVERSE(A)*C , FOLLOW SSPFA BY SSPSL.
C TO COMPUTE DETERMINANT(A) , FOLLOW SSPFA BY SSPDI.
C TO COMPUTE INERTIA(A) , FOLLOW SSPFA BY SSPDI.
C TO COMPUTE INVERSE(A) , FOLLOW SSPFA BY SSPDI.
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 OUTPUT
C
C AP A BLOCK DIAGONAL MATRIX AND THE MULTIPLIERS WHICH
C WERE USED TO OBTAIN IT STORED IN PACKED FORM.
C THE FACTORIZATION CAN BE WRITTEN A = U*D*TRANS(U)
C WHERE U IS A PRODUCT OF PERMUTATION AND UNIT
C UPPER TRIANGULAR MATRICES , TRANS(U) IS THE
C TRANSPOSE OF U , AND D IS BLOCK DIAGONAL
C WITH 1 BY 1 AND 2 BY 2 BLOCKS.
C
C KPVT INTEGER(N)
C AN INTEGER VECTOR OF PIVOT INDICES.
C
C INFO INTEGER
C = 0 NORMAL VALUE.
C = K IF THE K-TH PIVOT BLOCK IS SINGULAR. THIS IS
C NOT AN ERROR CONDITION FOR THIS SUBROUTINE,
C BUT IT DOES INDICATE THAT SSPSL OR SSPDI MAY
C DIVIDE BY ZERO IF CALLED.
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 JAMES BUNCH, UNIV. CALIF. SAN DIEGO, ARGONNE NAT. LAB.
C
C SUBROUTINES AND FUNCTIONS
C
C BLAS SAXPY,SSWAP,ISAMAX
C FORTRAN ABS,AMAX1,SQRT
C