with text_io; use text_io;
with Interfaces.C;
with Standard_Natural_Numbers; use Standard_Natural_Numbers;
with Standard_Integer_Numbers; use Standard_Integer_Numbers;
with Standard_Integer_Numbers_io; use Standard_Integer_Numbers_io;
with C_Integer_io,C_Double_io; use C_Integer_io,C_Double_io;
with C_Integer_Arrays; use C_Integer_Arrays;
with C_Double_Arrays; use C_Double_Arrays;
with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
with Standard_Complex_Poly_Systems_io; use Standard_Complex_Poly_Systems_io;
with Coefficient_Support_Poly_Systems; use Coefficient_Support_Poly_Systems;
procedure cosupsys ( n,m : in integer32; mc : in C_intarrs.Pointer;
ns : in integer32; s : in C_intarrs.Pointer;
nc : in integer32; c : in C_dblarrs.Pointer ) is
-- DESCRIPTION :
-- The number of monomials in the i-th equation is mc[i], where
-- i runs from 0 to m-1. The support vector s has range 0..ns-1
-- and the coefficient vector c has range 0..nc-1.
-- The number of variables in every equation is n.
-- ON ENTRY :
-- n number of variables;
-- m number of polynomials in the system;
-- mc number of monomials in every polynomial, range 0..m-1;
-- ns number of exponents;
-- s support vector for the system, range 0..ns-1;
-- nc number of coefficients;
-- c coefficient vector for the system, range 0..nc-1.
mva : C_Integer_Array(0..Interfaces.C.size_T(m-1))
:= C_intarrs.Value(mc,Interfaces.C.ptrdiff_T(m));
sva : C_Integer_Array(0..Interfaces.C.size_T(ns-1))
:= C_intarrs.Value(s,Interfaces.C.ptrdiff_T(ns));
cva : C_Double_Array(0..Interfaces.C.size_T(nc-1))
:= C_dblarrs.Value(c,Interfaces.C.ptrdiff_T(nc));
p : Poly_Sys(1..m);
begin
put("Number of variables : "); put(n,1); new_line;
put("Number of equations : "); put(m,1); new_line;
put("Number of monomials in every equation : ");
for i in 0..m-1 loop
put(" "); put(mva(Interfaces.C.size_T(i)),1);
end loop;
new_line;
put("Number of exponents in support : "); put(ns,1); new_line;
put("The support :");
for i in 0..ns-1 loop
put(" "); put(sva(Interfaces.C.size_T(i)),1);
end loop;
new_line;
put("Number of doubles in coefficient vector : "); put(nc,1); new_line;
put_line("The coefficients : ");
for i in 0..nc-1 loop
put(" "); put(cva(Interfaces.C.size_T(i)));
new_line;
end loop;
p := Create(natural32(n),mva,cva,sva);
put_line("The polynomial system defined by coefficients and support : ");
put_line(p);
end cosupsys;