code 31046;
real procedure CHEPOLSUM(N,X,A);
value N,X;integer N;real X;array A;
if N=0 then CHEPOLSUM:=A[0] else 
if N=1 then CHEPOLSUM:=A[0]+A[1]*X else 
begin integer K;real H,R,S,TX;
   TX:=X+X;R:=A[N];
   H:=A[N-1]+R*TX;
   for K:=N-2 step -1 until 1 do 
   begin S:=R;R:=H;
      H:=A[K]+R*TX-S
   end K;
   CHEPOLSUM:=A[0]-R+H*X
end CHEPOLSUM

        eop