1
{ ******************************************************************
2
Polynomials and rational fractions
3
****************************************************************** }
12
function Poly(X : Float; Coef : PVector; Deg : Integer) : Float;
13
{ ------------------------------------------------------------------
14
Evaluates the polynomial :
15
P(X) = Coef[0] + Coef[1] * X + Coef[2] * X^2 + ...
17
------------------------------------------------------------------ }
19
function RFrac(X : Float; Coef : PVector; Deg1, Deg2 : Integer) : Float;
20
{ ------------------------------------------------------------------
21
Evaluates the rational fraction :
23
Coef[0] + Coef[1] * X + ... + Coef[Deg1] * X^Deg1
24
F(X) = -----------------------------------------------------
25
1 + Coef[Deg1+1] * X + ... + Coef[Deg1+Deg2] * X^Deg2
26
------------------------------------------------------------------ }
30
function Poly(X : Float; Coef : PVector; Deg : Integer) : Float;
36
for I := Pred(Deg) downto 0 do
37
P := P * X + Coef^[I];
41
function RFrac(X : Float; Coef : PVector; Deg1, Deg2 : Integer) : Float;
47
for I := Pred(Deg1) downto 0 do
48
P := P * X + Coef^[I];
50
for I := (Deg1 + Deg2) downto Succ(Deg1) do
51
Q := (Q + Coef^[I]) * X;
52
RFrac := P / (1.0 + Q);