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