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