code 34602;
procedure HSHDECMUL(N,A,B,DWARF);value N,DWARF;integer N;
real DWARF;array A,B;
begin  array V[1:N];integer J,K,K1,N1;real R,T,C;
    K:=1;N1:=N+1;
    for K1:=2 step 1 until N1 do 
    begin R:=TAMMAT(K1,N,K,K,B,B);
        if R>DWARF then 
        begin R:=if B[K,K]<0 then -SQRT(R+B[K,K]*B[K,K])
            else SQRT(R+B[K,K]*B[K,K]);T:=B[K,K]+R;C:=-T/R;
            B[K,K]:=-R;V[K]:=1;
            for J:=K1 step 1 until N do V[J]:=B[J,K]/T;
            HSHVECMAT(K,N,K1,N,C,V,B);HSHVECMAT(K,N,1,N,C,V,A)
        end;K:=K1
    end 
end HSHDECMUL;
        eop