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