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 ?

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

The following now works (sage 5.2):

sage: cone1 = Cone([[1,0,0],[0,1,0],[0,0,1]])
sage: cone2 = Cone([[-1,0,0],[0,1,0],[0,0,1]])
sage: fan = Fan([cone1,cone2])

The Cone function can take many generators

sage: cone3 = Cone([[1,0,0],[0,1,0],[0,0,1],[1,1,1]])

and then compute the extremal rays

sage: cone3.rays()
N(0, 0, 1),
N(0, 1, 0),
N(1, 0, 0)
in 3-d lattice N
}}

It is now possible (sage 6.2) compute the cone of strictly convex support functions of a complete fan.
{{{
ToricVariety(fan).Kaehler_cone()