Polytopes requests

Bernstein's theorem

(this is coming from Daniel Erman).

R.<a,b>=QQ[]
f1=a^2+a*b+b^2+1
f2=a*b^2+a^2*b+11
N1=f1.newton_polytope()
N2=f2.newton_polytope()
S=[N1,N2]

I would like to be able to compute the mixed volume of the collection of polytopes:

S.mixed_volume()

[[Note from Marshall Hampton: this is possible using the optional phc package:

from sage.interfaces.phc import phc
phc.mixed_volume([f1,f2])

]]

The reason I want to do this is because I want to apply Bernstein's theorem to a polynomial system in affine space. So conceivably I'd like to ask:

F=[f1,f2]
F.bernstein_bound()

In addition I'd like to be able to compute anything about N1 that can be done in polymake. For instance f-vector:

N1.f_vector()

Another note from M. Hampton: I have a patch for computing face lattices and f-vectors that I am hoping to put up on trac this week.

How to deal with polyhedral fans ?

(from F. Chapoton)

I would like to work with polyhedral cones and fans (with toric geometry in mind), for instance

cone1=PolyhedralCone([[1,0,0],[0,1,0],[0,0,1]])
cone2=PolyhedralCone([[-1,0,0],[0,1,0],[0,0,1]])
fan=PolyhedralFan([cone1,cone2])

I would also need a conical convex hull algorithm

cone3=ConicalHull([[1,0,0],[0,1,0],[0,0,1],[1,1,1]])

should return the cone

PolyhedralCone([[1,0,0],[0,1,0],[0,0,1]])

Some support for fans is contained in GroebnerFan, but this would be better if separated clearly.

My long-term aim would be to compute the cone of strictly convex support functions of a complete fan.

fan.ample_cone()