Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Dynlift/frequency_graph.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 Standard_Integer_Matrices; use Standard_Integer_Matrices;
4: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
5: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
6:
7: package Frequency_Graph is
8:
9: -- DESCRIPTION :
10: -- This package allows to compute the frequency of a vector w.r.t.
11: -- a tuple of point sets.
12:
13: -- CREATORS :
14:
15: function Occurrences ( i : natural; l : List ) return natural;
16:
17: -- DESCRIPTION :
18: -- Returns the number of times the ith component of vectors in l
19: -- differs from zero.
20:
21: function Graph ( n : natural; supports : Array_of_Lists ) return Matrix;
22:
23: -- DESCRIPTION :
24: -- Computes the graph wich represents the occurencies of each variable
25: -- in each support. In particular, if Graph(i,j) = 0, then the ith
26: -- unknown does not occur in the jth support, else the number of
27: -- occurrences in different vectors is given.
28:
29: -- MODIFIER :
30:
31: procedure Ignore ( m : in out Matrix; point : in Vector );
32:
33: -- DESCRIPTION :
34: -- For each component i of the point, for which point(i) /= 0,
35: -- the element m(i,j) := 1, for all j in m'range(2).
36: -- This is to ignore the occurrences of the ith unknown and to give
37: -- priority to those unknowns that have not been chosen yet.
38:
39: -- SELECTORS :
40:
41: function Occurrence ( i : natural; m : Matrix ) return natural;
42: function Occurrence ( i : natural; m : Matrix; col : natural; perm : Vector )
43: return natural;
44:
45: -- DESCRIPTION :
46: -- Returns the number of nonzero columns of ith row of m.
47: -- The second function does not consider a number of columns
48: -- equal to col and applies Occurrence to the columns
49: -- perm(j) for j in col+1..m'last(2).
50:
51: function Occurrence ( v : Vector; m : Matrix ) return natural;
52: function Occurrence ( v : Vector; m : Matrix; col : natural; perm : Vector )
53: return natural;
54:
55: -- DESCRIPTION :
56: -- Returns the minimal Occurrence(i,m), for all i, for which v(i) /= 0.
57: -- The second function does not consider a number of columns
58: -- equal to col and applies Occurrence to the columns
59: -- perm(j) for j in col+1..m'last(2).
60:
61: function Lowest_Occurrence
62: ( vec : VecVec; start : natural; m : Matrix ) return natural;
63: function Lowest_Occurrence
64: ( vec : VecVec; start : natural; m : Matrix;
65: col : natural; perm : vector ) return natural;
66:
67: -- DESCRIPTION :
68: -- Returns the index of the vector with lowest occurrence in
69: -- vec(start..vec'last).
70: -- The second function does not consider a number of columns
71: -- equal to col and applies Lowest_Occurrence to the columns
72: -- perm(j) for j in col+1..m'last(2).
73:
74: -- CONSTRUCTORS :
75:
76: function Sort ( l : List; m : Matrix ) return List;
77: procedure Sort ( l : in out List; m : in Matrix );
78:
79: -- DESCRIPTION :
80: -- Sorts the points in the list l, so that on return,
81: -- the points are ordered, from low to high occurrence.
82:
83: function Sort ( l : List; m : Matrix;
84: col : natural; perm : vector ) return List;
85: procedure Sort ( l : in out List; m : in Matrix;
86: col : in natural; perm : in vector );
87:
88: -- DESCRIPTION :
89: -- Sorts the points in the list l, so that on return,
90: -- the points are ordered, from low to high occurrence.
91: -- Only the columns perm(j), for j in col+1..m'last(2) will be
92: -- considered when computing the occurrences.
93:
94: end Frequency_Graph;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>