code 34136; procedure LSQINV(A, M, AID, C); value M; integer M; array A, AID; integer array C; begin integer I, CI; real W; for I:= 1 step 1 until M do A[I,I]:= AID[I]; CHLINV2(A, M); for I:= M step - 1 until 1 do begin CI:= C[I]; if CI ^= I then begin ICHCOL(1, I - 1, I, CI, A); ICHROWCOL(I + 1, CI - 1, I, CI, A); ICHROW(CI + 1, M, I, CI, A); W:= A[I,I]; A[I,I]:= A[CI,CI]; A[CI,CI]:= W end end end LSQINV; eop