Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/partitions_of_sets_of_unknowns.ads, Revision 1.1.1.1
1.1 maekawa 1: with Sets_of_Unknowns; use Sets_of_Unknowns;
2:
3: package Partitions_of_Sets_of_Unknowns is
4:
5: -- DESCRIPTION :
6: -- This package provides a data abstraction for enumerating all
7: -- partitions of a given set of unknowns.
8:
9: type partition is array ( positive range <> ) of Set;
10:
11: -- CREATORS :
12:
13: procedure Create ( p : in out Partition; n : in natural );
14:
15: -- DESCRIPTION :
16: -- Creates all sets in the partition, to be ready to contain
17: -- at most n unknowns.
18:
19: function Create ( p : Partition ) return Partition;
20:
21: -- DESCRIPTION :
22: -- Returns a new partition which is an exact copy of the given one.
23:
24: -- CONSTRUCTORS :
25:
26: generic
27: with procedure Process ( p : in Partition; continue : out boolean );
28: procedure Generate_Partitions ( s : in Set );
29:
30: -- DESCRIPTION :
31: -- Generates all partitions of a given set of unknowns.
32: -- The procedure Process is invoked each time a new partition is
33: -- generated. The generation can be stopped by setting
34: -- continue to false. Otherwise, when continue is set to true,
35: -- the generation continues.
36:
37: -- NOTE :
38: -- While processing the partition, it might be needed to copy
39: -- the resulting partition, as sharing occurs.
40:
41: -- SELECTOR :
42:
43: function Number_of_Partitions ( n : natural ) return natural;
44:
45: -- DESCRIPTION :
46: -- Returns the number of partitions of a set of n unknowns.
47:
48: -- DESTRUCTOR :
49:
50: procedure Clear ( p : in out Partition );
51:
52: -- DESCRIPTION :
53: -- Deallocates the occupied memory.
54:
55: end Partitions_of_Sets_of_Unknowns;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>