Previous: schdc Up: ../linpack.html Next: schex
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