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>