Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Dynlift/triangulations.ads, Revision 1.1.1.1
1.1 maekawa 1: with Generic_Lists;
2: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
3: with Standard_Integer_VecVecs; use Standard_Integer_VecVecs;
4: with Simplices; use Simplices;
5:
6: package Triangulations is
7:
8: -- DESCRIPTION :
9: -- This package exports a data structure for dealing with regular
10: -- triangulations of Newton polytopes.
11:
12: -- DATA STRUCTURE :
13:
14: package Lists_of_Simplices is new Generic_Lists(Simplex);
15: type Triangulation is new Lists_of_Simplices.List;
16:
17: Null_Triangulation : constant Triangulation
18: := Triangulation(Lists_of_Simplices.Null_List);
19:
20: -- CREATORS :
21:
22: function Create ( s : Simplex ) return Triangulation;
23:
24: -- DESCRIPTION :
25: -- Returns a trianguation with one simplex.
26:
27: procedure Update ( t : in out Triangulation; x : in Link_to_Vector );
28: procedure Update ( t : in out Triangulation; x : in Link_to_Vector;
29: newt : out Triangulation );
30:
31: -- DESCRIPTION :
32: -- Computes new simplices which contain x, stores them in newt,
33: -- and adds them to the triangulation.
34:
35: procedure Update_One ( t : in out Triangulation; x : in Link_to_Vector );
36:
37: -- DESCRIPTION :
38: -- Computes new simplices that contain x and adds them
39: -- to the triangulation.
40: -- Hereby it will be assumed that adding x causes no points of t to be
41: -- interior.
42:
43: procedure Connect ( t : in out Triangulation );
44:
45: -- DESCRIPTION ;
46: -- Given a collection of simplices, the appropiate connections
47: -- between the simplices will be computed and made.
48:
49: procedure Flatten ( t : in out Triangulation );
50:
51: -- DESCRIPTION :
52: -- All simplices in t will be flattened.
53:
54: -- REQUIRED :
55: -- Cells that are already flattened are grouped at the end of the list.
56:
57: -- SELECTORS :
58:
59: function Is_Vertex ( t : Triangulation; x : Vector ) return boolean;
60:
61: -- DESCRIPTION :
62: -- Returns true if the given vector x is a vertex of one of
63: -- the simplices in t.
64:
65: function Vertices ( t : Triangulation ) return VecVec;
66:
67: -- DESCRIPTION :
68: -- Returns a vector with all vertices of the simplices in t.
69:
70: function Vertices ( t : Triangulation; x : Vector ) return VecVec;
71:
72: -- DESCRIPTION :
73: -- Returns a vector with all vertices of the simplices in t,
74: -- which contain the given vector x.
75:
76: function Is_In ( t : Triangulation; x : Vector ) return boolean;
77:
78: -- DESCRIPTION :
79: -- Returns true if the point x belongs to one of the simplices in t.
80:
81: function Is_In ( t : Triangulation; x : Vector ) return Simplex;
82:
83: -- DESCRIPTION :
84: -- If the point belongs to one of the simplices in t, then this
85: -- simplex is returned, otherwise, the Null_Simplex is returned.
86:
87: function Is_In ( t : Triangulation; s : Simplex ) return boolean;
88:
89: -- DESCRIPTION :
90: -- Returns true if the simplex s is contained in t.
91:
92: function Volume ( t : Triangulation ) return natural;
93:
94: -- DESCRIPTION :
95: -- Computes n! times the volume of the simplices in the triangulation.
96:
97: -- DESTRUCTOR :
98:
99: procedure Clear ( t : in out Triangulation );
100:
101: -- DESCRIPTION :
102: -- Frees the allocated memory space.
103:
104: end Triangulations;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>