Previous: schdc Up: ../linpack.html Next: schex


SCHDD

       SUBROUTINE SCHDD(R,LDR,P,X,Z,LDZ,NZ,Y,RHO,C,S,INFO)
       INTEGER LDR,P,LDZ,NZ,INFO
       REAL R(LDR,1),X(1),Z(LDZ,1),Y(1),S(1)
       REAL RHO(1),C(1)
 C
 C     SCHDD DOWNDATES AN AUGMENTED CHOLESKY DECOMPOSITION OR THE
 C     TRIANGULAR FACTOR OF AN AUGMENTED QR DECOMPOSITION.
 C     SPECIFICALLY, GIVEN AN UPPER TRIANGULAR MATRIX R OF ORDER P,  A
 C     ROW VECTOR X, A COLUMN VECTOR Z, AND A SCALAR Y, SCHDD
 C     DETERMINEDS A ORTHOGONAL MATRIX U AND A SCALAR ZETA SUCH THAT
 C
 C                        (R   Z )     (RR  ZZ)
 C                    U * (      )  =  (      ) ,
 C                        (0 ZETA)     ( X   Y)
 C
 C     WHERE RR IS UPPER TRIANGULAR.  IF R AND Z HAVE BEEN OBTAINED
 C     FROM THE FACTORIZATION OF A LEAST SQUARES PROBLEM, THEN
 C     RR AND ZZ ARE THE FACTORS CORRESPONDING TO THE PROBLEM
 C     WITH THE OBSERVATION (X,Y) REMOVED.  IN THIS CASE, IF RHO
 C     IS THE NORM OF THE RESIDUAL VECTOR, THEN THE NORM OF
 C     THE RESIDUAL VECTOR OF THE DOWNDATED PROBLEM IS
 C     SQRT(RHO**2 - ZETA**2). SCHDD WILL SIMULTANEOUSLY DOWNDATE
 C     SEVERAL TRIPLETS (Z,Y,RHO) ALONG WITH R.
 C     FOR A LESS TERSE DESCRIPTION OF WHAT SCHDD DOES AND HOW
 C     IT MAY BE APPLIED, SEE THE LINPACK GUIDE.
 C
 C     THE MATRIX U IS DETERMINED AS THE PRODUCT U(1)*...*U(P)
 C     WHERE U(I) IS A ROTATION IN THE (P+1,I)-PLANE OF THE
 C     FORM
 C
 C                       ( C(I)     -S(I)     )
 C                       (                    ) .
 C                       ( S(I)       C(I)    )
 C
 C     THE ROTATIONS ARE CHOSEN SO THAT C(I) IS REAL.
 C
 C     THE USER IS WARNED THAT A GIVEN DOWNDATING PROBLEM MAY
 C     BE IMPOSSIBLE TO ACCOMPLISH OR MAY PRODUCE
 C     INACCURATE RESULTS.  FOR EXAMPLE, THIS CAN HAPPEN
 C     IF X IS NEAR A VECTOR WHOSE REMOVAL WILL REDUCE THE
 C     RANK OF R.  BEWARE.
 C
 C     ON ENTRY
 C
 C         R      REAL(LDR,P), WHERE LDR .GE. P.
 C                R CONTAINS THE UPPER TRIANGULAR MATRIX
 C                THAT IS TO BE DOWNDATED.  THE PART OF  R
 C                BELOW THE DIAGONAL IS NOT REFERENCED.
 C
 C         LDR    INTEGER.
 C                LDR IS THE LEADING DIMENSION FO THE ARRAY R.
 C
 C         P      INTEGER.
 C                P IS THE ORDER OF THE MATRIX R.
 C
 C         X      REAL(P).
 C                X CONTAINS THE ROW VECTOR THAT IS TO
 C                BE REMOVED FROM R.  X IS NOT ALTERED BY SCHDD.
 C
 C         Z      REAL(LDZ,NZ), WHERE LDZ .GE. P.
 C                Z IS AN ARRAY OF NZ P-VECTORS WHICH
 C                ARE TO BE DOWNDATED ALONG WITH R.
 C
 C         LDZ    INTEGER.
 C                LDZ IS THE LEADING DIMENSION OF THE ARRAY Z.
 C
 C         NZ     INTEGER.
 C                NZ IS THE NUMBER OF VECTORS TO BE DOWNDATED
 C                NZ MAY BE ZERO, IN WHICH CASE Z, Y, AND RHO
 C                ARE NOT REFERENCED.
 C
 C         Y      REAL(NZ).
 C                Y CONTAINS THE SCALARS FOR THE DOWNDATING
 C                OF THE VECTORS Z.  Y IS NOT ALTERED BY SCHDD.
 C
 C         RHO    REAL(NZ).
 C                RHO CONTAINS THE NORMS OF THE RESIDUAL
 C                VECTORS THAT ARE TO BE DOWNDATED.
 C
 C     ON RETURN
 C
 C         R
 C         Z      CONTAIN THE DOWNDATED QUANTITIES.
 C         RHO
 C
 C         C      REAL(P).
 C                C CONTAINS THE COSINES OF THE TRANSFORMING
 C                ROTATIONS.
 C
 C         S      REAL(P).
 C                S CONTAINS THE SINES OF THE TRANSFORMING
 C                ROTATIONS.
 C
 C         INFO   INTEGER.
 C                INFO IS SET AS FOLLOWS.
 C
 C                   INFO = 0  IF THE ENTIRE DOWNDATING
 C                             WAS SUCCESSFUL.
 C
 C                   INFO =-1  IF R COULD NOT BE DOWNDATED.
 C                             IN THIS CASE, ALL QUANTITIES
 C                             ARE LEFT UNALTERED.
 C
 C                   INFO = 1  IF SOME RHO COULD NOT BE
 C                             DOWNDATED.  THE OFFENDING RHOS ARE
 C                             SET TO -1.
 C
 C     LINPACK. THIS VERSION DATED 08/14/78 .
 C     G.W. STEWART, UNIVERSITY OF MARYLAND, ARGONNE NATIONAL LAB.
 C
 C     SCHDD USES THE FOLLOWING FUNCTIONS AND SUBPROGRAMS.
 C
 C     FORTRAN ABS
 C     BLAS SDOT, SNRM2
 C