Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/degree_structure.ads, Revision 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>