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

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/contributions_to_mixed_volume.ads, Revision 1.1

1.1     ! maekawa     1: with Standard_Integer_Vectors;           use Standard_Integer_Vectors;
        !             2: with Arrays_of_Integer_Vector_Lists;     use Arrays_of_Integer_Vector_Lists;
        !             3: with Integer_Faces_of_Polytope;          use Integer_Faces_of_Polytope;
        !             4:
        !             5: package Contributions_to_Mixed_Volume is
        !             6:
        !             7: -- DESCRIPTION :
        !             8: --   This package provides utilities to determine whether a point
        !             9: --   contributes to the mixed volume of a tuple of point sets, i.e.: whether
        !            10: --   it can be removed of the tuple without decreasing the mixed volume.
        !            11:
        !            12: -- THE CRITERION : (simple/exhaustive)
        !            13:
        !            14:   function Simple_Zero_Contribution
        !            15:                ( pts : Array_of_Lists;
        !            16:                  x : Vector; i : natural ) return boolean;
        !            17:
        !            18:   function Simple_Zero_Contribution
        !            19:                ( pts : Array_of_Lists; ifacets : Faces;
        !            20:                  x : Vector; i : natural ) return boolean;
        !            21:
        !            22:   function Exhaustive_Zero_Contribution
        !            23:                ( pts : Array_of_Lists;
        !            24:                  x : Vector; i : natural ) return boolean;
        !            25:
        !            26:   function Exhaustive_Zero_Contribution
        !            27:                ( pts : Array_of_Lists; ifacets : Faces;
        !            28:                  x : Vector; i : natural ) return boolean;
        !            29:
        !            30:   -- DESCRIPTION :
        !            31:   --   Returns true if the point x does not influence the mixed volume of
        !            32:   --   the tuple pts, when considered w.r.t. the ith component.
        !            33:   --   There is a simple and an exhaustive criterion to check the contribution
        !            34:   --   of the point.  When the simple criterion returns false, the point does
        !            35:   --   not necessarily make a contribution to the mixed volume, whereas when
        !            36:   --   the exhaustive criterion returns false, we can be sure that the point
        !            37:   --   contributes to the mixed volume.
        !            38:
        !            39:   -- ON ENTRY :
        !            40:   --   pts       tuple of points sets, with dimension = x'length;
        !            41:   --   ifacets   all facets of the polytope spanned by pts(i), that contain x;
        !            42:   --   x         a point, considered w.r.t. pts(i);
        !            43:   --   i         component of pts, i is in pts'range.
        !            44:
        !            45:   -- ON RETURN :
        !            46:   --   true      if Mixed_Volume(pts) = Mixed_Volume(pts, pts(i) contains x);
        !            47:   --   false     when the criterion fails to decide.
        !            48:
        !            49: -- SWEEPING THROUGH THE POINT LISTS : (with simple/exhaustive criterion)
        !            50:
        !            51:   function Simple_Sweep ( pts : Array_of_Lists ) return Array_of_Lists;
        !            52:
        !            53:   function Simple_Sweep ( pts : Array_of_Lists; facets : Array_of_Faces )
        !            54:                         return Array_of_Lists;
        !            55:
        !            56:   function Exhaustive_Sweep ( pts : Array_of_Lists ) return Array_of_Lists;
        !            57:
        !            58:   function Exhaustive_Sweep ( pts : Array_of_Lists; facets : Array_of_Faces )
        !            59:                             return Array_of_Lists;
        !            60:
        !            61:   -- DESCRIPTION :
        !            62:   --   Applies the simple/exhaustive criterion to the points.
        !            63:   --   Returns those points for which the criterion has failed to
        !            64:   --   demonstrate that the contribution to the mixed volume was zero.
        !            65:
        !            66:   -- ON ENTRY :
        !            67:   --   pts       tuple of point sets;
        !            68:   --   facets    tuple of facets of the polytopes spanned by pts,
        !            69:   --             facets'range = pts'range.
        !            70:
        !            71:   -- ON RETURN :
        !            72:   --   A tuple of point sets where the points that do not contribute to the
        !            73:   --   mixed volume have been eliminated, according to the simple or exhaustive
        !            74:   --   criterion that has been used.
        !            75:   --   Note that essential sets are not necessarily unique, because they depend
        !            76:   --   on the order in which points with zero contribution are eliminated.
        !            77:
        !            78: end Contributions_to_Mixed_Volume;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>