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