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