package body Generic_Poly_System_Functions is
use Polynomials,Poly_Functions;
-- CREATORS :
function Create ( p : Poly_Sys ) return Eval_Poly_Sys is
res : Eval_Poly_Sys(p'range);
begin
for k in p'range loop
res(k) := Create(p(k));
end loop;
return res;
end Create;
function Create ( p : Poly_Sys ) return Eval_Coeff_Poly_Sys is
res : Eval_Coeff_Poly_Sys(p'range);
begin
for k in p'range loop
res(k) := Create(p(k));
end loop;
return res;
end Create;
-- EVALUATORS :
function Eval ( p : Poly_Sys; x : number; i : natural ) return Poly_Sys is
res : Poly_Sys(p'range);
begin
for j in p'range loop
res(j) := Eval(p(j),x,i);
end loop;
return res;
end Eval;
function Eval ( p : Poly_Sys; x : Vector ) return Vector is
res : Vector(p'range);
begin
for i in p'range loop
res(i) := Eval(p(i),x);
end loop;
return res;
end Eval;
function Eval ( p : Eval_Poly_Sys; x : Vector ) return Vector is
res : Vector(p'range);
begin
for i in p'range loop
res(i) := Eval(p(i),x);
end loop;
return res;
end Eval;
function Eval ( p : Eval_Coeff_Poly_Sys; c : VecVec; x : Vector )
return Vector is
res : Vector(p'range);
begin
for i in p'range loop
res(i) := Eval(p(i),c(i).all,x);
end loop;
return res;
end Eval;
-- DESTRUCTORS :
procedure Clear ( p : in out Eval_Poly_Sys ) is
begin
for k in p'range loop
Clear(p(k));
end loop;
end Clear;
procedure Clear ( p : in out Eval_Coeff_Poly_Sys ) is
begin
for k in p'range loop
Clear(p(k));
end loop;
end Clear;
end Generic_Poly_System_Functions;