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>