[BACK]Return to degree_structure.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Product

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/degree_structure.ads, Revision 1.1.1.1

1.1       maekawa     1: with Standard_Natural_Vectors;
                      2: with Sets_of_Unknowns;                   use Sets_of_Unknowns;
                      3: with Partitions_of_Sets_of_Unknowns;     use Partitions_of_Sets_of_Unknowns;
                      4: with Standard_Complex_Poly_Systems;      use Standard_Complex_Poly_Systems;
                      5:
                      6: package Degree_Structure is
                      7:
                      8: -- DESCRIPTION :
                      9: --   This package analyzes the structure of a given
                     10: --   polynomial system, with respect to its degrees.
                     11:
                     12: -- CREATORS :
                     13:
                     14:   procedure Create ( p : in Poly_Sys );
                     15:
                     16:   -- DESCRIPTION :
                     17:   --   For each equation of the polynomial system p, a heuristic is applied
                     18:   --   for constructing a good tuple of partitions.
                     19:   --   This degree structure will be contained by the package itself.
                     20:
                     21:   procedure Put ( p : in Poly_Sys;
                     22:                   i,m : in natural; z : in Partition );
                     23:
                     24:   -- DESCRIPTION :
                     25:   --   A partition for the set of unknowns of the ith polynomial
                     26:   --   of the system p is added.
                     27:
                     28: -- SELECTORS :
                     29:
                     30:   function Empty return boolean;
                     31:
                     32:   -- DESCRIPTION :
                     33:   --   is true initially and after the Clear procedure.
                     34:
                     35:   function Get ( i : natural ) return natural;
                     36:
                     37:   -- DESCRIPTION :
                     38:   --   returns the number of sets for the partition of
                     39:   --   the i-th equation of a polynomial system p for
                     40:   --   which the Create operation must be performed.
                     41:
                     42:   procedure Get ( i : in natural; z : in out Partition;
                     43:                   d : out Standard_Natural_Vectors.Vector );
                     44:
                     45:   -- DESCRIPTION :
                     46:   --   The partition for the i-the equation of the polynomial
                     47:   --   system p is returned together with its degrees;
                     48:   --   for j in d'range :  d(j) = Degree(p(i),z(j)).
                     49:
                     50:   -- REQUIRED :
                     51:   --   The Create operation or Put operations have been performed on a
                     52:   --   polynomial system p having at least i equations.
                     53:
                     54: -- COMPUTING THE GENERALIZED BEZOUT NUMBER :
                     55:
                     56:   function Admissible ( z : Partition; n : natural ) return boolean;
                     57:
                     58:   -- DESCRIPTION :
                     59:   --   return true if the following holds:
                     60:   --    `Any union of k sets of z contains at least k unknowns',
                     61:   --   for k in 2..n.
                     62:
                     63:   -- NOTE :
                     64:   --   z is not necessary a partition, it is rather a set of n sets
                     65:   --   of unknowns.
                     66:
                     67:   function Admissible ( z : Partition; n : natural; s : Set )
                     68:                       return boolean;
                     69:
                     70:   -- DESCRIPTION :
                     71:   --   given admissible(z,n) = true, this function returns
                     72:   --   admissible(union(z,s),n+1).
                     73:
                     74:   function Admissible ( z : Partition; k,n : natural; s : Set )
                     75:                       return boolean;
                     76:
                     77:   -- DESCRIPTION :
                     78:   --   returns true if admissible(union(z,s),n+1), with respect to k.
                     79:
                     80:   function Generalized_Bezout_Number return natural;
                     81:
                     82:   -- DESCRIPTION :
                     83:   --   This function returns a Bezout number based on the
                     84:   --   degree structure of the system.
                     85:
                     86:   function Generalized_Bezout_Number ( p : in Poly_Sys ) return natural;
                     87:
                     88:   -- DESCRIPTION :
                     89:   --   Calling this function is equivalent to :
                     90:   --      Degree_Structure.Create(p);
                     91:   --      return Degree_Structure.Generalized_Bezout_Number;
                     92:
                     93: -- DESTRUCTOR :
                     94:
                     95:   procedure Clear;
                     96:
                     97:   -- DESCRIPTION :
                     98:   --   All allocated memory space is freed.
                     99:
                    100: end Degree_Structure;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>