with Standard_Natural_Vectors;
with Standard_Complex_Numbers; use Standard_Complex_Numbers;
with Standard_Complex_Polynomials;
with Standard_Complex_Poly_Systems;
with Multprec_Complex_Numbers; use Multprec_Complex_Numbers;
with Multprec_Complex_Number_Tools; use Multprec_Complex_Number_Tools;
with Multprec_Complex_Polynomials;
with Multprec_Complex_Poly_Systems;
package body Standard_to_Multprec_Convertors is
-- AUXILIARIES :
function Convert ( d : Standard_Complex_Polynomials.Degrees )
return Multprec_Complex_Polynomials.Degrees is
res : Multprec_Complex_Polynomials.Degrees;
begin
res := new Standard_Natural_Vectors.Vector(d'range);
for i in res'range loop
res(i) := d(i);
end loop;
return res;
end Convert;
function Convert ( t : Standard_Complex_Polynomials.Term )
return Multprec_Complex_Polynomials.Term is
res : Multprec_Complex_Polynomials.Term;
begin
res.cf := Create(t.cf);
res.dg := Convert(t.dg);
return res;
end Convert;
-- TARGET FUNCTIONS :
function Convert ( p : Standard_Complex_Polynomials.Poly )
return Multprec_Complex_Polynomials.Poly is
res : Multprec_Complex_Polynomials.Poly
:= Multprec_Complex_Polynomials.Null_Poly;
procedure Convert_Term ( t : in Standard_Complex_Polynomials.Term;
continue : out boolean ) is
ct : Multprec_Complex_Polynomials.Term := Convert(t);
begin
Multprec_Complex_Polynomials.Add(res,ct);
Multprec_Complex_Polynomials.Clear(ct);
continue := true;
end Convert_Term;
procedure Convert_Terms is
new Standard_Complex_Polynomials.Visiting_Iterator(Convert_Term);
begin
Convert_Terms(p);
return res;
end Convert;
function Convert ( p : Standard_Complex_Poly_Systems.Poly_Sys )
return Multprec_Complex_Poly_Systems.Poly_Sys is
res : Multprec_Complex_Poly_Systems.Poly_Sys(p'range);
begin
for i in p'range loop
res(i) := Convert(p(i));
end loop;
return res;
end Convert;
end Standard_to_Multprec_Convertors;