with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems; with Partitions_of_Sets_Of_Unknowns; use Partitions_of_Sets_of_Unknowns; package m_Homogeneous_Bezout_Numbers is -- DESCRIPTION : -- This package allows the computation of m-homogeneous Bezout numbers. -- It provides various enumeration strategies for computing a minimal -- m-homogeneous Bezout number. function Total_Degree ( p : Poly_Sys ) return natural; -- DESCRIPTION : -- Returns the 1-homogeneous Bezout number of the system. function Bezout_Number ( p : Poly_Sys; z : Partition ) return natural; function Bezout_Number ( p : Poly_Sys; z : Partition; max : natural ) return natural; -- DESCRIPTION : -- Returns the m-homogeneous Bezout number w.r.t. the given partition. -- When max is given as parameter, the computation stops when the -- result becomes larger than or equal to max. function Bezout_Number ( p : Poly_Sys ) return natural; function Bezout_Number ( max : natural; p : Poly_Sys ) return natural; function Bezout_Number ( p : Poly_Sys; min : natural ) return natural; function Bezout_Number ( max : natural; p : Poly_Sys; min : natural ) return natural; -- DESCRIPTION : -- A minimal m-homogeneous Bezout number of the polynomial system -- p is computed, by generating partitions of the sets of unknowns. -- ON ENTRY : -- p a polynomial system; -- max a maximum number of partition to be evaluated, -- if max=0, then the total degree is returned; -- min the procedure stops when the Bezout number becomes -- smaller than min. procedure Bezout_Number ( p : in Poly_Sys; b,m : out natural; z : in out Partition ); procedure Bezout_Number ( max : in natural; p : in Poly_Sys; b,m : out natural; z : in out Partition ); procedure Bezout_Number ( p : in Poly_Sys; min : in natural; b,m : out natural; z : in out Partition ); procedure Bezout_Number ( max : in natural; p : in Poly_Sys; min : in natural; b,m : out natural; z : in out Partition ); -- DESCRIPTION : -- A minimal m-homogeneous Bezout number of the polynomial system -- is computed. The partition with the calculated Bezout number -- is returned. -- ON ENTRY : -- p a polynomial system; -- max a maximum number of partition to be evaluated, -- if max=0, then the total degree is returned; -- min the procedure stops when the Bezout number becomes -- smaller than min. -- ON RETURN : -- b a minimal m-homogeneous Bezout number; -- m the number of sets in the partition z; -- z the partition with the computed Bezout number b. procedure PB ( p : in Poly_Sys; b,m : out natural; z : in out Partition ); -- DESCRIPTION : -- This is a fast heuristic for computing `the' Bezout number of p. -- It is fast because it does not generate all partitions, -- it is a heuristic because it does not always give then -- minimal partition. -- ON ENTRY : -- p a polynomial system. -- ON RETURN : -- b an m-homogeneous Bezout number; -- m the number of sets in the partition z; -- z the partition corresponding to b. end m_Homogeneous_Bezout_Numbers;