Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/floating_polyhedral_continuation.ads, Revision 1.1.1.1
1.1 maekawa 1: with text_io; use text_io;
2: with Standard_Integer_Vectors;
3: with Standard_Floating_Vectors;
4: with Standard_Complex_VecVecs;
5: with Standard_Complex_Laur_Systems; use Standard_Complex_Laur_Systems;
6: with Standard_Complex_Laur_SysFun; use Standard_Complex_Laur_SysFun;
7: with Standard_Complex_Laur_Jacomats; use Standard_Complex_Laur_Jacomats;
8: with Exponent_Vectors; use Exponent_Vectors;
9: with Arrays_of_Floating_Vector_Lists; use Arrays_of_Floating_Vector_Lists;
10: with Standard_Complex_Solutions; use Standard_Complex_Solutions;
11: with Floating_Mixed_Subdivisions; use Floating_Mixed_Subdivisions;
12:
13: package Floating_Polyhedral_Continuation is
14:
15: -- DESCRIPTION :
16: -- This package implements polyhedral homotopy continuation methods,
17: -- based on mixed subdivision induced by floating-point lifting.
18: -- The continuation is organized in three layers:
19: -- 1. inner normal, tracking of paths for one poly
20: -- 2. mixed cell, recursion is needed when the cell is not fine;
21: -- 3. mixed subdivision, for all cells in the subdivision.
22: -- Each layer has two versions: a silent and a reporting version.
23:
24: -- FIRST LAYER : polyhedral continuation for one transformation.
25:
26: procedure Mixed_Continuation
27: ( mix : in Standard_Integer_Vectors.Vector;
28: lifted : in Array_of_Lists; h : in Eval_Coeff_Laur_Sys;
29: c : in Standard_Complex_VecVecs.VecVec;
30: e : in Exponent_Vectors_Array;
31: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
32: normal : in Standard_Floating_Vectors.Vector;
33: sols : in out Solution_List );
34:
35: procedure Mixed_Continuation
36: ( file : in file_type;
37: mix : in Standard_Integer_Vectors.Vector;
38: lifted : in Array_of_Lists; h : in Eval_Coeff_Laur_Sys;
39: c : in Standard_Complex_VecVecs.VecVec;
40: e : in Exponent_Vectors_Array;
41: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
42: normal : in Standard_Floating_Vectors.Vector;
43: sols : in out Solution_List );
44:
45: -- DESCRIPTION : polyhedral continuation with coefficient homotopy.
46:
47: -- ON ENTRY :
48: -- file file to write intermediate results on;
49: -- mix type of mixture;
50: -- lifted lifted supports of polynomial system, in original order;
51: -- h coefficient homotopy;
52: -- c coefficients of homotopy;
53: -- e the exponent vectors of the unlifted system;
54: -- j coefficient Jacobian matrix;
55: -- m multiplication factors in coefficient Jacobian matrix;
56: -- normal normal to a mixed cell;
57: -- sols start solutions of the subsystem which corresponds
58: -- with the mixed cell with given inner normal.
59:
60: -- ON RETURN :
61: -- sols the solutions of p, which correspond to one mixed cell.
62:
63: -- SECOND LAYER : polyhedral continuaton for one mixed cell.
64:
65: procedure Mixed_Solve
66: ( p : in Laur_Sys; lifted : in Array_of_Lists;
67: h : in Eval_Coeff_Laur_Sys;
68: c : in Standard_Complex_VecVecs.VecVec;
69: e : in Exponent_Vectors_Array;
70: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
71: mix : in Standard_Integer_Vectors.Vector;
72: mic : in Mixed_Cell;
73: sols,sols_last : in out Solution_List );
74:
75: procedure Mixed_Solve
76: ( file : in file_type;
77: p : in Laur_Sys; lifted : in Array_of_Lists;
78: h : in Eval_Coeff_Laur_Sys;
79: c : in Standard_Complex_VecVecs.VecVec;
80: e : in Exponent_Vectors_Array;
81: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
82: mix : in Standard_Integer_Vectors.Vector;
83: mic : in Mixed_Cell;
84: sols,sols_last : in out Solution_List );
85:
86: -- DESCRIPTION :
87: -- Polyhedral coefficient-homotopy continuation for one mixed cell.
88:
89: -- REQUIRED : polynomials in p must be ordered according to mix.
90:
91: -- ON ENTRY :
92: -- file a file to write intermediate results on;
93: -- p non-lifted Laurent polynomial system;
94: -- lifted lifted supports, with original order of points;
95: -- h coefficient homotopy;
96: -- c coefficients of homotopy;
97: -- e the exponent vectors of the unlifted system;
98: -- j coefficient Jacobian matrix;
99: -- m multiplication factors in coefficient Jacobian matrix;
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: -- THIRD LAYER : polyhedral continuation for a mixed subdivision.
108:
109: procedure Mixed_Solve
110: ( p : in Laur_Sys; lifted : in Array_of_Lists;
111: h : in Eval_Coeff_Laur_Sys;
112: c : in Standard_Complex_VecVecs.VecVec;
113: e : in Exponent_Vectors_Array;
114: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
115: mix : in Standard_Integer_Vectors.Vector;
116: mixsub : in Mixed_Subdivision;
117: sols : in out Solution_List );
118:
119: procedure Mixed_Solve
120: ( file : in file_type;
121: p : in Laur_Sys; lifted : in Array_of_Lists;
122: h : in Eval_Coeff_Laur_Sys;
123: c : in Standard_Complex_VecVecs.VecVec;
124: e : in Exponent_Vectors_Array;
125: j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
126: mix : in Standard_Integer_Vectors.Vector;
127: mixsub : in Mixed_Subdivision;
128: sols : in out Solution_List );
129:
130: -- DESCRIPTION :
131: -- Polyhedral coefficient-homotopy continuation for a mixed subdivision.
132:
133: -- REQUIRED : polynomials in p must be ordered according to mix.
134:
135: -- ON ENTRY :
136: -- file a file to write intermediate results on;
137: -- p non-lifted Laurent polynomial system;
138: -- lifted lifted supports, in original order;
139: -- h coefficient homotopy;
140: -- c coefficients of homotopy;
141: -- e the exponent vectors of the unlifted system;
142: -- j coefficient Jacobian matrix;
143: -- m multiplication factors in coefficient Jacobian matrix;
144: -- mix type of mixture;
145: -- mixsub a collection of mixed cells.
146:
147: -- ON RETURN :
148: -- sols the solution list of p.
149:
150: end Floating_Polyhedral_Continuation;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>