Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/mixed_coherent_subdivisions.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 Standard_Integer_VecVecs; use Standard_Integer_VecVecs;
4: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
5: with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
6: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
7:
8: package Mixed_Coherent_Subdivisions is
9:
10: -- DESCRIPTION :
11: -- A number of routines for constructing a mixed coherent subdivision
12: -- are offered, each with a different type of lifting function.
13:
14: -- a polynomial system as lifting function :
15:
16: function Mixed_Coherent_Subdivision
17: ( n : natural; mix : Vector; points : Array_of_Lists;
18: lift : Poly_Sys ) return Mixed_Subdivision;
19:
20: procedure Mixed_Coherent_Subdivision
21: ( n : in natural; mix : in Vector; points : in Array_of_Lists;
22: lift : in Poly_Sys; lifted : in out Array_of_Lists;
23: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
24: mixsub : out Mixed_Subdivision );
25:
26: -- a user-defined lifting function :
27:
28: function Mixed_Coherent_Subdivision
29: ( n : natural; mix : Vector; points : Array_of_Lists;
30: linear : boolean; lift : VecVec ) return Mixed_Subdivision;
31:
32: procedure Mixed_Coherent_Subdivision
33: ( n : in natural; mix : in Vector; points : in Array_of_Lists;
34: linear : in boolean; lift : in VecVec;
35: lifted : in out Array_of_Lists;
36: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
37: mixsub : out Mixed_Subdivision );
38:
39: -- a randomly generated lifting function :
40:
41: function Mixed_Coherent_Subdivision
42: ( n : natural; mix : Vector; points : Array_of_Lists;
43: linear : boolean; low,upp : Vector )
44: return Mixed_Subdivision;
45:
46: procedure Mixed_Coherent_Subdivision
47: ( n : in natural; mix : in Vector; points : in Array_of_Lists;
48: linear : in boolean; low,upp : in Vector;
49: lifted : in out Array_of_Lists;
50: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
51: mixsub : out Mixed_Subdivision );
52:
53: -- DESCRIPTION :
54: -- Given a set of points and a lifting function,
55: -- a subdivision of the polytope will be computed.
56:
57: -- ON ENTRY :
58: -- n the dimension of the vector space;
59: -- mix mix(k) indicates how many times the kth point set occurs;
60: -- points an array of all different point sets;
61: -- linear indicates wether a linear lifting should be used;
62: -- lift an array of lifting polynomials or an m dimensional
63: -- array of vectors, where the length of the kth vector
64: -- must equal the length of the kth support,
65: -- when nonlinear, otherwise the length equals n.
66: -- low,upp lower and upper bounds for random lifting.
67:
68: -- ON RETURN :
69: -- lifted the lifted points which can later be used for lifting
70: -- the polynomial system;
71: -- nbsucc the number of successful face-face combinations that
72: -- have been computed;
73: -- nbfail the number of unsuccessful face-face combinations;
74: -- mixsub the mixed subdivision of the polytope, defined as
75: -- lower hull of the lifted points.
76:
77: end Mixed_Coherent_Subdivisions;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>