Previous: schex Up: ../linpack.html Next: scopy
SUBROUTINE SCHUD(R,LDR,P,X,Z,LDZ,NZ,Y,RHO,C,S) INTEGER LDR,P,LDZ,NZ REAL RHO(1),C(1) REAL R(LDR,1),X(1),Z(LDZ,1),Y(1),S(1) C C SCHUD UPDATES AN AUGMENTED CHOLESKY DECOMPOSITION OF THE C TRIANGULAR PART OF AN AUGMENTED QR DECOMPOSITION. SPECIFICALLY C GIVEN AN UPPER TRIANGULAR MATRIX R OF ORDER P, A ROW VECTOR C X, A COLUMN VECTOR Z, AND A SCALAR Y, SCHUD DETERMINES A C UNTIARY MATRIX U AND A SCALAR ZETA SUCH THAT C C C (R Z) (RR ZZ ) C U * ( ) = ( ) , C (X Y) ( 0 ZETA) C C WHERE RR IS UPPER TRIANGULAR. IF R AND Z HAVE BEEN C OBTAINED FROM THE FACTORIZATION OF A LEAST SQUARES C PROBLEM, THEN RR AND ZZ ARE THE FACTORS CORRESPONDING TO C THE PROBLEM WITH THE OBSERVATION (X,Y) APPENDED. IN THIS C CASE, IF RHO IS THE NORM OF THE RESIDUAL VECTOR, THEN THE C NORM OF THE RESIDUAL VECTOR OF THE UPDATED PROBLEM IS C SQRT(RHO**2 + ZETA**2). SCHUD WILL SIMULTANEOUSLY UPDATE C SEVERAL TRIPLETS (Z,Y,RHO). C FOR A LESS TERSE DESCRIPTION OF WHAT SCHUD DOES AND HOW C IT MAY BE APPLIED, SEE THE LINPACK GUIDE. C C THE MATRIX U IS DETERMINED AS THE PRODUCT U(P)*...*U(1), C WHERE U(I) IS A ROTATION IN THE (I,P+1) 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 ON ENTRY C C R REAL(LDR,P), WHERE LDR .GE. P. C R CONTAINS THE UPPER TRIANGULAR MATRIX C THAT IS TO BE UPDATED. THE PART OF R C BELOW THE DIAGONAL IS NOT REFERENCED. C C LDR INTEGER. C LDR IS THE LEADING DIMENSION OF 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 TO BE ADDED TO R. X IS C NOT ALTERED BY SCHUD. C C Z REAL(LDZ,NZ), WHERE LDZ .GE. P. C Z IS AN ARRAY CONTAINING NZ P-VECTORS TO C BE UPDATED 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 UPDATED 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 UPDATING THE VECTORS C Z. Y IS NOT ALTERED BY SCHUD. C C RHO REAL(NZ). C RHO CONTAINS THE NORMS OF THE RESIDUAL C VECTORS THAT ARE TO BE UPDATED. IF RHO(J) C IS NEGATIVE, IT IS LEFT UNALTERED. C C ON RETURN C C RC C RHO CONTAIN THE UPDATED QUANTITIES. C Z 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 LINPACK. THIS VERSION DATED 08/14/78 . C G.W. STEWART, UNIVERSITY OF MARYLAND, ARGONNE NATIONAL LAB. C C SCHUD USES THE FOLLOWING FUNCTIONS AND SUBROUTINES. C C EXTENDED BLAS SROTG C FORTRAN SQRT C