# Quick reference for polyhedra in Sage¶

*Author: Jean-Philippe Labbé <labbe@math.fu-berlin.de>
Vincent Delecroix <vincent.delecroix@u-bordeaux.fr>*

## List of Polyhedron methods¶

**H and V-representation**

`base_ring()` |
ring on which the polyhedron is defined |

`ambient_space()` |
ambient vector space or free module |

`Hrepresentation_space()` |
vector space or free module used for the vectors of the H-representation |

`Vrepresentation_space()` |
vector space or free module used for the vectors of the V-representation |

`n_Hrepresentation()` |
number of elements in the H-representation (sum of the number of equations and inequalities) |

`n_Vrepresentation()` |
number of elements in the V-representation (sum of vertices, rays and lines) |

`n_equations()` |
number of equations |

`n_inequalities()` |
number of inequalities |

`n_vertices()` |
number of vertices |

`n_rays()` |
number of rays |

`n_lines()` |
number of lines |

`n_facets()` |
number of facets |

**Polyhedron boolean properties:**

`is_empty()` |
tests emptyness |

`is_universe()` |
tests whether a polyhedra is the whole ambient space |

`is_full_dimensional()` |
tests if the polyhedron has the same dimension as the ambient space |

`is_combinatorially_isomorphic()` |
tests whether two polyhedra are combinatorially isomorphic |

`is_compact()` |
tests compactness, or boundedness of a polyhedron |

`is_lattice_polytope()` |
tests whether a polyhedron is a lattice polytope |

`is_inscribed()` |
tests whether the polyhedron is inscribed in a sphere |

`is_minkowski_summand()` |
tests if the polyhedron can be used to produce another given polyhedron using a Minkowski sum. |

`is_neighborly()` |
tests whether the polyhedron has full skeleton until half of the dimension (or up to a certain dimension) |

`is_reflexive()` |
tests if the polar of a lattice polytope is also a lattice polytope (only for `Polyhedron over ZZ` ) |

`is_simple()` |
checks whether the degree of all vertices is equal to the dimension of the polytope |

`is_simplex()` |
test whether a polytope is a simplex |

`is_simplicial()` |
checks whether all faces of the polyhedron are simplices |

`is_lawrence_polytope()` |
tests whether self is a Lawrence polytope |

`is_self_dual()` |
tests whether the polytope is self-dual |

`is_pyramid()` |
test whether the polytope is a pyramid over one of its facets |

`is_bipyramid()` |
test whether the polytope is combinatorially equivalent to a bipyramid over some polytope |

`is_prism()` |
test whether the polytope is combinatorially equivalent to a prism of some polytope |

**Enumerative properties**

`ambient_dim()` |
the dimension of the ambient vector space |

`dim()` |
the dimension of the polytope |

`dimension()` |
alias of dim |

`f_vector()` |
the \(f\)-vector (number of faces of each dimension) |

`flag_f_vector()` |
the flag-\(f\)-vector (number of chains of faces) |

`neighborliness()` |
highest cardinality for which all \(k\)-subsets of the vertices are faces of the polyhedron |

`simpliciality()` |
highest cardinality for which all \(k\)-faces are simplices |

`simplicity()` |
highest cardinality for which the polar is \(k\)-simplicial |

**Implementation properties**

`backend()` |
gives the backend used |

`base_ring()` |
gives the base ring used |

`change_ring()` |
changes the base ring |

**Transforming polyhedra**

`minkowski_sum()` |
Minkowski sum of two polyhedra |

`minkowski_difference()` |
Minkowski difference of two polyhedra |

`minkowski_decompositions()` |
Minkowski decomposition (only for `Polyhedron over ZZ` ) |

`product()` |
cartesian product of two polyhedra |

`intersection()` |
intersection of two polyhedra |

`join()` |
join of two polyhedra |

`convex_hull()` |
convex hull of the union of two polyhedra |

`affine_hull_projection()` |
constructs an affinely equivalent full-dimensional polyhedron |

`barycentric_subdivision()` |
constructs a geometric realization of the barycentric subdivision |

`dilation()` |
scalar dilation |

`face_truncation()` |
truncates a specific face |

`face_split()` |
returns the face splitting of a face of self |

`one_point_suspension()` |
the one-point suspension over a vertex of self (face splitting of a vertex) |

`stack()` |
stack a face of the polyhedron |

`lattice_polytope()` |
returns an encompassing lattice polytope. |

`polar()` |
returns the polar of a polytope (needs to be compact) |

`prism()` |
prism over a polyhedron (increases both the dimension of the polyhedron and the dimension of the ambient space) |

`pyramid()` |
pyramid over a polyhedron (increases both the dimension of the polyhedron and the dimension of the ambient space) |

`bipyramid()` |
bipyramid over a polyhedron (increases both the dimension of the polyhedron and the dimension of the ambient) |

`translation()` |
translates by a given vector |

`truncation()` |
truncates all vertices simultaneously |

`lawrence_extension()` |
returns the Lawrence extension of self on a given point |

`lawrence_polytope()` |
returns the Lawrence polytope of self |

`wedge()` |
returns the wedge over a face of self |

**Combinatorics**

`combinatorial_polyhedron()` |
the combinatorial polyhedron |

`face_lattice()` |
the face lattice |

`combinatorial_automorphism_group()` |
the automorphism group of the underlying combinatorial polytope |

`graph()` , `vertex_graph()` |
underlying graph |

`vertex_digraph()` |
digraph (orientation of edges determined by a linear form) |

`vertex_facet_graph()` |
bipartite digraph given vertex-facet adjacency |

`adjacency_matrix()` |
adjacency matrix |

`incidence_matrix()` |
incidence matrix |

`facet_adjacency_matrix()` |
adjacency matrix of the facets |

`vertex_adjacency_matrix()` |
adjacency matrix of the vertices |

**Integral points**

`ehrhart_polynomial()` |
the Ehrhart polynomial for `Polyhedron over ZZ` |

`ehrhart_polynomial()` |
the Ehrhart polynomial for `Polyhedron over QQ` |

`ehrhart_quasipolynomial()` |
the Ehrhart quasipolynomial for `Polyhedron over QQ` |

`h_star_vector()` |
the \(h^*\)-vector for polytopes with integral vertices |

`integral_points()` |
list of integral points |

`integral_points_count()` |
number of integral points |

`get_integral_point()` |
get the i-th integral point without computing all interior lattice points |

`has_IP_property()` |
checks whether the origin is an interior lattice point and compactness (only for `Polyhedron over ZZ` ) |

`random_integral_point()` |
get a random integral point |

**Getting related geometric objects**

`boundary_complex()` |
returns the boundary complex of simplicial compact polyhedron |

`center()` |
returns the average of the vertices of the polyhedron |

`centroid()` |
returns the center of the mass |

`representative_point()` |
returns the sum of the center and the rays |

`a_maximal_chain()` |
returns a maximal chain of faces |

`face_fan()` |
returns the fan spanned by the faces of the polyhedron |

`face_generator()` |
a generator over the faces |

`faces()` |
the list of faces |

`facets()` |
the list of facets |

`normal_fan()` |
returns the fan spanned by the normals of the supporting hyperplanes of the polyhedron |

`gale_transform()` |
returns the (affine) Gale transform of the vertices of the polyhedron |

`hyperplane_arrangement()` |
returns the hyperplane arrangement given by the defining facets of the polyhedron |

`to_linear_program()` |
transform the polyhedra into a Linear Program |

`triangulate()` |
returns a triangulation of the polyhedron |

`fibration_generator()` |
returns an iterator of the fibrations of the lattice polytope (only for `Polyhedron over ZZ` ) |

**Other**

`bounded_edges()` |
generator for bounded edges |

`bounding_box()` |
returns the vertices of an encompassing cube |

`contains()` |
tests whether the polyhedron contains a vector |

`interior_contains()` |
tests whether the polyhedron contains a vector in its interior using the ambient topology |

`relative_interior_contains()` |
tests whether the polyhedron contains a vector in its relative interior |

`find_translation()` |
returns the translation vector between two translation of two polyhedron (only for `Polyhedron over ZZ` ) |

`integrate()` |
computes the integral of a polynomial over the polyhedron |

`radius()` |
returns the radius of the smallest sphere containing the polyhedron |

`radius_square()` |
returns the square of the radius of the smallest sphere containing the polyhedron |

`volume()` |
computes different volumes of the polyhedron |

`restricted_automorphism_group()` |
returns the restricted automorphism group |

`lattice_automorphism_group()` |
returns the lattice automorphism group. Only for `PPL Lattice Polytope` |