3-manifolds / SnapPy

SnapPy is a package for studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures. It is based on the SnapPea kernel written by Jeff Weeks.
https://snappy.computop.org/
87 stars 41 forks source link

M.verify_hyperbolicity(holonomy=True) doesn't work when there are more than 26 generators #54

Closed unhyperbolic closed 1 year ago

unhyperbolic commented 2 years ago

Manifold("-cobLLzvvLvvLALvwvzwvwvzAALvLAwMLzzwLQMQPzQQQAQQQQQAQQPQcaeaeaiaoanamasaraxavaDaQaBaHaUaDaWaXa1a2a0a5a7aJaNaLa9aZa-aeb7afb5aabUaSaWa8a7a4aZaWaYa6aYa2aXa3akb0a2a+ahbcb8albhbib+a9aibkb-aibebjbfbjblbdbkbgbhbjblbnbnbnbiiafisfvbiolafbjgaaxdqaangrapmaataloopqquqxqetiaifgosrfjebrnnrffvgcrcxcfcfnarkf").verify_hyperbolicity(fundamental_group_args=[False], bits_prec=100)

raises the following exception:

~/anaconda3/envs/sage-93-py39/lib/python3.9/site-packages/snappy/snap/polished_reps.py in <genexpr>(.0)
    178         in a word yields the identity matrix or its negative.
    179         """
--> 180         rel_images = (self(R) for R in self.relators())
    181         return all(is_essentially_Id2(M) or is_essentially_Id2(-M)
    182                    for M in rel_images)

~/anaconda3/envs/sage-93-py39/lib/python3.9/site-packages/snappy/snap/polished_reps.py in __call__(self, word)
    164
    165     def __call__(self, word):
--> 166         return prod([self._hom_dict[g] for g in word], self._id)
    167
    168     def is_nonprojective_representation(self):

~/anaconda3/envs/sage-93-py39/lib/python3.9/site-packages/snappy/snap/polished_reps.py in <listcomp>(.0)
    164
    165     def __call__(self, word):
--> 166         return prod([self._hom_dict[g] for g in word], self._id)
    167
    168     def is_nonprojective_representation(self):

KeyError: 'x'
fchapoton commented 2 years ago

This now works fine for me (inside sage 9.7.rc1).

NathanDunfield commented 1 year ago

Closing as this appears to be fixed (tested with SnapPy 3.1 inside Sage 10.0).