Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Implift/arrays_of_lists_utilities.ads, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
2: with Standard_Integer_VecVecs; use Standard_Integer_VecVecs;
3: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
4: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
5:
6: package Arrays_of_Lists_Utilities is
7:
8: -- DESCRIPTION :
9: -- This package offers some utilities for working with
10: -- arrays of lists of integer vectors.
11:
12: function All_Equal ( al : Array_of_Lists ) return boolean;
13:
14: -- DESCRIPTION :
15: -- returns true if all lists in al are the same.
16:
17: function Interchange2 ( al : Array_of_Lists ) return Array_of_Lists;
18:
19: -- DESCRIPTION :
20: -- Returns a permuted array such that if the original array contains
21: -- a list of length less than or equal to 2, the permuted array has
22: -- this list on its first position.
23:
24: function Index2 ( al : Array_of_Lists ) return integer;
25:
26: -- DESCRIPTION :
27: -- Returns the index of the list in the array which has a length less
28: -- than or equal to 2. If no such list can be found, then al'first
29: -- will be returned.
30:
31: procedure Mixture ( al : in Array_of_Lists; perm,mix : out Link_to_Vector );
32:
33: -- DESCRIPTION :
34: -- Computes the mixture of the sets in al: mix(i) indicates how many
35: -- times the ith list, given by al(perm(i)), occurs in the array.
36: -- The list with minimal occurence stands in front.
37:
38: function Permute ( perm : Vector; al : in Array_of_Lists )
39: return Array_of_Lists;
40:
41: -- DESCRIPTION :
42: -- The returned array is permuted according to the permutation vector.
43:
44: function Different_Points ( al : Array_of_Lists ) return List;
45:
46: -- DESCRIPTION :
47: -- Returns a list of all different points from the lists
48: -- of al, the first list will not be considered.
49:
50: function Different_Points ( al : Array_of_Lists ) return Array_of_Lists;
51:
52: -- DESCRIPTION :
53: -- Returns lists of all different points from the lists
54: -- of al, the first list will not be considered.
55:
56: procedure Remove_Duplicates ( al : in out Array_of_Lists );
57:
58: -- DESCRIPTION :
59: -- Except for the first list, all duplicates will be removed from
60: -- the lists in al.
61:
62: procedure Shift ( al : in out Array_of_Lists; shiftvecs : in VecVec );
63: function Shift ( al : Array_of_Lists; shiftvecs : VecVec )
64: return Array_of_Lists;
65:
66: -- DESCRIPTION :
67: -- All lists in al will be shifted along the degrees in shiftvecs.
68:
69: -- REQUIRED :
70: -- The ranges of shiftvecs and al are the same.
71:
72: procedure Projection ( al : in Array_of_Lists; v : in Vector;
73: ind : integer; res : in out Array_of_Lists;
74: degenerate : out boolean );
75: -- DESCRIPTION :
76: -- The first list in al will not be considered.
77: -- after termination:
78: -- 1. degenerate = false:
79: -- res is an array of degrees lists where for all points x in
80: -- the list res(i) the following holds: < x , v > = pv, where
81: -- pv equals the support of the list res(i) in the direction v.
82: -- The ind-entry of each point in the lists has been deleted.
83: -- Duplicates have been removed from the lists.
84: -- 2. degenerate = true:
85: -- if there exists an entry i for which Length_Of(res(i)) = 1.
86:
87: -- REQUIRED : al'first = res'first and al'last = res'last + 1
88:
89: end Arrays_of_Lists_Utilities;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>