code 34253;
procedure ITISOLERB(A, LU, N, AUX, RI, CI, B); value N;
integer N;
array A, LU, AUX, B; integer array RI, CI;
begin integer I;
real NRMSOL, NRMINV, NRMB, ALFA, TOLA, EPS;
EPS:= AUX[0];
NRMINV:= AUX[9]; TOLA:= AUX[5] * AUX[6]; NRMB:= NRMSOL:= 0;
for I:= 1 step 1 until N do NRMB:= NRMB + ABS(B[I]);
ITISOL(A, LU, N, AUX, RI, CI, B);
for I:= 1 step 1 until N do
NRMSOL:= NRMSOL + ABS(B[I]);
ALFA:= 1 - (1.06 * EPS * AUX[7] * (.75 * N + 4.5) * N ** 2
+ TOLA) * NRMINV;
if ALFA < EPS then AUX[11]:= - 1 else
begin ALFA:= ((AUX[13] + AUX[8] * NRMB) / NRMSOL + TOLA) *
NRMINV / ALFA;
AUX[11]:= if 1 - ALFA < EPS then - 1 else
ALFA / (1 - ALFA)
end
end ITISOLERB;
eop