with Standard_Complex_Vectors; use Standard_Complex_Vectors; with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems; package Reduction_of_Polynomial_Systems is -- DESCRIPTION : -- Linear and nonlinear reduction to reduce the total degree. function Total_Degree ( p : Poly_Sys ) return natural; -- DESCRIPTION : -- Returns the total degree of the polynomial system, -- i.e. the product of the degrees of the polynomials. procedure Reduce ( p : in out Poly_Sys; diagonal,inconsistent,infinite : in out boolean ); -- DESCRIPTION : -- This procedure tries to lower the total degree of p by means -- of linear reduction. -- ON ENTRY : -- p a polynomial system. -- ON RETURN : -- p a polynomial system with a possible lower total degree; -- diagonal true if all leading terms in p are different; -- inconsistent is true if the reduced system has equations `4=0'; -- infinite is true if some equations of the original system -- disappeared during the reduction process. procedure Sparse_Reduce ( p : in out Poly_Sys; inconsistent,infinite : in out boolean ); -- DESCRIPTION : -- This procedure makes the coefficient matrix of p as sparse as -- possible. procedure Reduce ( p : in Poly_Sys; res : in out Poly_Sys; cnt_eq : in out natural; max_eq : in natural; cnt_sp : in out natural; max_sp : in natural; cnt_rp : in out natural; max_rp : in natural ); -- DESCRIPTION : -- This procedure tries to lower the total degree of the system p -- by means of nonlinear reduction. -- REQUIRED : the counters must equal 0, on entry. -- ON ENTRY : -- p a polynomial system; -- cnt_eq counts the number of equal degree substitutions; -- max_eq limit on the number of equal degree substitutions; -- cnt_sp counts the number of S-polynomial computations; -- max_sp limit on the number of S-polynomial computations. -- cnt_rp counts the number of R-polynomial computations; -- max_rp limit on the number of R-polynomial computations. -- ON RETURN : -- res the reduced system; -- cnt_eq the number of equal degree substitutions; -- cnt_sp the number of computed S-polynomials; -- cnt_rp the number of computed R-polynomials. procedure Sparse_Reduce ( p : in Poly_Sys; res : in out Poly_Sys; cnt_eq : in out natural; max_eq : in natural ); -- DESCRIPTION : -- the polynomial system is reduced by computing S-polynomials. -- After each replacement, the coefficient matrix is made as sparse -- as possible. end Reduction_of_Polynomial_Systems;