code 34355;
boolean procedure HSHCOMCOL(L, U, J, AR, AI, TOL, K, C, S, T);
value L, U, J, TOL; integer L, U, J; real TOL, K, C, S, T;
array AR, AI;
begin real VR, DEL, MOD, H, ARLJ, AILJ;
VR:= TAMMAT(L + 1, U, J, J, AR, AR) + TAMMAT(L + 1, U,
J, J, AI, AI); ARLJ:= AR[L,J]; AILJ:= AI[L,J];
CARPOL(ARLJ, AILJ, MOD, C, S); if VR > TOL then
begin VR:= VR + ARLJ ** 2 + AILJ ** 2; H:= K:= SQRT(VR);
T:= VR + MOD * H;
if ARLJ = 0 and AILJ = 0 then AR[L,J]:= H else
begin AR[L,J]:= ARLJ + C * K; AI[L,J]:= AILJ + S * K;
S:= - S
end;
C:= - C; HSHCOMCOL:= true
end
else
begin HSHCOMCOL:= false; K:= MOD; T:= - 1 end
end HSHCOMCOL;
eop