code 35176;
real procedure NONEXP BESS I1(X); value X; real X;
if X=0 then NONEXP BESS I1:= 0
else if ABS(X)> 15.0 then
begin integer SIGNX ;
real AR, BR, BR1, BR2, Z, Z2,
SQRTX, DENOMINATOR, NUMERATOR;
SIGNX:= SIGN(X); X:= ABS(X); SQRTX:= SQRT(X);
Z:= 30/X - 1; Z2 := Z + Z;
BR1:= BR2:= 0;
for AR:=
+.14940 52814 740 "+1,
-.36202 64202 42263 "+3,
+.22054 97222 60336 "+5,
-.40892 80849 44275 "+6 do
begin BR:= Z2 * BR1 - BR2 + AR;
BR2:= BR1; BR1:= BR
end;
NUMERATOR:= Z * BR1 -BR2 +.10277 66923 71524 "7;
BR1:= BR2:= 0; for AR:= 1,
-.63100 32005 51590 "3,
+.49681 19495 33398 "5,
-.10042 54281 33695 "7 do
begin BR:= Z2 * BR1 - BR2 + AR; BR2:= BR1; BR1:=BR end;
DENOMINATOR:= Z * BR1 - BR2 +.26028 87678 9105 "7;
NONEXP BESS I1:= ((NUMERATOR/DENOMINATOR)/SQRTX) * SIGN X
end else
begin
NONEXP BESS I1:= EXP(-ABS(X))*BESS I1(X)
end
eop