code 35055;
procedure FORWARD(X,P,Q,I0,I1,NMAX,I);
value X,P,Q,I0,I1,NMAX; integer NMAX; real X,P,Q,I0,I1;
array I;
begin integer M,N; real Y,R,S;
    I[0]:= I0; if NMAX > 0 then I[1]:= I1;
    M:= NMAX-1; R:= P+Q-1; Y:= 1-X;
    for N:= 1 step 1 until M do 
    begin S:= (N+R)*Y;
        I[N+1]:= ((N+Q+S)*I[N]-S*I[N-1])/(N+Q)
    end 
end FORWARD

        eop