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: sage-7.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 jdemeyer)

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)
<ipython-input-6-d332241c23a2> in <module>()
----> 1 polytopes.dodecahedron().restricted_automorphism_group()

/usr/local/src/sage-config/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/sage-config/local/lib/python2.7/site-packages/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 jdemeyer

  • Branch set to u/jdemeyer/polyhedron_restricted_automorphism_group____allow_returning_the_affine_matrix_group

comment:2 Changed 5 years ago by jdemeyer

  • Commit set to 9eda100828aaf7d4a3d191124b3f99528a3f4e17
  • Status changed from new to needs_review

New commits:

9eda100Allow returning the matrix group in restricted_automorphism_group()

comment:3 Changed 5 years ago by jdemeyer

  • Dependencies set to #20279
  • Status changed from needs_review to needs_work

comment:4 Changed 5 years ago by jdemeyer

  • Dependencies changed from #20279 to #20279, #20287

comment:5 Changed 5 years ago by git

  • Commit changed from 9eda100828aaf7d4a3d191124b3f99528a3f4e17 to 496646879d95208d240ea521340f41029cf9bdfc

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

80ed2fbUse ring when constructing a matrix from numpy
f9663a7Implement the Moore-Penrose pseudoinverse
ba8723aHomogeneous coordinates of polyhedron V-representation objects
fd495ecImprove documentation of homogeneous_vector()
dc2eb79Merge remote-tracking branch 'trac/u/jdemeyer/homogeneous_coordinates_of_polyhedron_v_representation_objects' into t/20259/polyhedron_restricted_automorphism_group____allow_returning_the_affine_matrix_group
4966468Allow returning the matrix group in restricted_automorphism_group()

comment:6 Changed 5 years ago by jdemeyer

  • Status changed from needs_work to needs_review

comment:7 Changed 5 years ago by jdemeyer

  • Description modified (diff)
  • Status changed from needs_review to needs_work

comment:8 Changed 5 years ago by git

  • Commit changed from 496646879d95208d240ea521340f41029cf9bdfc to e70a1eae87ee937b21bd8f2767ffcb8353c914ea

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

e70a1eaAllow returning the matrix group in restricted_automorphism_group()

comment:9 Changed 5 years ago by jdemeyer

  • Description modified (diff)
  • Status changed from needs_work to needs_review

comment:10 Changed 5 years ago by jdemeyer

  • Description modified (diff)

comment:11 Changed 5 years ago by git

  • Commit changed from e70a1eae87ee937b21bd8f2767ffcb8353c914ea to 40da88af0fd8c3bc9fed59a93610a41fda2ca95f

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

40da88aAllow returning the matrix group in restricted_automorphism_group()

comment:12 Changed 5 years ago by git

  • Commit changed from 40da88af0fd8c3bc9fed59a93610a41fda2ca95f to 293286ca098582fe7637c817b53c4badad86f5c8

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

293286cAllow returning the matrix group in restricted_automorphism_group()

comment:13 Changed 5 years ago by git

  • Commit changed from 293286ca098582fe7637c817b53c4badad86f5c8 to d82fa6e7fd1d5cd458fd782f4bb25574fe67162d

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

d82fa6eAllow returning the matrix group in restricted_automorphism_group()

comment:14 Changed 5 years ago by jdemeyer

  • Dependencies #20279, #20287 deleted

comment:15 Changed 5 years ago by git

  • Commit changed from d82fa6e7fd1d5cd458fd782f4bb25574fe67162d to 4163d004cbe53b6bc73d3a81d8b9cf9d8d3acd88

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

d9f8bdeFix conversions matrix -> AffineGroup
4163d00Allow returning the matrix group in restricted_automorphism_group()

comment:16 Changed 5 years ago by jdemeyer

  • Dependencies set to #20422

comment:17 Changed 4 years ago by jdemeyer

  • Dependencies #20422 deleted

comment:18 Changed 4 years ago by vbraun

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 git

  • Commit changed from 4163d004cbe53b6bc73d3a81d8b9cf9d8d3acd88 to fff11866f3eea78b6e27b9d9e1471ceb3517eeb1

Branch pushed to git repo; I updated commit sha1. New commits:

fff1186Rename "kind" to "output" and clarify documentation

comment:20 Changed 4 years ago by vbraun

  • Reviewers set to Volker Braun
  • Status changed from needs_review to positive_review

comment:21 Changed 4 years ago by vbraun

  • 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
Note: See TracTickets for help on using tickets.