[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

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>