Opened 5 years ago
Closed 4 years ago
#20259 closed enhancement (fixed)
Polyhedron.restricted_automorphism_group(): allow returning the affine matrix group
Reported by:  jdemeyer  Owned by:  

Priority:  major  Milestone:  sage7.2 
Component:  geometry  Keywords:  
Cc:  Merged in:  
Authors:  Jeroen Demeyer  Reviewers:  Volker Braun 
Report Upstream:  N/A  Work issues:  
Branch:  fff1186 (Commits)  Commit:  fff11866f3eea78b6e27b9d9e1471ceb3517eeb1 
Dependencies:  Stopgaps: 
Description (last modified by )
Currently, the method Polyhedron.restricted_automorphism_group()
returns an abstract permutation on the vertices. In this ticket, we optionally allow returning a concrete matrix group on the ambient space, either as matrix group or list of matrices.
We also fix this bug:
sage: polytopes.dodecahedron().restricted_automorphism_group()  UnboundLocalError Traceback (most recent call last) <ipythoninput6d332241c23a2> in <module>() > 1 polytopes.dodecahedron().restricted_automorphism_group() /usr/local/src/sageconfig/src/sage/misc/cachefunc.pyx in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12404)() 2233 if self.cache is None: 2234 f = self.f > 2235 self.cache = f(self._instance) 2236 return self.cache 2237 /usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/polyhedron/base.pyc in restricted_automorphism_group(self) 4619 v_i = v_list[i] 4620 v_j = v_list[j] > 4621 c_ij = rational_approximation( v_i * Qinv * v_j ) 4622 G.add_edge(i+1,j+1, edge_label(i,j,c_ij)) 4623 UnboundLocalError: local variable 'rational_approximation' referenced before assignment
Change History (21)
comment:1 Changed 5 years ago by
 Branch set to u/jdemeyer/polyhedron_restricted_automorphism_group____allow_returning_the_affine_matrix_group
comment:2 Changed 5 years ago by
 Commit set to 9eda100828aaf7d4a3d191124b3f99528a3f4e17
 Status changed from new to needs_review
comment:3 Changed 5 years ago by
 Dependencies set to #20279
 Status changed from needs_review to needs_work
comment:4 Changed 5 years ago by
 Dependencies changed from #20279 to #20279, #20287
comment:5 Changed 5 years ago by
 Commit changed from 9eda100828aaf7d4a3d191124b3f99528a3f4e17 to 496646879d95208d240ea521340f41029cf9bdfc
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
80ed2fb  Use ring when constructing a matrix from numpy

f9663a7  Implement the MoorePenrose pseudoinverse

ba8723a  Homogeneous coordinates of polyhedron Vrepresentation objects

fd495ec  Improve documentation of homogeneous_vector()

dc2eb79  Merge remotetracking branch 'trac/u/jdemeyer/homogeneous_coordinates_of_polyhedron_v_representation_objects' into t/20259/polyhedron_restricted_automorphism_group____allow_returning_the_affine_matrix_group

4966468  Allow returning the matrix group in restricted_automorphism_group()

comment:6 Changed 5 years ago by
 Status changed from needs_work to needs_review
comment:7 Changed 5 years ago by
 Description modified (diff)
 Status changed from needs_review to needs_work
comment:8 Changed 5 years ago by
 Commit changed from 496646879d95208d240ea521340f41029cf9bdfc to e70a1eae87ee937b21bd8f2767ffcb8353c914ea
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
e70a1ea  Allow returning the matrix group in restricted_automorphism_group()

comment:9 Changed 5 years ago by
 Description modified (diff)
 Status changed from needs_work to needs_review
comment:10 Changed 5 years ago by
 Description modified (diff)
comment:11 Changed 5 years ago by
 Commit changed from e70a1eae87ee937b21bd8f2767ffcb8353c914ea to 40da88af0fd8c3bc9fed59a93610a41fda2ca95f
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
40da88a  Allow returning the matrix group in restricted_automorphism_group()

comment:12 Changed 5 years ago by
 Commit changed from 40da88af0fd8c3bc9fed59a93610a41fda2ca95f to 293286ca098582fe7637c817b53c4badad86f5c8
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
293286c  Allow returning the matrix group in restricted_automorphism_group()

comment:13 Changed 5 years ago by
 Commit changed from 293286ca098582fe7637c817b53c4badad86f5c8 to d82fa6e7fd1d5cd458fd782f4bb25574fe67162d
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
d82fa6e  Allow returning the matrix group in restricted_automorphism_group()

comment:14 Changed 5 years ago by
 Dependencies #20279, #20287 deleted
comment:15 Changed 5 years ago by
 Commit changed from d82fa6e7fd1d5cd458fd782f4bb25574fe67162d to 4163d004cbe53b6bc73d3a81d8b9cf9d8d3acd88
comment:16 Changed 5 years ago by
 Dependencies set to #20422
comment:17 Changed 4 years ago by
 Dependencies #20422 deleted
comment:18 Changed 4 years ago by
Nice!
Can we rename kind
to output
, representation
, or something like that? It always returns the same abstract group, not different kinds of automorphism groups.
There should be some discussion about what the returned matrix groups are. Something like:
If the polyhedron is not full dimensional, the linear automorphism group is infinite as it can act arbitrarily in the orthogonal directions. Nevertheless, as a permutation group, the restricted automorphism group is finite. It has a natural representation as the subset of linear automorphisms that act trivially in the orthogonal directions. Use the output='matrix'
option to return it.
comment:19 Changed 4 years ago by
 Commit changed from 4163d004cbe53b6bc73d3a81d8b9cf9d8d3acd88 to fff11866f3eea78b6e27b9d9e1471ceb3517eeb1
Branch pushed to git repo; I updated commit sha1. New commits:
fff1186  Rename "kind" to "output" and clarify documentation

comment:20 Changed 4 years ago by
 Reviewers set to Volker Braun
 Status changed from needs_review to positive_review
comment:21 Changed 4 years ago by
 Branch changed from u/jdemeyer/polyhedron_restricted_automorphism_group____allow_returning_the_affine_matrix_group to fff11866f3eea78b6e27b9d9e1471ceb3517eeb1
 Resolution set to fixed
 Status changed from positive_review to closed
New commits:
Allow returning the matrix group in restricted_automorphism_group()