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