{
Calculate polynom (or derivation DerivNum) at point x
}
function PolynomEval(Poly:TPolynom; x:Real; DerivNum:Integer):Real;
var t,fact,p:Real; i,j:Integer;
begin
 p:=0;
 t:=(x-Poly.Center)/Poly.Scale;
 if DerivNum=0 then begin
  for i:=Poly.Power downto 0 do p:=p*t+Poly.Coeff[i];
 end else
 if DerivNum=1 then begin
  for i:=Poly.Power-1 downto 0 do p:=p*t+Poly.Coeff[i+1]*(i+1);
  p:=p/Poly.Scale;
 end else
 if (DerivNum>=2) and (DerivNum<=9) then begin
  for i:=Poly.Power-DerivNum downto 0 do begin
   fact:=Poly.Coeff[i+DerivNum];
   for j:=1 to DerivNum do fact:=fact*(i+j);
   p:=p*t+fact;
  end;
  fact:=1/Poly.Scale;
  for i:=1 to DerivNum do p:=p*fact;
 end;
 PolynomEval:=p;
end;
