code 34262;
procedure PRETFMMAT(A, M, N, D);
value M, N; integer M, N; array A, D;
begin integer I, I1, J;
    real G, H;

    for I:= N step - 1 until 1 do 
    begin I1:= I + 1; G:= D[I]; H:= G * A[I,I];
        for J:= I1 step 1 until N do A[I,J]:= 0;
        if H < 0 then 
        begin for J:= I1 step 1 until N do 
            ELMCOL(I, M, J, I, A, A, TAMMAT(I1, M, I, J, A, A) / H);
            for J:= I step 1 until M do A[J,I]:= A[J,I] / G
        end 
        else 
        for J:= I step 1 until M do A[J,I]:= 0;
        A[I,I]:= A[I,I] + 1
    end 
end PRETFMMAT;
        eop