Lattice Euclidean Group Elements¶
The classes here are used to return particular isomorphisms of
PPL lattice
polytopes
.
- class sage.geometry.polyhedron.lattice_euclidean_group_element.LatticeEuclideanGroupElement(A, b)[source]¶
Bases:
SageObject
An element of the lattice Euclidean group.
Note that this is just intended as a container for results from LatticePolytope_PPL. There is no group-theoretic functionality to speak of.
EXAMPLES:
sage: from sage.geometry.polyhedron.ppl_lattice_polytope import LatticePolytope_PPL, C_Polyhedron sage: from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement sage: M = LatticeEuclideanGroupElement([[1,2],[2,3],[-1,2]], [1,2,3]) sage: M The map A*x+b with A= [ 1 2] [ 2 3] [-1 2] b = (1, 2, 3) sage: M._A [ 1 2] [ 2 3] [-1 2] sage: M._b (1, 2, 3) sage: M(vector([0,0])) (1, 2, 3) sage: M(LatticePolytope_PPL((0,0),(1,0),(0,1))) A 2-dimensional lattice polytope in ZZ^3 with 3 vertices sage: _.vertices() ((1, 2, 3), (2, 4, 2), (3, 5, 5))
>>> from sage.all import * >>> from sage.geometry.polyhedron.ppl_lattice_polytope import LatticePolytope_PPL, C_Polyhedron >>> from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement >>> M = LatticeEuclideanGroupElement([[Integer(1),Integer(2)],[Integer(2),Integer(3)],[-Integer(1),Integer(2)]], [Integer(1),Integer(2),Integer(3)]) >>> M The map A*x+b with A= [ 1 2] [ 2 3] [-1 2] b = (1, 2, 3) >>> M._A [ 1 2] [ 2 3] [-1 2] >>> M._b (1, 2, 3) >>> M(vector([Integer(0),Integer(0)])) (1, 2, 3) >>> M(LatticePolytope_PPL((Integer(0),Integer(0)),(Integer(1),Integer(0)),(Integer(0),Integer(1)))) A 2-dimensional lattice polytope in ZZ^3 with 3 vertices >>> _.vertices() ((1, 2, 3), (2, 4, 2), (3, 5, 5))
from sage.geometry.polyhedron.ppl_lattice_polytope import LatticePolytope_PPL, C_Polyhedron from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement M = LatticeEuclideanGroupElement([[1,2],[2,3],[-1,2]], [1,2,3]) M M._A M._b M(vector([0,0])) M(LatticePolytope_PPL((0,0),(1,0),(0,1))) _.vertices()
- codomain_dim()[source]¶
Return the dimension of the codomain lattice.
EXAMPLES:
sage: from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement sage: M = LatticeEuclideanGroupElement([[1,2],[2,3],[-1,2]], [1,2,3]) sage: M The map A*x+b with A= [ 1 2] [ 2 3] [-1 2] b = (1, 2, 3) sage: M.codomain_dim() 3
>>> from sage.all import * >>> from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement >>> M = LatticeEuclideanGroupElement([[Integer(1),Integer(2)],[Integer(2),Integer(3)],[-Integer(1),Integer(2)]], [Integer(1),Integer(2),Integer(3)]) >>> M The map A*x+b with A= [ 1 2] [ 2 3] [-1 2] b = (1, 2, 3) >>> M.codomain_dim() 3
from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement M = LatticeEuclideanGroupElement([[1,2],[2,3],[-1,2]], [1,2,3]) M M.codomain_dim()
Note that this is not the same as the rank. In fact, the codomain dimension depends only on the matrix shape, and not on the rank of the linear mapping:
sage: zero_map = LatticeEuclideanGroupElement([[0,0],[0,0],[0,0]], [0,0,0]) sage: zero_map.codomain_dim() 3
>>> from sage.all import * >>> zero_map = LatticeEuclideanGroupElement([[Integer(0),Integer(0)],[Integer(0),Integer(0)],[Integer(0),Integer(0)]], [Integer(0),Integer(0),Integer(0)]) >>> zero_map.codomain_dim() 3
zero_map = LatticeEuclideanGroupElement([[0,0],[0,0],[0,0]], [0,0,0]) zero_map.codomain_dim()
- domain_dim()[source]¶
Return the dimension of the domain lattice.
EXAMPLES:
sage: from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement sage: M = LatticeEuclideanGroupElement([[1,2],[2,3],[-1,2]], [1,2,3]) sage: M The map A*x+b with A= [ 1 2] [ 2 3] [-1 2] b = (1, 2, 3) sage: M.domain_dim() 2
>>> from sage.all import * >>> from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement >>> M = LatticeEuclideanGroupElement([[Integer(1),Integer(2)],[Integer(2),Integer(3)],[-Integer(1),Integer(2)]], [Integer(1),Integer(2),Integer(3)]) >>> M The map A*x+b with A= [ 1 2] [ 2 3] [-1 2] b = (1, 2, 3) >>> M.domain_dim() 2
from sage.geometry.polyhedron.lattice_euclidean_group_element import LatticeEuclideanGroupElement M = LatticeEuclideanGroupElement([[1,2],[2,3],[-1,2]], [1,2,3]) M M.domain_dim()
- exception sage.geometry.polyhedron.lattice_euclidean_group_element.LatticePolytopeError[source]¶
Bases:
Exception
Base class for errors from lattice polytopes
- exception sage.geometry.polyhedron.lattice_euclidean_group_element.LatticePolytopeNoEmbeddingError[source]¶
Bases:
LatticePolytopeError
Raised when no embedding of the desired kind can be found.
- exception sage.geometry.polyhedron.lattice_euclidean_group_element.LatticePolytopesNotIsomorphicError[source]¶
Bases:
LatticePolytopeError
Raised when two lattice polytopes are not isomorphic.