Quick reference for polyhedra in Sage - Thematic Tutorials

Skip to content
Back to top
View this page
Edit this page

# 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
`hasse_diagram()` | the hasse diagram
`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
`slack_matrix()` | slack 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

`affine_hull()` | returns the smallest affine subspace containing the polyhedron
`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
`join_of_Vrep()`, `least_common_superface_of_Vrep()` | smallest face containing specified Vrepresentatives
`meet_of_Hrep()`, `greatest_common_subface_of_Hrep()` | largest face contained in specified Hrepresentatives
`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`