code 31254;
procedure RECCOF(N,M,X,WX,B,C,L,SYM);
value N,M,SYM;integer N,M; boolean SYM;
real X,WX;array B,C,L;
begin integer I,J,UP;real R,S,PIM,H,HH,ARG,SA;
PIM:=4*ARCTAN(1)/M;
if SYM then begin 
for J:=0 step 1 until N"DO"
begin R:=B[J]:=0;UP:=M "DIV" 2;
   for I:=1 step 1 until UP"DO"
   begin ARG:=(I-.5)*PIM;X:=COS(ARG);
      R:=R+SIN(ARG)*WX*ORTPOL(J,X,B,C)**2;
   end;if UP*2=M then L[J]:=2*R*PIM else 
   begin X:=0;L[J]:=(2*R+WX*ORTPOL(J,0,B,C)**2)*PIM end;
   C[J]:=if J=0 then 0 else L[J]/L[J-1];
end end else 
for J:=0 step 1 until N do 
begin R:=S:=0;UP:=M"DIV" 2;
   for I:=1 step 1 until UP do 
   begin ARG:=(I-.5)*PIM;SA:=SIN(ARG);X:=COS(ARG);
      H:=WX*ORTPOL(J,X,B,C)**2;X:=-X;HH:=WX*ORTPOL(J,X,B,C)**2;
      R:=R+(H+HH)*SA;S:=S+(HH-H)*X*SA;
   end;B[J]:=S*PIM;
   if UP*2=M then L[J]:=R*PIM"ELSE"
   begin X:=0;L[J]:=(R+WX*ORTPOL(J,0,B,C)**2)*PIM end;
   C[J]:=if J=0 then 0 else L[J]/L[J-1];
end;
end RECCOF

        eop