Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/integer_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_Complex_VecVecs;
4: with Standard_Complex_Laur_Systems; use Standard_Complex_Laur_Systems;
5: with Standard_Complex_Laur_SysFun; use Standard_Complex_Laur_SysFun;
6: with Standard_Complex_Laur_Jacomats; use Standard_Complex_Laur_Jacomats;
7: with Exponent_Vectors; use Exponent_Vectors;
8: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
9: with Standard_Complex_Solutions; use Standard_Complex_Solutions;
10: with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
11:
12: package Integer_Polyhedral_Continuation is
13:
14: -- DESCRIPTION :
15: -- This package implements polyhedral homotopy continuation methods,
16: -- based on mixed subdivision induced by integer-valued lifting.
17: -- The continuation is organized in three layers:
18: -- 1. inner normal, tracking of paths for one poly
19: -- 2. mixed cell, recursion is needed when the cell is not fine;
20: -- 3. mixed subdivision, for all cells in the subdivision.
21: -- Each layer has four versions: all combinations of
22: -- 1. homotopy as polynomial system or coefficient homotopy;
23: -- 2. silent and reporting version.
24:
25: -- FIRST LAYER : polyhedral continuation for one transformation.
26:
27: procedure Mixed_Continuation
28: ( p : in Laur_Sys; normal : in Vector;
29: sols : in out Solution_List );
30:
31: procedure Mixed_Continuation
32: ( file : in file_type; p : in Laur_Sys;
33: normal : in Vector; sols : in out Solution_List );
34:
35: -- DESCRIPTION :
36: -- Polyhedral continuation for transformed polyhedral homotopy.
37:
38: -- ON ENTRY :
39: -- file file to write intermediate results on;
40: -- p a transformed lifted Laurent polynomial system;
41: -- normal normal to a mixed cell;
42: -- sols start solutions of the subsystem which corresponds
43: -- with the mixed cell with given inner normal.
44:
45: -- ON RETURN :
46: -- sols the solutions of p, which correspond to one mixed cell.
47:
48: procedure Mixed_Continuation
49: ( mix : in Standard_Integer_Vectors.Vector;
50: lifted : in Array_of_Lists; h : in Eval_Coeff_Laur_Sys;
51: c : in Standard_Complex_VecVecs.VecVec;
52: e : in Exponent_Vectors_Array;
53: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
54: normal : in Vector; sols : in out Solution_List );
55:
56: procedure Mixed_Continuation
57: ( file : in file_type; mix : in Standard_Integer_Vectors.Vector;
58: lifted : in Array_of_Lists; h : in Eval_Coeff_Laur_Sys;
59: c : in Standard_Complex_VecVecs.VecVec;
60: e : in Exponent_Vectors_Array;
61: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
62: normal : in Vector; sols : in out Solution_List );
63:
64: -- DESCRIPTION : polyhedral continuation with coefficient homotopy.
65:
66: -- ON ENTRY :
67: -- file file to write intermediate results on;
68: -- mix type of mixture;
69: -- lifted lifted supports of polynomial system, in original order;
70: -- h coefficient homotopy;
71: -- c coefficients of homotopy;
72: -- e the exponent vectors of the unlifted system;
73: -- j coefficient Jacobian matrix;
74: -- m multiplication factors in coefficient Jacobian matrix;
75: -- normal normal to a mixed cell;
76: -- sols start solutions of the subsystem which corresponds
77: -- with the mixed cell with given inner normal.
78:
79: -- ON RETURN :
80: -- sols the solutions of p, which correspond to one mixed cell.
81:
82: -- SECOND LAYER : polyhedral continuaton for one mixed cell.
83:
84: procedure Mixed_Solve
85: ( p : in Laur_Sys; mix : in Vector;
86: mic : in Mixed_Cell; sols,sols_last : in out Solution_List );
87:
88: procedure Mixed_Solve
89: ( file : in file_type; p : in Laur_Sys; mix : in Vector;
90: mic : in Mixed_Cell; sols,sols_last : in out Solution_List );
91:
92: -- DESCRIPTION :
93: -- Polyhedral continuation for one mixed cell.
94:
95: -- REQUIRED : polynomials in p must be ordered according to mix.
96:
97: -- ON ENTRY :
98: -- file a file to write intermediate results on;
99: -- p a lifted Laurent polynomial system;
100: -- mix type of mixture;
101: -- mic a mixed cell;
102:
103: -- ON RETURN :
104: -- sols the solution list of p;
105: -- sols_last pointer to last element of the list sols.
106:
107: procedure Mixed_Solve
108: ( p : in Laur_Sys; lifted : in Array_of_Lists;
109: h : in Eval_Coeff_Laur_Sys;
110: c : in Standard_Complex_VecVecs.VecVec;
111: e : in Exponent_Vectors_Array;
112: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
113: mix : in Vector; mic : in Mixed_Cell;
114: sols,sols_last : in out Solution_List );
115:
116: procedure Mixed_Solve
117: ( file : in file_type;
118: p : in Laur_Sys; lifted : in Array_of_Lists;
119: h : in Eval_Coeff_Laur_Sys;
120: c : in Standard_Complex_VecVecs.VecVec;
121: e : in Exponent_Vectors_Array;
122: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
123: mix : in Vector; mic : in Mixed_Cell;
124: sols,sols_last : in out Solution_List );
125:
126: -- DESCRIPTION :
127: -- Polyhedral coefficient-homotopy continuation for one mixed cell.
128:
129: -- REQUIRED : polynomials in p must be ordered according to mix.
130:
131: -- ON ENTRY :
132: -- file a file to write intermediate results on;
133: -- p a lifted Laurent polynomial system;
134: -- lifted lifted supports, with original order of points;
135: -- h coefficient homotopy;
136: -- c coefficients of homotopy;
137: -- e the exponent vectors of the unlifted system;
138: -- j coefficient Jacobian matrix;
139: -- m multiplication factors in coefficient Jacobian matrix;
140: -- mix type of mixture;
141: -- mic a mixed cell.
142:
143: -- ON RETURN :
144: -- sols the solution list of p;
145: -- sols_last pointer to last element of the list sols.
146:
147: -- THIRD LAYER : polyhedral continuation for a mixed subdivision.
148:
149: procedure Mixed_Solve
150: ( p : in Laur_Sys;
151: mix : in Vector; mixsub : in Mixed_Subdivision;
152: sols : in out Solution_List );
153:
154: procedure Mixed_Solve
155: ( file : in file_type; p : in Laur_Sys;
156: mix : in Vector; mixsub : in Mixed_Subdivision;
157: sols : in out Solution_List );
158:
159: -- DESCRIPTION :
160: -- Polyhedral coefficient-homotopy continuation for a mixed subdivision.
161:
162: -- REQUIRED : polynomials in p must be ordered according to mix.
163:
164: -- ON ENTRY :
165: -- file a file to write intermediate results on;
166: -- p a lifted Laurent polynomial system;
167: -- mix type of mixture;
168: -- mixsub a collection of mixed cells.
169:
170: -- ON RETURN :
171: -- sols the solution list of p.
172:
173: procedure Mixed_Solve
174: ( p : in Laur_Sys; lifted : in Array_of_Lists;
175: h : in Eval_Coeff_Laur_Sys;
176: c : in Standard_Complex_VecVecs.VecVec;
177: e : in Exponent_Vectors_Array;
178: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
179: mix : in Vector; mixsub : in Mixed_Subdivision;
180: sols : in out Solution_List );
181:
182: procedure Mixed_Solve
183: ( file : in file_type;
184: p : in Laur_Sys; lifted : in Array_of_Lists;
185: h : in Eval_Coeff_Laur_Sys;
186: c : in Standard_Complex_VecVecs.VecVec;
187: e : in Exponent_Vectors_Array;
188: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
189: mix : in Vector; mixsub : in Mixed_Subdivision;
190: sols : in out Solution_List );
191:
192: -- DESCRIPTION :
193: -- Polyhedral coefficient-homotopy continuation for a mixed subdivision.
194:
195: -- REQUIRED : polynomials in p must be ordered according to mix.
196:
197: -- ON ENTRY :
198: -- file a file to write intermediate results on;
199: -- p a lifted Laurent polynomial system;
200: -- lifted lifted supports, in original order;
201: -- h coefficient homotopy;
202: -- c coefficients of homotopy;
203: -- e the exponent vectors of the unlifted system;
204: -- j coefficient Jacobian matrix;
205: -- m multiplication factors in coefficient Jacobian matrix;
206: -- mix type of mixture;
207: -- mixsub a collection of mixed cells.
208:
209: -- ON RETURN :
210: -- sols the solution list of p.
211:
212: end Integer_Polyhedral_Continuation;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>