Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Dynlift/dynamic_polyhedral_continuation.ads, Revision 1.1.1.1
1.1 maekawa 1: with text_io; use text_io;
2: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
3: with Standard_Floating_Vectors;
4: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
5: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
6: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
7: with Standard_Complex_Solutions; use Standard_Complex_Solutions;
8: with Triangulations; use Triangulations;
9: with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
10: with Dynamic_Mixed_Subdivisions; use Dynamic_Mixed_Subdivisions;
11:
12: package Dynamic_Polyhedral_Continuation is
13:
14: -- DESCRIPTION :
15: -- This package contains the utilities for polyhedral continuation,
16: -- to apply in combination with the dynamic lifting algorithm.
17:
18: procedure Dynamic_Unmixed_Solve
19: ( file : in file_type; n : in natural;
20: l : in List; order,inter : in boolean; maxli : in natural;
21: lifted,lifted_last : in out List; t : in out Triangulation;
22: q : in Poly_Sys; qsols : in out Solution_List );
23:
24: -- DESCRIPTION :
25: -- Application of the dynamic lifting algorithm to the unmixed
26: -- polynomial system q.
27:
28: -- ON ENTRY :
29: -- file a file to write intermediate results on;
30: -- n dimension before lifting;
31: -- l list of integer vectors of length n;
32: -- order if true, then the points are already ordered and will
33: -- be processed like they occur in the list,
34: -- if false, then a random order will be chosen;
35: -- inter if true, then the list may contain interior points,
36: -- i.e. points x in conv(l\{x}),
37: -- if false, no interior points occur in the list;
38: -- maxli maximum value of the lifting function,
39: -- if = 0, then no flattening will be applied,
40: -- if > 0, then no points will be given a lifting value
41: -- larger than maxli, eventually flattening will be applied;
42: -- lifted points that already have been lifted;
43: -- lifted_last is pointer to the last element of the list lifted;
44: -- t contains a triangulation of the lifted points;
45: -- q a polynomial system with randomly chosen coefficients,
46: -- the lists of exponent vectors of q equals the list l.
47:
48: -- ON RETURN :
49: -- lifted the lifted points;
50: -- t a regular triangulation of the points in l;
51: -- qsols the solutions of q.
52:
53: procedure Dynamic_Cayley_Solve
54: ( file : in file_type; n : in natural; mix : in Vector;
55: supports : in Array_of_Lists; order,inter : in boolean;
56: maxli : in natural; lifted : in out Array_of_Lists;
57: mixsub : in out Mixed_Subdivision; numtri : out natural;
58: q : in Poly_Sys; qsols : in out Solution_List );
59:
60: -- DESCRIPTION :
61: -- Application of the dynamic lifting algorithm to the Cayley trick.
62:
63: -- ON ENTRY :
64: -- file a file to write intermediate results on;
65: -- n length of the vectors in the supports;
66: -- mix type of mixture;
67: -- supports lists of integer vector of length n;
68: -- order if true, then the points are already ordered and will
69: -- be processed like they occur in the list,
70: -- if false, then a random order will be chosen;
71: -- inter if true, then the list may contain interior points,
72: -- i.e. points x in conv(l\{x}),
73: -- if false, no interior points occur in the list;
74: -- maxli maximum value of the lifting function,
75: -- if = 0, then no flattening will be applied,
76: -- i.e. there is no maximum lifting value,
77: -- if > 0, then no points will be given a lifting value
78: -- greater than maxli;
79: -- q a polynomial system with randomly chosen coefficients,
80: -- the lists of exponent vectors of q equals the given supports.
81:
82: -- ON RETURN :
83: -- lifted the lifted supports;
84: -- mixsub the mixed subdivision;
85: -- numtri number of simplices in the triangulation of the
86: -- auxiliary polytope,
87: -- qsols the solutions of q.
88:
89: procedure Dynamic_Mixed_Solve
90: ( file : in file_type; n : in natural; mix : in Vector;
91: supports : in Array_of_Lists; order,inter,conmv : in boolean;
92: maxli : in natural; mixsub : in out Mixed_Subdivision;
93: fs : in out Face_Structures;
94: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
95: q : in Poly_Sys; qsols : in out Solution_List );
96:
97: -- DESCRIPTION :
98: -- Application of the dynamic lifting algorithm to a tuple of supports,
99: -- by the lift-and-prune algorithm.
100:
101: -- ON ENTRY :
102: -- file a file to write intermediate results on;
103: -- n length of the vectors in the supports;
104: -- mix type of mixture;
105: -- supports lists of integer vector of length n;
106: -- order if true, then the points are already ordered and will
107: -- be processed like they occur in the list,
108: -- if false, then a random order will be chosen;
109: -- inter if true, then the list may contain interior points,
110: -- i.e. points x in conv(l\{x}),
111: -- if false, no interior points occur in the list;
112: -- conmv if true, then online checks on zero contributions will
113: -- be made, otherwise this will not happen;
114: -- maxli maximum value of the lifting function,
115: -- if = 0, then no flattening will be applied,
116: -- if > 0, then no points will be given a lifting value
117: -- larger than maxli, eventually flattening will be applied;
118: -- mixsub regular mixed subdivision of the lifted points;
119: -- fs the face structures of the lower hulls of the lifted
120: -- points, necessary to re-start the algorithm efficiently;
121: -- nbsucc number of successful face-face combinations;
122: -- nbfail number of unsuccessful face-face combinations.
123: -- q a polynomial system with randomly chosen coefficients,
124: -- the lists of exponent vectors of q equals the given supports.
125:
126: -- ON RETURN :
127: -- mixsub regular mixed subdivision of the lifted points;
128: -- fs face structures of the updated lower hulls;
129: -- nbsucc updated number of successful face-face combinations;
130: -- nbfail updated number of unsuccessful face-face combinations;
131: -- qsols the solutions of q.
132:
133: end Dynamic_Polyhedral_Continuation;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>