snappy 3.1.1__cp38-cp38-win_amd64.whl → 3.2__cp38-cp38-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- snappy/CyOpenGL.cp38-win_amd64.pyd +0 -0
- snappy/SnapPy.cp38-win_amd64.pyd +0 -0
- snappy/SnapPyHP.cp38-win_amd64.pyd +0 -0
- snappy/__init__.py +299 -402
- snappy/app.py +70 -20
- snappy/browser.py +18 -17
- snappy/canonical.py +249 -0
- snappy/{verify/cusp_shapes.py → cusps/__init__.py} +8 -18
- snappy/cusps/cusp_area_matrix.py +101 -0
- snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +23 -39
- snappy/cusps/maximal_cusp_area_matrix.py +136 -0
- snappy/cusps/test.py +21 -0
- snappy/cusps/trig_cusp_area_matrix.py +63 -0
- snappy/database.py +10 -9
- snappy/decorated_isosig.py +337 -114
- snappy/dev/extended_ptolemy/complexVolumesClosed.py +40 -7
- snappy/dev/extended_ptolemy/extended.py +3 -3
- snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
- snappy/dev/vericlosed/oneVertexTruncatedComplex.py +1 -1
- snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
- snappy/doc/_images/m125_paper_plane.jpg +0 -0
- snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
- snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
- snappy/doc/_sources/additional_classes.rst.txt +40 -40
- snappy/doc/_sources/bugs.rst.txt +14 -14
- snappy/doc/_sources/censuses.rst.txt +51 -51
- snappy/doc/_sources/credits.rst.txt +75 -75
- snappy/doc/_sources/development.rst.txt +259 -239
- snappy/doc/_sources/index.rst.txt +182 -115
- snappy/doc/_sources/installing.rst.txt +247 -264
- snappy/doc/_sources/manifold.rst.txt +6 -6
- snappy/doc/_sources/manifoldhp.rst.txt +46 -46
- snappy/doc/_sources/news.rst.txt +355 -283
- snappy/doc/_sources/other.rst.txt +25 -25
- snappy/doc/_sources/platonic_census.rst.txt +20 -20
- snappy/doc/_sources/plink.rst.txt +102 -102
- snappy/doc/_sources/ptolemy.rst.txt +66 -66
- snappy/doc/_sources/ptolemy_classes.rst.txt +42 -42
- snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -297
- snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -363
- snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -301
- snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -61
- snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -105
- snappy/doc/_sources/screenshots.rst.txt +21 -21
- snappy/doc/_sources/snap.rst.txt +87 -87
- snappy/doc/_sources/snappy.rst.txt +28 -28
- snappy/doc/_sources/spherogram.rst.txt +103 -103
- snappy/doc/_sources/todo.rst.txt +47 -47
- snappy/doc/_sources/triangulation.rst.txt +11 -11
- snappy/doc/_sources/tutorial.rst.txt +49 -49
- snappy/doc/_sources/verify.rst.txt +210 -150
- snappy/doc/_sources/verify_internals.rst.txt +79 -90
- snappy/doc/_static/basic.css +924 -902
- snappy/doc/_static/css/badge_only.css +1 -1
- snappy/doc/_static/css/theme.css +1 -1
- snappy/doc/_static/doctools.js +1 -1
- snappy/doc/_static/documentation_options.js +12 -13
- snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- snappy/doc/_static/js/versions.js +228 -0
- snappy/doc/_static/language_data.js +199 -199
- snappy/doc/_static/pygments.css +74 -73
- snappy/doc/_static/searchtools.js +125 -71
- snappy/doc/_static/snappy_furo.css +33 -33
- snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -42
- snappy/doc/_static/sphinx_highlight.js +13 -3
- snappy/doc/additional_classes.html +1499 -1330
- snappy/doc/bugs.html +131 -134
- snappy/doc/censuses.html +426 -445
- snappy/doc/credits.html +180 -183
- snappy/doc/development.html +383 -363
- snappy/doc/genindex.html +1330 -1409
- snappy/doc/index.html +261 -206
- snappy/doc/installing.html +345 -363
- snappy/doc/manifold.html +3451 -2839
- snappy/doc/manifoldhp.html +179 -182
- snappy/doc/news.html +387 -329
- snappy/doc/objects.inv +0 -0
- snappy/doc/other.html +160 -162
- snappy/doc/platonic_census.html +374 -377
- snappy/doc/plink.html +209 -212
- snappy/doc/ptolemy.html +253 -255
- snappy/doc/ptolemy_classes.html +1143 -1146
- snappy/doc/ptolemy_examples1.html +408 -410
- snappy/doc/ptolemy_examples2.html +470 -473
- snappy/doc/ptolemy_examples3.html +413 -416
- snappy/doc/ptolemy_examples4.html +194 -197
- snappy/doc/ptolemy_prelim.html +247 -250
- snappy/doc/py-modindex.html +164 -167
- snappy/doc/screenshots.html +140 -142
- snappy/doc/search.html +134 -137
- snappy/doc/searchindex.js +1 -1
- snappy/doc/snap.html +201 -204
- snappy/doc/snappy.html +180 -182
- snappy/doc/spherogram.html +1210 -1213
- snappy/doc/todo.html +165 -168
- snappy/doc/triangulation.html +1583 -1474
- snappy/doc/tutorial.html +158 -161
- snappy/doc/verify.html +329 -275
- snappy/doc/verify_internals.html +1234 -1691
- snappy/drilling/__init__.py +153 -235
- snappy/drilling/barycentric.py +103 -0
- snappy/drilling/constants.py +0 -2
- snappy/drilling/crush.py +56 -130
- snappy/drilling/cusps.py +12 -6
- snappy/drilling/debug.py +2 -1
- snappy/drilling/exceptions.py +7 -40
- snappy/drilling/moves.py +302 -243
- snappy/drilling/perturb.py +63 -37
- snappy/drilling/shorten.py +36 -0
- snappy/drilling/subdivide.py +0 -5
- snappy/drilling/test.py +23 -0
- snappy/drilling/test_cases.py +126 -0
- snappy/drilling/tracing.py +9 -37
- snappy/exceptions.py +18 -5
- snappy/exterior_to_link/barycentric_geometry.py +2 -4
- snappy/exterior_to_link/main.py +8 -7
- snappy/exterior_to_link/mcomplex_with_link.py +2 -2
- snappy/exterior_to_link/rational_linear_algebra.py +1 -1
- snappy/exterior_to_link/rational_linear_algebra_wrapped.py +1 -1
- snappy/exterior_to_link/test.py +21 -33
- snappy/geometric_structure/__init__.py +212 -0
- snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
- snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
- snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
- snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
- snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
- snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
- snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
- snappy/geometric_structure/geodesic/__init__.py +0 -0
- snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
- snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
- snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
- snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
- snappy/geometric_structure/geodesic/constants.py +6 -0
- snappy/geometric_structure/geodesic/exceptions.py +22 -0
- snappy/{drilling → geometric_structure/geodesic}/fixed_points.py +34 -9
- snappy/{drilling/geodesic_info.py → geometric_structure/geodesic/geodesic_start_point_info.py} +139 -180
- snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
- snappy/geometric_structure/geodesic/line.py +30 -0
- snappy/geometric_structure/geodesic/multiplicity.py +127 -0
- snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
- snappy/geometric_structure/test.py +22 -0
- snappy/gui.py +23 -13
- snappy/horoviewer.py +7 -7
- snappy/hyperboloid/__init__.py +96 -31
- snappy/hyperboloid/distances.py +245 -0
- snappy/hyperboloid/horoball.py +19 -0
- snappy/hyperboloid/line.py +35 -0
- snappy/hyperboloid/point.py +9 -0
- snappy/hyperboloid/triangle.py +29 -0
- snappy/isometry_signature.py +382 -0
- snappy/len_spec/__init__.py +596 -0
- snappy/len_spec/geodesic_info.py +110 -0
- snappy/len_spec/geodesic_key_info_dict.py +117 -0
- snappy/len_spec/geodesic_piece.py +143 -0
- snappy/len_spec/geometric_structure.py +182 -0
- snappy/len_spec/geometry.py +80 -0
- snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
- snappy/len_spec/spine.py +206 -0
- snappy/len_spec/test.py +24 -0
- snappy/len_spec/test_cases.py +69 -0
- snappy/len_spec/tile.py +275 -0
- snappy/len_spec/word.py +86 -0
- snappy/math_basics.py +39 -13
- snappy/matrix.py +52 -9
- snappy/number.py +12 -6
- snappy/numeric_output_checker.py +2 -3
- snappy/pari.py +8 -4
- snappy/phone_home.py +2 -1
- snappy/polyviewer.py +8 -8
- snappy/ptolemy/__init__.py +1 -1
- snappy/ptolemy/component.py +2 -2
- snappy/ptolemy/coordinates.py +25 -25
- snappy/ptolemy/findLoops.py +9 -9
- snappy/ptolemy/manifoldMethods.py +27 -29
- snappy/ptolemy/polynomial.py +50 -57
- snappy/ptolemy/processFileBase.py +60 -0
- snappy/ptolemy/ptolemyVariety.py +109 -41
- snappy/ptolemy/reginaWrapper.py +4 -4
- snappy/ptolemy/rur.py +1 -1
- snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +9 -9
- snappy/ptolemy/test.py +99 -54
- snappy/ptolemy/utilities.py +1 -1
- snappy/raytracing/__init__.py +64 -0
- snappy/raytracing/additional_horospheres.py +64 -0
- snappy/raytracing/additional_len_spec_choices.py +63 -0
- snappy/raytracing/cohomology_fractal.py +0 -3
- snappy/raytracing/eyeball.py +123 -0
- snappy/raytracing/finite_raytracing_data.py +17 -17
- snappy/raytracing/finite_viewer.py +15 -15
- snappy/raytracing/geodesic_tube_info.py +93 -63
- snappy/raytracing/geodesics.py +94 -64
- snappy/raytracing/geodesics_window.py +56 -34
- snappy/raytracing/gui_utilities.py +21 -6
- snappy/raytracing/hyperboloid_navigation.py +29 -4
- snappy/raytracing/hyperboloid_utilities.py +73 -73
- snappy/raytracing/ideal_raytracing_data.py +121 -91
- snappy/raytracing/inside_viewer.py +199 -66
- snappy/raytracing/pack.py +22 -0
- snappy/raytracing/raytracing_data.py +37 -25
- snappy/raytracing/raytracing_view.py +70 -65
- snappy/raytracing/shaders/Eye.png +0 -0
- snappy/raytracing/shaders/NonGeometric.png +0 -0
- snappy/raytracing/shaders/__init__.py +39 -3
- snappy/raytracing/shaders/fragment.glsl +451 -133
- snappy/raytracing/test.py +29 -0
- snappy/raytracing/tooltip.py +146 -0
- snappy/raytracing/upper_halfspace_utilities.py +42 -9
- snappy/sage_helper.py +67 -134
- snappy/settings.py +90 -77
- snappy/shell.py +2 -0
- snappy/snap/character_varieties.py +2 -2
- snappy/snap/find_field.py +4 -3
- snappy/snap/fundamental_polyhedron.py +2 -2
- snappy/snap/kernel_structures.py +5 -1
- snappy/snap/nsagetools.py +9 -8
- snappy/snap/peripheral/dual_cellulation.py +4 -3
- snappy/snap/peripheral/peripheral.py +2 -2
- snappy/snap/peripheral/surface.py +5 -5
- snappy/snap/peripheral/test.py +1 -1
- snappy/snap/polished_reps.py +8 -8
- snappy/snap/slice_obs_HKL.py +16 -14
- snappy/snap/t3mlite/arrow.py +3 -3
- snappy/snap/t3mlite/edge.py +3 -3
- snappy/snap/t3mlite/homology.py +2 -2
- snappy/snap/t3mlite/mcomplex.py +3 -3
- snappy/snap/t3mlite/simplex.py +12 -0
- snappy/snap/t3mlite/spun.py +18 -17
- snappy/snap/t3mlite/test_vs_regina.py +4 -4
- snappy/snap/test.py +37 -53
- snappy/snap/utilities.py +4 -5
- snappy/test.py +121 -138
- snappy/test_cases.py +263 -0
- snappy/testing.py +131 -0
- snappy/tiling/__init__.py +2 -0
- snappy/tiling/canonical_key_dict.py +59 -0
- snappy/tiling/dict_based_set.py +79 -0
- snappy/tiling/floor.py +49 -0
- snappy/tiling/hyperboloid_dict.py +54 -0
- snappy/tiling/iter_utils.py +78 -0
- snappy/tiling/lifted_tetrahedron.py +22 -0
- snappy/tiling/lifted_tetrahedron_set.py +54 -0
- snappy/tiling/real_hash_dict.py +164 -0
- snappy/tiling/test.py +23 -0
- snappy/tiling/tile.py +215 -0
- snappy/tiling/triangle.py +33 -0
- snappy/tkterminal.py +113 -84
- snappy/twister/main.py +1 -7
- snappy/twister/twister_core.cp38-win_amd64.pyd +0 -0
- snappy/upper_halfspace/__init__.py +78 -17
- snappy/verify/__init__.py +3 -7
- snappy/verify/{verifyCanonical.py → canonical.py} +78 -70
- snappy/verify/complex_volume/adjust_torsion.py +1 -2
- snappy/verify/complex_volume/closed.py +13 -13
- snappy/verify/complex_volume/cusped.py +6 -6
- snappy/verify/complex_volume/extended_bloch.py +5 -8
- snappy/verify/{cuspTranslations.py → cusp_translations.py} +1 -1
- snappy/verify/edge_equations.py +80 -0
- snappy/verify/exceptions.py +0 -55
- snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +3 -3
- snappy/verify/interval_newton_shapes_engine.py +7 -5
- snappy/verify/interval_tree.py +5 -5
- snappy/verify/krawczyk_shapes_engine.py +17 -18
- snappy/verify/maximal_cusp_area_matrix/__init__.py +7 -74
- snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +3 -4
- snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +1 -1
- snappy/verify/{realAlgebra.py → real_algebra.py} +1 -1
- snappy/verify/shapes.py +5 -3
- snappy/verify/short_slopes.py +39 -41
- snappy/verify/{squareExtensions.py → square_extensions.py} +14 -11
- snappy/verify/test.py +57 -60
- snappy/verify/upper_halfspace/extended_matrix.py +1 -1
- snappy/verify/upper_halfspace/finite_point.py +3 -4
- snappy/verify/upper_halfspace/ideal_point.py +9 -9
- snappy/verify/volume.py +2 -2
- snappy/version.py +2 -2
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/METADATA +14 -10
- snappy-3.2.dist-info/RECORD +503 -0
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
- snappy/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/__pycache__/browser.cpython-38.pyc +0 -0
- snappy/__pycache__/cache.cpython-38.pyc +0 -0
- snappy/__pycache__/database.cpython-38.pyc +0 -0
- snappy/__pycache__/db_utilities.cpython-38.pyc +0 -0
- snappy/__pycache__/decorated_isosig.cpython-38.pyc +0 -0
- snappy/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/__pycache__/export_stl.cpython-38.pyc +0 -0
- snappy/__pycache__/filedialog.cpython-38.pyc +0 -0
- snappy/__pycache__/gui.cpython-38.pyc +0 -0
- snappy/__pycache__/horoviewer.cpython-38.pyc +0 -0
- snappy/__pycache__/math_basics.cpython-38.pyc +0 -0
- snappy/__pycache__/matrix.cpython-38.pyc +0 -0
- snappy/__pycache__/number.cpython-38.pyc +0 -0
- snappy/__pycache__/numeric_output_checker.cpython-38.pyc +0 -0
- snappy/__pycache__/pari.cpython-38.pyc +0 -0
- snappy/__pycache__/polyviewer.cpython-38.pyc +0 -0
- snappy/__pycache__/sage_helper.cpython-38.pyc +0 -0
- snappy/__pycache__/version.cpython-38.pyc +0 -0
- snappy/doc/_sources/verify_canon.rst.txt +0 -90
- snappy/doc/_static/jquery-3.6.0.js +0 -10881
- snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
- snappy/doc/_static/js/html5shiv.min.js +0 -4
- snappy/doc/_static/underscore-1.13.1.js +0 -2042
- snappy/doc/_static/underscore.js +0 -6
- snappy/doc/verify_canon.html +0 -304
- snappy/drilling/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/constants.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/crush.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/cusps.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/debug.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/epsilons.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/fixed_points.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_info.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_tube.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geometric_structure.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/line.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/moves.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/peripheral_curves.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/perturb.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/quotient_space.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/spatial_dict.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/subdivide.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/tracing.cpython-38.pyc +0 -0
- snappy/drilling/geodesic_tube.py +0 -441
- snappy/drilling/geometric_structure.py +0 -366
- snappy/drilling/line.py +0 -122
- snappy/drilling/quotient_space.py +0 -94
- snappy/drilling/spatial_dict.py +0 -128
- snappy/exterior_to_link/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/hyp_utils.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/link_projection.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/main.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/pl_utils.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/put_in_S3.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/stored_moves.cpython-38.pyc +0 -0
- snappy/hyperboloid/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/manifolds/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/component.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/coordinates.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/fieldExtensions.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/findLoops.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/homology.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/manifoldMethods.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/matrix.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/polynomial.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processComponents.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileBase.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileDispatch.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processMagmaFile.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processRurFile.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVariety.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/rur.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/utilities.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/character_varieties.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/fundamental_polyhedron.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/interval_reps.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/kernel_structures.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/mcomplex_base.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/nsagetools.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/polished_reps.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/shapes.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/slice_obs_HKL.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/utilities.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/link.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/peripheral.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/surface.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/arrow.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/corner.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/edge.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/face.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/files.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/homology.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/linalg.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/mcomplex.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/perm4.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/simplex.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/spun.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/surface.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/vertex.cpython-38.pyc +0 -0
- snappy/togl/__init__.py +0 -3
- snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
- snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/darwin-tk8.7/Togl2.1/LICENSE +0 -28
- snappy/togl/darwin-tk8.7/Togl2.1/libTogl2.1.dylib +0 -0
- snappy/togl/darwin-tk8.7/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
- snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
- snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
- snappy/twister/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/twister/__pycache__/main.cpython-38.pyc +0 -0
- snappy/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/upper_halfspace/__pycache__/ideal_point.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cuspCrossSection.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cuspTranslations.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cusp_areas.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cusp_shapes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/interval_tree.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/realAlgebra.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/shapes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/short_slopes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/squareExtensions.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/verifyCanonical.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/verifyHyperbolicity.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/volume.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/closed.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/cusped.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-38.pyc +0 -0
- snappy/verify/cuspCrossSection.py +0 -1422
- snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-38.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-38.pyc +0 -0
- snappy-3.1.1.dist-info/RECORD +0 -575
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
snappy/polyviewer.py
CHANGED
@@ -23,7 +23,7 @@ class PolyhedronViewer(ttk.Frame):
|
|
23
23
|
self.main_window = kwargs.get('main_window', None)
|
24
24
|
self.topframe = topframe = ttk.Frame(self)
|
25
25
|
self.bottomframe = bottomframe = ttk.Frame(self)
|
26
|
-
self.model_var = Tk_.StringVar(self, value='
|
26
|
+
self.model_var = Tk_.StringVar(self, value='Poincare')
|
27
27
|
self.sphere_var = Tk_.IntVar(self, value=1)
|
28
28
|
self.klein = ttk.Radiobutton(topframe, text='Klein',
|
29
29
|
variable=self.model_var,
|
@@ -72,7 +72,7 @@ The slider controls zooming. You will see inside the polyhedron if you zoom far
|
|
72
72
|
cyglSetStandardLighting()
|
73
73
|
self.polyhedron = HyperbolicPolyhedron(facedicts, self.model_var,
|
74
74
|
self.sphere_var, togl_widget=self.widget)
|
75
|
-
widget.
|
75
|
+
widget.draw_projection_impl = self.polyhedron.draw
|
76
76
|
widget.autospin_allowed = 1
|
77
77
|
widget.set_background(.2, .2, .2)
|
78
78
|
widget.grid(row=0, column=0, sticky=Tk_.NSEW)
|
@@ -150,21 +150,21 @@ The slider controls zooming. You will see inside the polyhedron if you zoom far
|
|
150
150
|
pass
|
151
151
|
|
152
152
|
def redraw(self):
|
153
|
-
self.widget.
|
153
|
+
self.widget.redraw()
|
154
154
|
|
155
155
|
def reset(self):
|
156
156
|
self.widget.autospin = 0
|
157
157
|
self.widget.set_eyepoint(5.0)
|
158
158
|
self.zoom.set(50)
|
159
|
-
self.widget.
|
159
|
+
self.widget.redraw()
|
160
160
|
|
161
161
|
def set_zoom(self, x):
|
162
162
|
t = (100.0-float(x))/100.0
|
163
163
|
self.widget.distance = t*1.0 + (1-t)*8.0
|
164
|
-
self.widget.
|
164
|
+
self.widget.redraw()
|
165
165
|
|
166
166
|
def new_model(self):
|
167
|
-
self.widget.
|
167
|
+
self.widget.redraw()
|
168
168
|
|
169
169
|
def new_polyhedron(self, new_facedicts):
|
170
170
|
self.empty = (len(new_facedicts) == 0)
|
@@ -175,8 +175,8 @@ The slider controls zooming. You will see inside the polyhedron if you zoom far
|
|
175
175
|
pass
|
176
176
|
self.polyhedron = HyperbolicPolyhedron(new_facedicts, self.model_var,
|
177
177
|
self.sphere_var, togl_widget=self.widget)
|
178
|
-
self.widget.
|
179
|
-
self.widget.
|
178
|
+
self.widget.draw_projection_impl = self.polyhedron.draw
|
179
|
+
self.widget.redraw()
|
180
180
|
|
181
181
|
def delete_resource(self):
|
182
182
|
try:
|
snappy/ptolemy/__init__.py
CHANGED
snappy/ptolemy/component.py
CHANGED
@@ -14,7 +14,7 @@ class ZeroDimensionalComponent(Component):
|
|
14
14
|
|
15
15
|
def __init__(self, l, p=None):
|
16
16
|
self.dimension = 0
|
17
|
-
super(
|
17
|
+
super().__init__(l)
|
18
18
|
|
19
19
|
|
20
20
|
class NonZeroDimensionalComponent(Component):
|
@@ -36,7 +36,7 @@ class NonZeroDimensionalComponent(Component):
|
|
36
36
|
self.dimension = dimension
|
37
37
|
self.free_variables = free_variables
|
38
38
|
self.genus = genus
|
39
|
-
super(
|
39
|
+
super().__init__(witnesses)
|
40
40
|
|
41
41
|
def _base_str_(self):
|
42
42
|
if self.free_variables is None:
|
snappy/ptolemy/coordinates.py
CHANGED
@@ -212,7 +212,7 @@ class PtolemyCoordinates(dict):
|
|
212
212
|
self._matrix_cache = []
|
213
213
|
self._inverse_matrix_cache = []
|
214
214
|
|
215
|
-
super(
|
215
|
+
super().__init__(processed_dict)
|
216
216
|
|
217
217
|
def __repr__(self):
|
218
218
|
dict_repr = dict.__repr__(self)
|
@@ -377,7 +377,7 @@ class PtolemyCoordinates(dict):
|
|
377
377
|
Note that this is different from the convention used in
|
378
378
|
Garoufalidis, Goerner, Zickert:
|
379
379
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
380
|
-
|
380
|
+
https://arxiv.org/abs/1207.6711
|
381
381
|
|
382
382
|
Take an exact solution:
|
383
383
|
|
@@ -563,7 +563,7 @@ class PtolemyCoordinates(dict):
|
|
563
563
|
See Definition 10.1:
|
564
564
|
Garoufalidis, Goerner, Zickert:
|
565
565
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
566
|
-
|
566
|
+
https://arxiv.org/abs/1207.6711
|
567
567
|
"""
|
568
568
|
|
569
569
|
# Integral points that are indices of Ptolemy coordinates
|
@@ -586,14 +586,14 @@ class PtolemyCoordinates(dict):
|
|
586
586
|
# See Definition 9.23 of
|
587
587
|
# Garoufalidis, Thurston, Zickert
|
588
588
|
# The Complex Volume of SL(n,C)-Representations of 3-Manifolds
|
589
|
-
#
|
590
|
-
face =
|
589
|
+
# httpss://arxiv.org/abs/1111.2828
|
590
|
+
face = next(iter(set(range(4)) - {v0, v1, v2}))
|
591
591
|
obstruction = self._get_obstruction_variable(face, tet)
|
592
592
|
|
593
593
|
# The epsilon permutation sign from Definition 10.1 of
|
594
594
|
# Garoufalidis, Goerner, Zickert:
|
595
595
|
# Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
596
|
-
#
|
596
|
+
# https://arxiv.org/abs/1207.6711
|
597
597
|
s = PtolemyCoordinates._three_perm_sign(v0, v1, v2)
|
598
598
|
|
599
599
|
# The equation from the same Definition
|
@@ -610,7 +610,7 @@ class PtolemyCoordinates(dict):
|
|
610
610
|
See Definition 10.2:
|
611
611
|
Garoufalidis, Goerner, Zickert:
|
612
612
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
613
|
-
|
613
|
+
https://arxiv.org/abs/1207.6711
|
614
614
|
|
615
615
|
Note that this definition turned out to have the wrong sign. Multiply
|
616
616
|
the result by -1 if v1 < v0 and N is even.
|
@@ -650,7 +650,7 @@ class PtolemyCoordinates(dict):
|
|
650
650
|
double-truncated simplex) in Figure 18 of
|
651
651
|
Garoufalidis, Goerner, Zickert:
|
652
652
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
653
|
-
|
653
|
+
https://arxiv.org/abs/1207.6711
|
654
654
|
|
655
655
|
It is computed using equation 10.4. Note that the ratio coordinate
|
656
656
|
is different from the definition in the paper (see ratio_coordinate).
|
@@ -694,7 +694,7 @@ class PtolemyCoordinates(dict):
|
|
694
694
|
This matrix was labeled beta^{v0v1v2} in Figure 18 of
|
695
695
|
Garoufalidis, Goerner, Zickert:
|
696
696
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
697
|
-
|
697
|
+
https://arxiv.org/abs/1207.6711
|
698
698
|
|
699
699
|
It is computed using equation 10.4.
|
700
700
|
|
@@ -742,7 +742,7 @@ class PtolemyCoordinates(dict):
|
|
742
742
|
See equation 10.4 in
|
743
743
|
Garoufalidis, Goerner, Zickert:
|
744
744
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
745
|
-
|
745
|
+
https://arxiv.org/abs/1207.6711
|
746
746
|
"""
|
747
747
|
|
748
748
|
# Key for the cache
|
@@ -983,7 +983,7 @@ class Flattenings(dict):
|
|
983
983
|
For N = 2, the three triples belonging to a simplex form a combinatorial
|
984
984
|
flattening (w0, w1, w2) as defined in Definition 3.1 in
|
985
985
|
Walter D. Neumann, Extended Bloch group and the Cheeger-Chern-Simons class
|
986
|
-
|
986
|
+
https://arxiv.org/abs/math.GT/0307092
|
987
987
|
|
988
988
|
For N > 2, the three triples form a generalized combinatorial flattening
|
989
989
|
(w0, w1, w2) that gives an element in the generalized Extended Bloch group
|
@@ -1009,7 +1009,7 @@ class Flattenings(dict):
|
|
1009
1009
|
"""
|
1010
1010
|
|
1011
1011
|
def __init__(self, d, manifold_thunk=lambda : None, evenN=2):
|
1012
|
-
super(
|
1012
|
+
super().__init__(d)
|
1013
1013
|
self._is_numerical = True
|
1014
1014
|
self._manifold_thunk = manifold_thunk
|
1015
1015
|
self.dimension = 0
|
@@ -1133,9 +1133,9 @@ class Flattenings(dict):
|
|
1133
1133
|
Mcopy = M.copy()
|
1134
1134
|
|
1135
1135
|
return Flattenings(
|
1136
|
-
|
1136
|
+
{k: (log + PiI * p, z, p)
|
1137
1137
|
for k, log, z, p in zip(keys, log_all_cross_ratios,
|
1138
|
-
all_cross_ratios, flattenings)
|
1138
|
+
all_cross_ratios, flattenings)},
|
1139
1139
|
manifold_thunk=lambda : Mcopy)
|
1140
1140
|
|
1141
1141
|
def get_order(self):
|
@@ -1153,7 +1153,7 @@ class Flattenings(dict):
|
|
1153
1153
|
in the generalized Extended Bloch group similar to the way the
|
1154
1154
|
triple [z;p,q] is used in Lemma 3.2 in
|
1155
1155
|
Walter D. Neumann, Extended Bloch group and the Cheeger-Chern-Simons class
|
1156
|
-
|
1156
|
+
https://arxiv.org/abs/math.GT/0307092
|
1157
1157
|
"""
|
1158
1158
|
if not key_z[:2] == 'z_':
|
1159
1159
|
raise Exception("Need to be called with cross ratio variable z_....")
|
@@ -1294,11 +1294,11 @@ class CrossRatios(dict):
|
|
1294
1294
|
Note that this is different from the convention used in
|
1295
1295
|
Garoufalidis, Goerner, Zickert:
|
1296
1296
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
1297
|
-
|
1297
|
+
https://arxiv.org/abs/1207.6711
|
1298
1298
|
"""
|
1299
1299
|
|
1300
1300
|
def __init__(self, d, is_numerical=True, manifold_thunk=None):
|
1301
|
-
super(
|
1301
|
+
super().__init__(d)
|
1302
1302
|
self._is_numerical = is_numerical
|
1303
1303
|
self._manifold_thunk = manifold_thunk
|
1304
1304
|
|
@@ -1475,7 +1475,7 @@ class CrossRatios(dict):
|
|
1475
1475
|
|
1476
1476
|
Garoufalidis, Goerner, Zickert:
|
1477
1477
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
1478
|
-
|
1478
|
+
https://arxiv.org/abs/1207.6711
|
1479
1479
|
"""
|
1480
1480
|
|
1481
1481
|
postfix = '_%d%d%d%d' % tuple(pt) + '_%d' % tet
|
@@ -1499,7 +1499,7 @@ class CrossRatios(dict):
|
|
1499
1499
|
See Definition 10.9:
|
1500
1500
|
Garoufalidis, Goerner, Zickert:
|
1501
1501
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
1502
|
-
|
1502
|
+
https://arxiv.org/abs/1207.6711
|
1503
1503
|
"""
|
1504
1504
|
|
1505
1505
|
result = 1
|
@@ -1530,7 +1530,7 @@ class CrossRatios(dict):
|
|
1530
1530
|
This matrix was labeled alpha^{v0v1v2} in Figure 18 of
|
1531
1531
|
Garoufalidis, Goerner, Zickert:
|
1532
1532
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
1533
|
-
|
1533
|
+
https://arxiv.org/abs/1207.6711
|
1534
1534
|
|
1535
1535
|
It is computed using equation 10.22.
|
1536
1536
|
|
@@ -1564,7 +1564,7 @@ class CrossRatios(dict):
|
|
1564
1564
|
This matrix was labeled beta^{v0v1v2} in Figure 18 of
|
1565
1565
|
Garoufalidis, Goerner, Zickert:
|
1566
1566
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
1567
|
-
|
1567
|
+
https://arxiv.org/abs/1207.6711
|
1568
1568
|
|
1569
1569
|
It is computed using equation 10.22.
|
1570
1570
|
|
@@ -1632,7 +1632,7 @@ class CrossRatios(dict):
|
|
1632
1632
|
This matrix was labeled gamma^{v0v1v2} in Figure 18 of
|
1633
1633
|
Garoufalidis, Goerner, Zickert:
|
1634
1634
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
1635
|
-
|
1635
|
+
https://arxiv.org/abs/1207.6711
|
1636
1636
|
|
1637
1637
|
It is computed using equation 10.22.
|
1638
1638
|
|
@@ -1769,7 +1769,7 @@ class CrossRatios(dict):
|
|
1769
1769
|
SL(N,C) / {+1,-1} if N is even and is described in the Introduction of
|
1770
1770
|
Garoufalidis, Thurston, Zickert
|
1771
1771
|
The Complex Volume of SL(n,C)-Representations of 3-Manifolds
|
1772
|
-
|
1772
|
+
https://arxiv.org/abs/1111.2828
|
1773
1773
|
|
1774
1774
|
There is a canonical group homomorphism SL(2,C)->SL(N,C) coming from
|
1775
1775
|
the the natural SL(2,C)-action on the vector space Sym^{N-1}(C^2).
|
@@ -2261,7 +2261,7 @@ def _X(N, k, v):
|
|
2261
2261
|
See (10.2) of
|
2262
2262
|
Garoufalidis, Goerner, Zickert:
|
2263
2263
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
2264
|
-
|
2264
|
+
https://arxiv.org/abs/1207.6711
|
2265
2265
|
"""
|
2266
2266
|
|
2267
2267
|
m = [[_kronecker_delta(i,j) for i in range(N)] for j in range(N)]
|
@@ -2277,7 +2277,7 @@ def _H(N, k, x):
|
|
2277
2277
|
See (10.1) of
|
2278
2278
|
Garoufalidis, Goerner, Zickert:
|
2279
2279
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
2280
|
-
|
2280
|
+
https://arxiv.org/abs/1207.6711
|
2281
2281
|
"""
|
2282
2282
|
|
2283
2283
|
def _entry(i, j):
|
snappy/ptolemy/findLoops.py
CHANGED
@@ -8,7 +8,7 @@ from . import matrix
|
|
8
8
|
# simplices. See Figure 18 for simplices.
|
9
9
|
# Garoufalidis, Goerner, Zickert:
|
10
10
|
# Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
11
|
-
#
|
11
|
+
# https://arxiv.org/abs/1207.6711
|
12
12
|
|
13
13
|
# We use SnapPy's _choose_generators_info to construct the same fundamental
|
14
14
|
# domain and side pairing that SnapPy uses for the unsimplified fundamental
|
@@ -36,7 +36,7 @@ class Vertex(tuple):
|
|
36
36
|
"""
|
37
37
|
|
38
38
|
def __new__(cls, tet, v0, v1, v2):
|
39
|
-
return super(
|
39
|
+
return super().__new__(cls, (tet, v0, v1, v2))
|
40
40
|
|
41
41
|
def edges_starting_at_vertex(self):
|
42
42
|
"""
|
@@ -189,10 +189,10 @@ def _compute_point_identification_dict(choose_generators_info):
|
|
189
189
|
the set of equivalent triples.
|
190
190
|
"""
|
191
191
|
|
192
|
-
# Initialize: each vertex is mapped to set of only
|
193
|
-
d =
|
194
|
-
|
195
|
-
|
192
|
+
# Initialize: each vertex is mapped to set of only itself
|
193
|
+
d = {Vertex(tet, v0, v1, v2): {Vertex(tet, v0, v1, v2)}
|
194
|
+
for tet in range(len(choose_generators_info))
|
195
|
+
for v0, v1, v2, v3 in _perm4_iterator()}
|
196
196
|
|
197
197
|
# Go through all points on faces not corresponding to
|
198
198
|
# generators
|
@@ -241,9 +241,9 @@ def _compute_point_to_shortest_path(point_identification_dict, origin,
|
|
241
241
|
# this property. It maps all triples equivalent to pt to path.
|
242
242
|
|
243
243
|
def identified_points_to_path(pt, path):
|
244
|
-
return
|
245
|
-
|
246
|
-
for identified_pt in point_identification_dict[pt]
|
244
|
+
return {
|
245
|
+
identified_pt: path
|
246
|
+
for identified_pt in point_identification_dict[pt] }
|
247
247
|
|
248
248
|
# Trivial paths for points identified with origin
|
249
249
|
previously_added = identified_points_to_path(origin, Path())
|
@@ -21,12 +21,12 @@ def get_ptolemy_obstruction_classes(manifold):
|
|
21
21
|
See Definition 1.7 of
|
22
22
|
Garoufalidis, Thurston, Zickert
|
23
23
|
The Complex Volume of SL(n,C)-Representations of 3-Manifolds
|
24
|
-
|
24
|
+
https://arxiv.org/abs/1111.2828
|
25
25
|
|
26
26
|
s_f_t takes values +/-1 and is the value of evaluating the cocycle on
|
27
27
|
face f of tetrahedron t.
|
28
28
|
|
29
|
-
|
29
|
+
**Examples**
|
30
30
|
|
31
31
|
Get the obstruction classes for 4_1:
|
32
32
|
|
@@ -172,44 +172,42 @@ class PtolemyVarietyList(list):
|
|
172
172
|
for p in self ])
|
173
173
|
|
174
174
|
|
175
|
-
def get_ptolemy_variety(manifold, N, obstruction_class=None,
|
176
|
-
simplify=True,
|
175
|
+
def get_ptolemy_variety(manifold, N, obstruction_class = None,
|
176
|
+
simplify : bool =True,
|
177
|
+
eliminate_fixed_ptolemys : bool =False):
|
177
178
|
"""
|
178
179
|
Generates Ptolemy variety as described in
|
179
180
|
(1) Garoufalidis, Thurston, Zickert
|
180
181
|
The Complex Volume of SL(n,C)-Representations of 3-Manifolds
|
181
|
-
|
182
|
+
https://arxiv.org/abs/1111.2828
|
182
183
|
|
183
184
|
(2) Garoufalidis, Goerner, Zickert:
|
184
185
|
Gluing Equations for PGL(n,C)-Representations of 3-Manifolds
|
185
|
-
|
186
|
+
https://arxiv.org/abs/1207.6711
|
186
187
|
|
187
188
|
The variety can be exported to magma or sage and solved there. The
|
188
189
|
solutions can be processed to compute invariants. See below.
|
189
190
|
|
190
|
-
|
191
|
+
:param N: which SL(N,C) we want the variety.
|
191
192
|
|
192
|
-
|
193
|
+
:param obstruction_class: class from Definition 1.7 of (1).
|
194
|
+
``None`` for trivial class,
|
195
|
+
a value returned from :meth:`get_ptolemy_obstruction_classes`,
|
196
|
+
an integer indexing the obstruction classes returned from
|
197
|
+
:meth:`get_ptolemy_obstruction_classes`,
|
198
|
+
or 'all' to return a list of Ptolemy varieties, one for each
|
199
|
+
obstruction class.
|
193
200
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
for each obstruction. For easier iteration, can set obstruction_class to
|
198
|
-
an integer.
|
201
|
+
:param simplify: indicate whether to simplify the equations which
|
202
|
+
significantly reduces the number of variables. Simplifying means that several identified Ptolemy coordinates :math:`x = y = z = ...`
|
203
|
+
are eliminated instead of adding relations :math:`x - y = 0, y - z = 0, ...`
|
199
204
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
Defaults to True.
|
205
|
+
:param eliminate_fixed_ptolemys: boolean to indicate whether to eliminate
|
206
|
+
the Ptolemy coordinates that are set to 1 for fixing the decoration.
|
207
|
+
Even though this simplifies the resulting representation, setting it to
|
208
|
+
``True`` can cause magma to run longer when finding a Groebner basis.
|
205
209
|
|
206
|
-
|
207
|
-
the Ptolemy coordinates that are set to 1 for fixing the decoration.
|
208
|
-
Even though this simplifies the resulting representation, setting it to
|
209
|
-
True can cause magma to run longer when finding a Groebner basis.
|
210
|
-
Defaults to False.
|
211
|
-
|
212
|
-
=== Examples for 4_1 ===
|
210
|
+
**Examples for 4_1**
|
213
211
|
|
214
212
|
>>> from snappy import Manifold
|
215
213
|
>>> M = Manifold("4_1")
|
@@ -248,7 +246,7 @@ def get_ptolemy_variety(manifold, N, obstruction_class=None,
|
|
248
246
|
|
249
247
|
|
250
248
|
|
251
|
-
|
249
|
+
**If you have a magma installation**
|
252
250
|
|
253
251
|
Call p.compute_solutions() to automatically call magma on the above output
|
254
252
|
and produce exact solutions!!!
|
@@ -258,7 +256,7 @@ def get_ptolemy_variety(manifold, N, obstruction_class=None,
|
|
258
256
|
... except:
|
259
257
|
... sols = None # magma failed, use precomputed output instead
|
260
258
|
|
261
|
-
|
259
|
+
**If you do not have a magma installation**
|
262
260
|
|
263
261
|
Load a precomputed example from magma which is provided with the package:
|
264
262
|
|
@@ -282,7 +280,7 @@ def get_ptolemy_variety(manifold, N, obstruction_class=None,
|
|
282
280
|
>>> if sols is None: # calling magma failed, so use precomputed example
|
283
281
|
... sols = solutions_from_magma(_magma_output_for_4_1__sl3)
|
284
282
|
|
285
|
-
|
283
|
+
**Continue here whether you have or do not have magma**
|
286
284
|
|
287
285
|
Pick the first solution of the three different solutions (up to Galois
|
288
286
|
conjugates):
|
@@ -306,7 +304,7 @@ def get_ptolemy_variety(manifold, N, obstruction_class=None,
|
|
306
304
|
>>> len(simplified.equations), len(full.equations)
|
307
305
|
(24, 72)
|
308
306
|
|
309
|
-
|
307
|
+
**ONLY DOCTESTS, NOT PART OF DOCUMENTATION**
|
310
308
|
|
311
309
|
>>> varieties = get_ptolemy_variety(M, N = 2, obstruction_class = "all", eliminate_fixed_ptolemys = True)
|
312
310
|
|