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

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/integer_pruning_methods.ads, Revision 1.1.1.1

1.1       maekawa     1: with Standard_Integer_Vectors;           use Standard_Integer_Vectors;
                      2: with Standard_Floating_Vectors;
                      3: with Lists_of_Integer_Vectors;           use Lists_of_Integer_Vectors;
                      4: with Arrays_of_Integer_Vector_Lists;     use Arrays_of_Integer_Vector_Lists;
                      5: with Integer_Faces_of_Polytope;          use Integer_Faces_of_Polytope;
                      6: with Integer_Mixed_Subdivisions;         use Integer_Mixed_Subdivisions;
                      7:
                      8: package Integer_Pruning_Methods is
                      9:
                     10: -- DESCRIPTION :
                     11: --   This package contains the creators of a regular mixed subdivision,
                     12: --   based on the static lifting algorithm, for computing only those cells
                     13: --   of a certain type, in particular the mixed cells.
                     14: --   There are facilities for computing only the generating cells and for
                     15: --   computing only the stable mixed cells.
                     16:
                     17:   generic
                     18:
                     19:     with procedure Process ( mic : in Mixed_Cell; continue : out boolean );
                     20:
                     21:     -- DESCRIPTION :
                     22:     --   This procedure will be invoked after each computation of a new cell.
                     23:     --   If the parameter continue is set on false, then the computation will
                     24:     --   be stopped, otherwise the creation continues.
                     25:
                     26:   procedure Gen1_Create_CS
                     27:                ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
                     28:                  lifted : in Array_of_Lists;
                     29:                  nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
                     30:                  mixsub : out Mixed_Subdivision );
                     31:
                     32:   procedure Create_CS
                     33:                ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
                     34:                  lifted : in Array_of_Lists;
                     35:                  nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
                     36:                  mixsub : out Mixed_Subdivision );
                     37:
                     38:   -- DESCRIPTION :
                     39:   --   Creates a mixed subdivision with a criterium to check which
                     40:   --   face-face combinations can lead to a cell which contributes to
                     41:   --   the mixed volume.
                     42:
                     43:   -- ON ENTRY :
                     44:   --   n         dimension before lifting;
                     45:   --   mix       type of mixture: indicates how many times each polytope
                     46:   --             occurs in the supports;
                     47:   --   fa        faces of the lower hull of the lifted point sets:
                     48:   --              fa(i) contains the mix(i)-faces of conv(lifted(i));
                     49:   --   lifted    the lifted points;
                     50:
                     51:   -- ON RETURN :
                     52:   --   nbsucc    number of times a face-face combination has passed the test,
                     53:   --             at each level;
                     54:   --   nbfail    number of times a face-face combinations has failed to pass
                     55:   --             the test, at each level;
                     56:   --   mixsub    collection of cells which contribute to the mixed volume.
                     57:
                     58:   procedure New_Create_CS
                     59:                ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
                     60:                  lifted : in Array_of_Lists;
                     61:                  nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
                     62:                  mixsub : out Mixed_Subdivision );
                     63:
                     64:   -- DESCRIPTION :
                     65:   --   Does the same at the Create_CS, only with a new pruning method.
                     66:
                     67:   procedure Create_CCS
                     68:                ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
                     69:                  lifted : in Array_of_Lists;
                     70:                  nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
                     71:                  normals,suppvals : in out List;
                     72:                  mixsub : out Mixed_Subdivision );
                     73:
                     74:   -- DESCRIPTION :
                     75:   --   Construction of the mixed subdivision by constraint complementary
                     76:   --   slackness: faces supported by the list of normals pass freely.
                     77:   --   This list of normals is updated each time new mixed cells are found.
                     78:   --   Following are the descriptions of the new parameters.
                     79:
                     80:   -- ON ENTRY :
                     81:   --   normals   list of inner normals on the lower hull of the lifted points;
                     82:   --   suppvals  corresponding vectors which contain the supporting values
                     83:   --             for each component.
                     84:
                     85:   -- ON RETURN :
                     86:   --   normals   contains the inner normals of the mixed cells;
                     87:   --   suppvals  corresponding vectors of support values.
                     88:
                     89: end Integer_Pruning_Methods;

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