[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     ! 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>