# Polytopes requests

packages: lrs, cddlib, porta, 4ti2, polymake, coin/or, Vinci

- optimal performance: important algorithms are reverse search (as in lrs, uses less memory), double description (track the duals, as in cdd and 4ti2)
- optimization: linear and integer programming (coin/or), semidefinite programming (any good software for this?)
- combinatorial aspects
- polymake puts a lot of these things together, but it does not build!

### 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()

## 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.

sage: fan = Fan([cone3]) sage: ToricVariety(fan).Kaehler_cone()