code 35160;
real procedure BESS J0(X); value X; real X;
if X=0 then BESS J0:= 1 else
if ABS(X) < 8 then
begin real Z, Z2, AR, B0, B1, B2;
X:= X/8; Z:= 2*X*X - 1; Z2:= Z + Z;
B1:= B2:= 0;
for AR:=-.75885"-15, +.4125321 "-13,
-.194383469 "-11, +.7848696314 "-10,
-.267925353056 "- 8, +.7608163592419 "- 7,
-.176194690776215"- 5, +.324603288210051"- 4,
-.46062616620628 "- 3, +.48191800694676 "- 2,
-.34893769411409 "- 1, +.158067102332097 ,
-.37009499387265 "- 0, +.265178613203337 ,
-.872344235285222"- 2 do
begin B0:= Z2*B1-B2+AR;
B2:= B1; B1:= B0
end;
BESS J0:= Z*B1 - B2 + .15772 79714 7489
end else
begin real C, COSX, SINX, P0, Q0;
X:= ABS(X); C:= .79788 45608 02865 / SQRT(X);
COSX:= COS(X-.70685 83470 57703" 1);
SINX:= SIN(X-.70685 83470 57703" 1);
BESS PQ0(X, P0, Q0);
BESSJ0:= C * (P0 * COSX - Q0 * SINX)
end BESS J0
eop