with Standard_Integer_Vectors; use Standard_Integer_Vectors; with Standard_Complex_Polynomials; use Standard_Complex_Polynomials; with Triangulations; use Triangulations; with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions; package Minkowski_Polynomials is -- DESCRIPTION : -- This package allows the computation of the Minkowski-polynomial -- of a tuple of polytopes (P1,P2,..,Pr). This polynomial is the -- expansion of the volume of a positive linear combination of the -- polytopes in the tuple: vol_n(l1*P1 + l2*P2 + .. + lr*Pr), which -- is a homogeneous polynomial of degree n in the coefficients l1,l2,..,lr, -- according to Minkowski's theorem. function Minkowski_Polynomial ( n,r : natural ) return Poly; -- DESCRIPTION : -- Returns the structure of the Minkowski-polynomial, given the -- dimension and the number of different polytopes in the tuple. -- ON ENTRY : -- n dimension of the polytopes before lifting; -- r number of different polytopes in the tuple. -- ON RETURN : -- The structure of the Minkowski-polynomial, with all coefficients -- equal to one. procedure Minkowski_Polynomial ( p : in out Poly; t : in Triangulation; n : in natural; mix : in Vector; mixsub : out Mixed_Subdivision ); -- DESCRIPTION : -- Computes the coefficients of the Minkowski-polynomial, given its -- structure and based on the triangulation of the Cayley-polytope. -- On return, one also obtains the mixed subdivision, corresponding -- the given type of mixture. generic with procedure Process ( submix : in Vector; sub : in Mixed_Subdivision; vol : out natural ); procedure Minkowski_Polynomial_Subdivisions ( p : in out Poly; t : in Triangulation; n : in natural; mix : in Vector; mixsub : out Mixed_Subdivision ); -- DESCRIPTION : -- Computes the coefficients of the Minkowski-polynomial, given its -- structure and the triangulation of the Cayley polytope. -- The generic procedure returns the subdivision for a given type of -- mixture and asks to compute its volume. -- On return, one also obtains the mixed subdivision, corresponding -- the given type of mixture. end Minkowski_Polynomials;