code 34371;
integer procedure QRIHRM(A, N, VAL, VR, VI, EM); value N;
integer N; array A, VAL, VR, VI, EM;
begin integer I, J;
array B, BB[1:N], TR, TI[1:N - 1];
HSHHRMTRI(A, N, VAL, B, BB, EM, TR, TI);
for I:= 1 step 1 until N do
begin VR[I,I]:= 1;
for J:= I + 1 step 1 until N do VR[I,J]:= VR[J,I]:=
0
end;
B[N]:= BB[N]:= 0;
I:= QRIHRM:= QRISYMTRI(VR, N, VAL, B, BB, EM);
BAKHRMTRI(A, N, I+1, N, VR, VI, TR, TI);
end QRIHRM;
eop