next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
LatticePolytopes :: areIsomorphic

areIsomorphic -- checks if two smooth polytopes are isomorphic

Synopsis

Description

Checks if two smooth polytopes P and Q are isomorphic, i.e. checks if there exist a unitary matrix A with integer entries and a vector v such that Q=A*P+v. Currently the function only works on smooth polytopes.

P=convexHull(matrix{{0,1}});
Q=convexHull(matrix{{0,2}});
areIsomorphic(P,Q)

As a standard, areIsomorphic will check if the polytopes are smooth first. This takes some time, so if one is sure that they are smooth then it is possible to suppress this test.

M = transpose matrix{{0,0,0},{1,0,0},{0,1,0},{0,0,1},{1,1,0},{1,0,1},{0,1,1},{1,1,1}}
P = convexHull(M);
time areIsomorphic(P,P);
time areIsomorphic(P,P,smoothTest=>false);

Ways to use areIsomorphic :