code 34131;
procedure LSQSOL(A, N, M, AID, CI, B); value N, M;
integer N, M; array A, AID, B; integer array CI;
begin integer K, CIK;
real W;
for K:= 1 step 1 until M do ELMVECCOL(K, N, K, B, A,
TAMVEC(K, N, K, A, B) / (AID[K] * A[K,K]));
for K:= M step - 1 until 1 do B[K]:= (B[K] - MATVEC
(K + 1, M, K, A, B)) / AID[K];
for K:= M step - 1 until 1 do
begin CIK:= CI[K]; if CIK ^= K then
begin W:= B[K]; B[K]:= B[CIK]; B[CIK]:= W end
end
end LSQSOL;
eop