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