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)
neighborliness() highest cardinality for which all \(k\)-subsets of the vertices are faces of the polyhedron

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() constructs an affinely equivalent full dimensional polyhedra
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 (only for Polyhedron over ZZ)
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
representative_point() returns the sum of the center and the rays
face_fan() returns the fan spanned by the faces of the polyhedron
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