[BACK]Return to face_structures.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Dynlift

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>