with Standard_Integer_Vectors; use Standard_Integer_Vectors; with Standard_Floating_Vectors; with Standard_Integer_VecVecs; use Standard_Integer_VecVecs; with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists; with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions; with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems; package Mixed_Coherent_Subdivisions is -- DESCRIPTION : -- A number of routines for constructing a mixed coherent subdivision -- are offered, each with a different type of lifting function. -- a polynomial system as lifting function : function Mixed_Coherent_Subdivision ( n : natural; mix : Vector; points : Array_of_Lists; lift : Poly_Sys ) return Mixed_Subdivision; procedure Mixed_Coherent_Subdivision ( n : in natural; mix : in Vector; points : in Array_of_Lists; lift : in Poly_Sys; lifted : in out Array_of_Lists; nbsucc,nbfail : in out Standard_Floating_Vectors.Vector; mixsub : out Mixed_Subdivision ); -- a user-defined lifting function : function Mixed_Coherent_Subdivision ( n : natural; mix : Vector; points : Array_of_Lists; linear : boolean; lift : VecVec ) return Mixed_Subdivision; procedure Mixed_Coherent_Subdivision ( n : in natural; mix : in Vector; points : in Array_of_Lists; linear : in boolean; lift : in VecVec; lifted : in out Array_of_Lists; nbsucc,nbfail : in out Standard_Floating_Vectors.Vector; mixsub : out Mixed_Subdivision ); -- a randomly generated lifting function : function Mixed_Coherent_Subdivision ( n : natural; mix : Vector; points : Array_of_Lists; linear : boolean; low,upp : Vector ) return Mixed_Subdivision; procedure Mixed_Coherent_Subdivision ( n : in natural; mix : in Vector; points : in Array_of_Lists; linear : in boolean; low,upp : in Vector; lifted : in out Array_of_Lists; nbsucc,nbfail : in out Standard_Floating_Vectors.Vector; mixsub : out Mixed_Subdivision ); -- DESCRIPTION : -- Given a set of points and a lifting function, -- a subdivision of the polytope will be computed. -- ON ENTRY : -- n the dimension of the vector space; -- mix mix(k) indicates how many times the kth point set occurs; -- points an array of all different point sets; -- linear indicates wether a linear lifting should be used; -- lift an array of lifting polynomials or an m dimensional -- array of vectors, where the length of the kth vector -- must equal the length of the kth support, -- when nonlinear, otherwise the length equals n. -- low,upp lower and upper bounds for random lifting. -- ON RETURN : -- lifted the lifted points which can later be used for lifting -- the polynomial system; -- nbsucc the number of successful face-face combinations that -- have been computed; -- nbfail the number of unsuccessful face-face combinations; -- mixsub the mixed subdivision of the polytope, defined as -- lower hull of the lifted points. end Mixed_Coherent_Subdivisions;