SUBROUTINE HOUSH (DUMMY,K,J,EPS,ZERO,S) C C THIS ROUTINE CONSTRUCTS A HOUSEHOLDER TRANSFORMATION C H = I - S * U * U' C THAT 'MIRRORS' A VECTOR DUMMY(1, ... ,K) TO THE JTH C UNIT VECTOR. IF NORM(DUMMY) .LT. EPS, ZERO IS SET EQUAL C TO .TRUE. UPON RETURN, U IS STORED IN DUMMY. C DOUBLE PRECISION DUMMY(1),S,ALFA,DUM1,EPS LOGICAL ZERO ZERO = .TRUE. S = 0.0D0 DO 10 I = 1,K 10 S = S+DUMMY(I)*DUMMY(I) ALFA = DSQRT(S) IF (ALFA .LE. EPS) RETURN ZERO = .FALSE. DUM1 = DUMMY(J) IF (DUM1 .GT. 0.0D0) ALFA = -ALFA DUMMY(J) = DUM1-ALFA S = 1.0D0/(S-ALFA*DUM1) RETURN END