code 35161; real procedure BESS J1(X); value X; real X; if X=0 then BESS J1:= 0 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; comment COMPUTATION OF J1; B1:= B2:= 0; for AR:= -.19554 "-15, +.1138572 "-13, -.57774042 "-12, +.2528123664 "-10, -.94242129816 "- 9, +.2949707007278 "- 7, -.76175878054003 "- 6, +.158870192399321"- 4, -.260444389348581"- 3, +.324027018268386"- 2, -.291755248061542"- 1, +.177709117239728"- 0, -.661443934134543"- 0, +.128799409885768"+ 1, -.119180116054122"+ 1 do begin B0:= Z2*B1-B2+AR; B2:= B1; B1:= B0 end; BESS J1:= X * (Z * B1 - B2 + .64835 87706 05265) end else begin real C, COSX, SINX, P1, Q1; integer SGNX; SGNX:= SIGN(X); X:= ABS(X); C:= .79788 45608 02865 / SQRT(X); COSX:= COS(X-.70685 83470 57703"+1); SINX:= SIN(X-.70685 83470 57703"+1); BESS PQ1(X, P1, Q1); BESS J1:= SGNX * C * (P1*SINX + Q1*COSX) end BESS J1; eop