Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Dynlift/face_structures.ads, Revision 1.1.1.1
1.1 maekawa 1: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
2: with Integer_Faces_of_Polytope; use Integer_Faces_of_Polytope;
3: with Triangulations; use Triangulations;
4:
5: package Face_Structures is
6:
7: -- DESCRIPTION :
8: -- This package offers a data abstraction to work with face
9: -- structures of tuples of polytopes.
10:
11: -- DATA STRUCTURES :
12:
13: type Face_Structure is record
14: l,last : List; -- l contains the lifted points of the faces,
15: -- last is a pointer to the last element of l
16: t : Triangulation; -- triangulation of the points in l
17: f : Faces; -- k-faces of conv(l)
18: end record;
19: type Array_of_Face_Structures is array(integer range <>) of Face_Structure;
20:
21: -- CONSTRUCTOR :
22:
23: procedure Compute_New_Faces
24: ( fs : in out Face_Structure; k,n : in natural;
25: point : in out Link_to_Vector; newfs : out Faces );
26:
27: -- DESCRIPTION :
28: -- Given a point, the new faces will be computed and returned.
29:
30: -- ON ENTRY :
31: -- fs a face structure;
32: -- k dimension of the faces to generate;
33: -- n dimension without the lifting;
34: -- point point that has to be in all the faces.
35:
36: -- ON RETURN :
37: -- fs face structure with updated triangulation,
38: -- the new faces are not added, also the list is not updated;
39: -- point lifted conservatively w.r.t. fs.t;
40: -- newfs k-faces, which all contain the given point.
41:
42: -- FLATTENING OPERATIONS :
43:
44: procedure Flatten ( l : in out List );
45: procedure Flatten ( f : in out Face );
46: procedure Flatten ( fs : in out Faces );
47: procedure Flatten ( fs : in out Face_Structure );
48: procedure Flatten ( fs : in out Array_of_Face_Structures );
49:
50: -- DESCRIPTION :
51: -- These operations are use to flatten face structures.
52:
53: -- SELECTORS :
54:
55: function Is_In ( fs : Face_Structure; point : vector ) return boolean;
56:
57: -- DESCRIPTION :
58: -- Returns true if the point belongs to the face structure.
59:
60: -- DESTRUCTORS :
61:
62: procedure Deep_Clear ( fs : in out Face_Structure );
63: procedure Shallow_Clear ( fs : in out Face_Structure );
64: procedure Deep_Clear ( fs : in out Array_of_Face_Structures );
65: procedure Shallow_Clear ( fs : in out Array_of_Face_Structures );
66:
67: end Face_Structures;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>