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