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