"CODE" 35086; "PROCEDURE" ENX(X, N1, N2, A); "VALUE" X, N1, N2; "REAL" X; "INTEGER" N1, N2; "ARRAY" A; "IF" X<= 1.5 "THEN" "BEGIN" "REAL" W, E; "INTEGER" I; W:= -EI(-X); "IF" N1=1 "THEN" A[1]:=W; "IF" N2>1 "THEN" E:= EXP(-X); "FOR" I:=2 "STEP" 1 "UNTIL" N2 "DO" "BEGIN" W:= (E - X * W)/(I - 1); "IF" I>= N1 "THEN" A[I]:=W "END" "END" "ELSE" "BEGIN" "INTEGER" I, N; "REAL" W, E, AN; N:=ENTIER(X+.5); "IF" N<=10 "THEN" "BEGIN" "REAL" F, W1, T, H; "REAL" "ARRAY" P[2:19]; P[ 2]:=.37534261820491"-1; P[11]:=.135335283236613 ; P[ 3]:=.89306465560228"-2; P[12]:=.497870683678639"-1; P[ 4]:=.24233983686581"-2; P[13]:=.183156388887342"-1; P[ 5]:=.70576069342458"-3; P[14]:=.673794699908547"-2; P[ 6]:=.21480277819013"-3; P[15]:=.247875217666636"-2; P[ 7]:=.67375807781018"-4; P[16]:=.911881965554516"-3; P[ 8]:=.21600730159975"-4; P[17]:=.335462627902512"-3; P[ 9]:=.70411579854292"-5; P[18]:=.123409804086680"-3; P[10]:=.23253026570282"-5; P[19]:=.453999297624848"-4; F:= W:= P[N]; E:= P[N+9]; W1:= T:= 1; H:= X-N; "FOR" I:=N-1, I-1 "WHILE" ABS(W1)>"-15 * W "DO" "BEGIN" F:= (E - I * F)/N; T:= -H * T / (N-I); W1:= T * F; W:= W + W1 "END" "END" "ELSE" "BEGIN" "ARRAY" B[N:N]; NONEXPENX(X, N, N, B); W:= B[N] * EXP(-X) "END"; "IF" N1=N2 & N1=N "THEN" A[N]:=W "ELSE" "BEGIN" E:= EXP(-X); AN:=W; "IF" N<=N2 & N>=N1 "THEN" A[N]:=W; "FOR" I:= N-1 "STEP" -1 "UNTIL" N1 "DO" "BEGIN" W:= (E - I * W)/X; "IF" I<= N2 "THEN" A[I]:= W "END"; W:=AN; "FOR" I:=N+1 "STEP" 1 "UNTIL" N2 "DO" "BEGIN" W:= (E - X * W)/(I - 1); "IF" I>=N1 "THEN" A[I]:=W "END" "END" "END" ENX "EOP"