code 35194; procedure NONEXP BESS KA01(A, X, KA, KA1); value A, X; real A, X, KA, KA1; if A = 0 then begin NONEXP BESS K01(X,KA,KA1) end else begin real F, G, H, PI; integer N, NA; boolean REC, REV; PI:= 4 * ARCTAN(1); REV:= A < -.5; if REV then A:= -A-1; REC:= A >= .5; if REC then begin NA:=ENTIER(A+.5); A:= A - NA end; if A = -.5 then F:= G:= SQRT(PI / X / 2) else if X < 1 then real EXPON; EXPON:= EXP(X); BESS KA01(A, X, KA, KA1); F:= EXPON * KA; G:= EXPON * KA1 end else begin real B, C, E, P, Q; C:=.25-A*A;B:=X+X;G:=1;F:=0;E:=COS(A*PI)/PI*X*"15; for N:=1,N+1 while H*N<E do begin H:=(2*(N+X)*G-(N-1+C/N)*F)/(N+1);F:=G; G:=H end; P:= Q:= F / G; E:= B - 2; for N:=N,N-1 while N>0 do begin P:=(N-1+C/N)/(E+(N+1)*(2-P));Q:=P*(1+Q) end; F:=SQRT(PI/B)/(1+Q);G:=F*(A+X+.5-P)/X end; if REC then begin X:= 2 / X; for N:= 1 step 1 until NA do begin H:= F + (A + N) * X * G; F:= G; G:= H end end; if REV then begin KA1:= F; KA:= G end else begin KA:= F; KA1:= G end end NONEXP BESS KA01; eop