code 31092; real procedure FOUSER (N,THETA,A); value N,THETA;integer N;real THETA;array A; begin integer K;real C,CC,LAMBDA,H,DUN,UN,UN1,C2,S2; C:=COS(THETA); if C<-.5then begin C2:=COS(THETA/2);LAMBDA:=4*C2**2;UN:=DUN:=0; for K:=N"STEP"-1until 0do begin UN:=DUN-UN; DUN:=LAMBDA*UN-DUN+A[K] end;FOUSER :=DUN+2*C2*(SIN(THETA/2)-C2)*UN end else if C> .5then begin S2:=SIN(THETA/2);LAMBDA:=-4*S2*S2;UN:=DUN:=0; for K:=N"STEP"-1until 0do begin UN:=DUN+UN; DUN:=LAMBDA*UN+DUN+A[K] end;FOUSER :=DUN+2*S2*(S2+COS(THETA/2))*UN end else begin CC:=C+C;UN:=UN1:=0; for K:=N"STEP"-1until 1do begin H:=CC*UN-UN1+A[K]; UN1:=UN;UN:=H end;FOUSER :=A[0]-UN1+(C+SIN(THETA))*UN end end FOUSER; eop