#### Exercise 6.3: Polynomial Evaluation Program

Given: a two-dimensional array, C, of real valued polynomial coefficients, each row of which contains the coefficients of a single polynomial;
Given: for each row of C, the index of each coefficient's position is the exponent of x for that term;
Given: a one-dimensional array X of real valued polynomial unknowns, with each element corresponding to the unknown for the whole set of polynomials;
Compose: a function of C and X that evaluates each polynomial with each unknown, and returns the two-dimensional array containing in each row the value of each polynomial for one of the unknowns.
```define multi_poly
%\$entry = multi_poly

type Poly_Coeffs = array [ real ];        % Coefficients of one polynomial
type Many_Polys = array [  Poly_Coeffs ]; % Coefficients of many polynomials
type Unknowns = array [ real ];           % Values for X, the polynomial unknown
type Values = array [ real ];             % Values of all polys for one unknown
type Many_Values = array [ Values ];      % Values of all polys for all unknowns

function eval_poly( coeffs : Poly_Coeffs; x_val := real returns Values )
for c in coeffs at i
term := c * exp(x_val, real(i))
returns value of sum term
end for

end function % eval_poly

function multi_poly( C : Many_Polys; X : Unknowns returns Many_Values )

for x_val in X
row_of_poly_vals :=
for coeffs in C
poly_value := eval_poly(coeffs, x_val)
returns array of poly_value
end for                     % one row of result array - all polys for one x
returns array of row_of_poly_vals
end for

end function % multi_poly
```

Previous Section