with Standard_Complex_Numbers; use Standard_Complex_Numbers;
with Standard_Random_Numbers; use Standard_Random_Numbers;
with Standard_Complex_Polynomials; use Standard_Complex_Polynomials;
with Reduction_of_Polynomials; use Reduction_of_Polynomials;
package body Reduction_of_Nonsquare_Systems is
function Random_Square ( p : in Poly_Sys ) return Poly_Sys is
m : constant natural := Number_of_Unknowns(p(p'first));
res : Poly_Sys(1..m);
begin
for i in res'range loop
Copy(p(i),res(i));
for j in m+1..p'last loop
declare
a : Complex_Number := Random1;
tmp : Poly := a*p(j);
begin
Add(res(i),tmp);
Clear(tmp);
end;
end loop;
end loop;
return res;
end Random_Square;
function Reduced_Square ( p : in Poly_Sys ) return Poly_Sys is
m : constant natural := Number_of_Unknowns(p(p'first));
res : Poly_Sys(1..m);
begin
for i in res'range loop
Copy(p(i),res(i));
for j in m+1..p'last loop
declare
tmp : Poly := Rpoly(res(i),p(j));
begin
Copy(tmp,res(i)); Clear(tmp);
end;
end loop;
end loop;
return res;
end Reduced_Square;
end Reduction_of_Nonsquare_Systems;