code 34401;
    procedure CHLINV1(A, N); value N; integer N; array A;
    begin integer I, II, I1, J, IJ; real R;
        array U[1:N];

        II:= (N + 1) * N // 2;
        for I:= N step - 1 until 1 do 
        begin R:= 1 / A[II]; I1:= I + 1; IJ:= II + I;
            for J:= I1 step 1 until N do 
            begin U[J]:= A[IJ]; IJ:= IJ + J end;
            for J:= N step - 1 until I1 do 
            begin IJ:= IJ - J; A[IJ]:= -SYMMATVEC(I1, N, J, A, U) * R
            end;
            A[II]:= (R - SEQVEC(I1, N, II + I, 0, A, U)) * R;
            II:= II - I
        end 
    end CHLINV1

        eop