snappy 3.3__cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.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.cpython-310-aarch64-linux-gnu.so +0 -0
- snappy/SnapPy.cpython-310-aarch64-linux-gnu.so +0 -0
- snappy/SnapPy.ico +0 -0
- snappy/SnapPy.png +0 -0
- snappy/SnapPyHP.cpython-310-aarch64-linux-gnu.so +0 -0
- snappy/__init__.py +534 -0
- snappy/app.py +604 -0
- snappy/app_menus.py +372 -0
- snappy/browser.py +998 -0
- snappy/cache.py +25 -0
- snappy/canonical.py +249 -0
- snappy/cusps/__init__.py +280 -0
- snappy/cusps/cusp_area_matrix.py +98 -0
- snappy/cusps/cusp_areas_from_matrix.py +96 -0
- snappy/cusps/maximal_cusp_area_matrix.py +136 -0
- snappy/cusps/short_slopes_for_cusp.py +217 -0
- snappy/cusps/test.py +22 -0
- snappy/cusps/trig_cusp_area_matrix.py +63 -0
- snappy/database.py +454 -0
- snappy/db_utilities.py +79 -0
- snappy/decorated_isosig.py +717 -0
- snappy/dev/__init__.py +0 -0
- snappy/dev/extended_ptolemy/__init__.py +8 -0
- snappy/dev/extended_ptolemy/closed.py +106 -0
- snappy/dev/extended_ptolemy/complexVolumesClosed.py +149 -0
- snappy/dev/extended_ptolemy/direct.py +42 -0
- snappy/dev/extended_ptolemy/extended.py +406 -0
- snappy/dev/extended_ptolemy/giac_helper.py +43 -0
- snappy/dev/extended_ptolemy/giac_rur.py +129 -0
- snappy/dev/extended_ptolemy/gluing.py +46 -0
- snappy/dev/extended_ptolemy/phc_wrapper.py +220 -0
- snappy/dev/extended_ptolemy/printMatrices.py +70 -0
- snappy/dev/vericlosed/__init__.py +1 -0
- snappy/dev/vericlosed/computeApproxHyperbolicStructureNew.py +159 -0
- snappy/dev/vericlosed/computeApproxHyperbolicStructureOrb.py +90 -0
- snappy/dev/vericlosed/computeVerifiedHyperbolicStructure.py +111 -0
- snappy/dev/vericlosed/gimbalLoopFinder.py +130 -0
- snappy/dev/vericlosed/hyperbolicStructure.py +313 -0
- snappy/dev/vericlosed/krawczykCertifiedEdgeLengthsEngine.py +165 -0
- snappy/dev/vericlosed/oneVertexTruncatedComplex.py +122 -0
- snappy/dev/vericlosed/orb/__init__.py +1 -0
- snappy/dev/vericlosed/orb/orb_solution_for_snappea_finite_triangulation_mac +0 -0
- snappy/dev/vericlosed/parseVertexGramMatrixFile.py +47 -0
- snappy/dev/vericlosed/polishApproxHyperbolicStructure.py +61 -0
- snappy/dev/vericlosed/test.py +54 -0
- snappy/dev/vericlosed/truncatedComplex.py +176 -0
- snappy/dev/vericlosed/verificationError.py +58 -0
- snappy/dev/vericlosed/verifyHyperbolicStructureEngine.py +177 -0
- snappy/doc/_images/SnapPy-196.png +0 -0
- snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
- snappy/doc/_images/m125_paper_plane.jpg +0 -0
- snappy/doc/_images/mac.png +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/_images/plink-action.png +0 -0
- snappy/doc/_images/ubuntu.png +0 -0
- snappy/doc/_images/win7.png +0 -0
- snappy/doc/_sources/additional_classes.rst.txt +40 -0
- snappy/doc/_sources/bugs.rst.txt +14 -0
- snappy/doc/_sources/censuses.rst.txt +52 -0
- snappy/doc/_sources/credits.rst.txt +81 -0
- snappy/doc/_sources/development.rst.txt +261 -0
- snappy/doc/_sources/index.rst.txt +215 -0
- snappy/doc/_sources/installing.rst.txt +249 -0
- snappy/doc/_sources/manifold.rst.txt +6 -0
- snappy/doc/_sources/manifoldhp.rst.txt +46 -0
- snappy/doc/_sources/news.rst.txt +425 -0
- snappy/doc/_sources/other.rst.txt +25 -0
- snappy/doc/_sources/platonic_census.rst.txt +20 -0
- snappy/doc/_sources/plink.rst.txt +102 -0
- snappy/doc/_sources/ptolemy.rst.txt +66 -0
- snappy/doc/_sources/ptolemy_classes.rst.txt +42 -0
- snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -0
- snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -0
- snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -0
- snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -0
- snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -0
- snappy/doc/_sources/screenshots.rst.txt +21 -0
- snappy/doc/_sources/snap.rst.txt +87 -0
- snappy/doc/_sources/snappy.rst.txt +28 -0
- snappy/doc/_sources/spherogram.rst.txt +103 -0
- snappy/doc/_sources/todo.rst.txt +47 -0
- snappy/doc/_sources/triangulation.rst.txt +11 -0
- snappy/doc/_sources/tutorial.rst.txt +49 -0
- snappy/doc/_sources/verify.rst.txt +210 -0
- snappy/doc/_sources/verify_internals.rst.txt +79 -0
- snappy/doc/_static/SnapPy-horizontal-128.png +0 -0
- snappy/doc/_static/SnapPy.ico +0 -0
- snappy/doc/_static/_sphinx_javascript_frameworks_compat.js +123 -0
- snappy/doc/_static/basic.css +906 -0
- snappy/doc/_static/css/badge_only.css +1 -0
- snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- snappy/doc/_static/css/fonts/fontawesome-webfont.eot +0 -0
- snappy/doc/_static/css/fonts/fontawesome-webfont.svg +2671 -0
- snappy/doc/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- snappy/doc/_static/css/fonts/fontawesome-webfont.woff +0 -0
- snappy/doc/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- snappy/doc/_static/css/fonts/lato-bold-italic.woff +0 -0
- snappy/doc/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- snappy/doc/_static/css/fonts/lato-bold.woff +0 -0
- snappy/doc/_static/css/fonts/lato-bold.woff2 +0 -0
- snappy/doc/_static/css/fonts/lato-normal-italic.woff +0 -0
- snappy/doc/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- snappy/doc/_static/css/fonts/lato-normal.woff +0 -0
- snappy/doc/_static/css/fonts/lato-normal.woff2 +0 -0
- snappy/doc/_static/css/theme.css +4 -0
- snappy/doc/_static/doctools.js +149 -0
- snappy/doc/_static/documentation_options.js +13 -0
- snappy/doc/_static/file.png +0 -0
- 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/jquery.js +2 -0
- snappy/doc/_static/js/badge_only.js +1 -0
- snappy/doc/_static/js/theme.js +1 -0
- snappy/doc/_static/js/versions.js +228 -0
- snappy/doc/_static/language_data.js +192 -0
- snappy/doc/_static/minus.png +0 -0
- snappy/doc/_static/plus.png +0 -0
- snappy/doc/_static/pygments.css +75 -0
- snappy/doc/_static/searchtools.js +635 -0
- snappy/doc/_static/snappy_furo.css +33 -0
- snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -0
- snappy/doc/_static/sphinx_highlight.js +154 -0
- snappy/doc/additional_classes.html +1500 -0
- snappy/doc/bugs.html +132 -0
- snappy/doc/censuses.html +453 -0
- snappy/doc/credits.html +184 -0
- snappy/doc/development.html +385 -0
- snappy/doc/doc-latest/additional_classes.html +1500 -0
- snappy/doc/doc-latest/bugs.html +132 -0
- snappy/doc/doc-latest/censuses.html +453 -0
- snappy/doc/doc-latest/credits.html +184 -0
- snappy/doc/doc-latest/development.html +385 -0
- snappy/doc/doc-latest/genindex.html +1349 -0
- snappy/doc/doc-latest/index.html +287 -0
- snappy/doc/doc-latest/installing.html +346 -0
- snappy/doc/doc-latest/manifold.html +3632 -0
- snappy/doc/doc-latest/manifoldhp.html +180 -0
- snappy/doc/doc-latest/news.html +438 -0
- snappy/doc/doc-latest/objects.inv +0 -0
- snappy/doc/doc-latest/other.html +160 -0
- snappy/doc/doc-latest/platonic_census.html +376 -0
- snappy/doc/doc-latest/plink.html +210 -0
- snappy/doc/doc-latest/ptolemy.html +253 -0
- snappy/doc/doc-latest/ptolemy_classes.html +1144 -0
- snappy/doc/doc-latest/ptolemy_examples1.html +409 -0
- snappy/doc/doc-latest/ptolemy_examples2.html +471 -0
- snappy/doc/doc-latest/ptolemy_examples3.html +414 -0
- snappy/doc/doc-latest/ptolemy_examples4.html +195 -0
- snappy/doc/doc-latest/ptolemy_prelim.html +248 -0
- snappy/doc/doc-latest/py-modindex.html +165 -0
- snappy/doc/doc-latest/screenshots.html +141 -0
- snappy/doc/doc-latest/search.html +135 -0
- snappy/doc/doc-latest/searchindex.js +1 -0
- snappy/doc/doc-latest/snap.html +202 -0
- snappy/doc/doc-latest/snappy.html +181 -0
- snappy/doc/doc-latest/spherogram.html +1346 -0
- snappy/doc/doc-latest/todo.html +166 -0
- snappy/doc/doc-latest/triangulation.html +1676 -0
- snappy/doc/doc-latest/tutorial.html +159 -0
- snappy/doc/doc-latest/verify.html +330 -0
- snappy/doc/doc-latest/verify_internals.html +1235 -0
- snappy/doc/genindex.html +1349 -0
- snappy/doc/index.html +287 -0
- snappy/doc/installing.html +346 -0
- snappy/doc/manifold.html +3632 -0
- snappy/doc/manifoldhp.html +180 -0
- snappy/doc/news.html +438 -0
- snappy/doc/objects.inv +0 -0
- snappy/doc/other.html +160 -0
- snappy/doc/platonic_census.html +376 -0
- snappy/doc/plink.html +210 -0
- snappy/doc/ptolemy.html +253 -0
- snappy/doc/ptolemy_classes.html +1144 -0
- snappy/doc/ptolemy_examples1.html +409 -0
- snappy/doc/ptolemy_examples2.html +471 -0
- snappy/doc/ptolemy_examples3.html +414 -0
- snappy/doc/ptolemy_examples4.html +195 -0
- snappy/doc/ptolemy_prelim.html +248 -0
- snappy/doc/py-modindex.html +165 -0
- snappy/doc/screenshots.html +141 -0
- snappy/doc/search.html +135 -0
- snappy/doc/searchindex.js +1 -0
- snappy/doc/snap.html +202 -0
- snappy/doc/snappy.html +181 -0
- snappy/doc/spherogram.html +1346 -0
- snappy/doc/todo.html +166 -0
- snappy/doc/triangulation.html +1676 -0
- snappy/doc/tutorial.html +159 -0
- snappy/doc/verify.html +330 -0
- snappy/doc/verify_internals.html +1235 -0
- snappy/drilling/__init__.py +456 -0
- snappy/drilling/barycentric.py +103 -0
- snappy/drilling/constants.py +5 -0
- snappy/drilling/crush.py +270 -0
- snappy/drilling/cusps.py +125 -0
- snappy/drilling/debug.py +242 -0
- snappy/drilling/epsilons.py +6 -0
- snappy/drilling/exceptions.py +55 -0
- snappy/drilling/moves.py +620 -0
- snappy/drilling/peripheral_curves.py +210 -0
- snappy/drilling/perturb.py +188 -0
- snappy/drilling/shorten.py +36 -0
- snappy/drilling/subdivide.py +274 -0
- snappy/drilling/test.py +23 -0
- snappy/drilling/test_cases.py +132 -0
- snappy/drilling/tracing.py +351 -0
- snappy/exceptions.py +26 -0
- snappy/export_stl.py +120 -0
- snappy/exterior_to_link/__init__.py +2 -0
- snappy/exterior_to_link/barycentric_geometry.py +463 -0
- snappy/exterior_to_link/exceptions.py +6 -0
- snappy/exterior_to_link/geodesic_map.json +14408 -0
- snappy/exterior_to_link/hyp_utils.py +112 -0
- snappy/exterior_to_link/link_projection.py +323 -0
- snappy/exterior_to_link/main.py +198 -0
- snappy/exterior_to_link/mcomplex_with_expansion.py +261 -0
- snappy/exterior_to_link/mcomplex_with_link.py +687 -0
- snappy/exterior_to_link/mcomplex_with_memory.py +162 -0
- snappy/exterior_to_link/pl_utils.py +491 -0
- snappy/exterior_to_link/put_in_S3.py +156 -0
- snappy/exterior_to_link/rational_linear_algebra.py +130 -0
- snappy/exterior_to_link/rational_linear_algebra_wrapped.py +135 -0
- snappy/exterior_to_link/simplify_to_base_tri.py +114 -0
- snappy/exterior_to_link/stored_moves.py +475 -0
- snappy/exterior_to_link/test.py +31 -0
- snappy/filedialog.py +28 -0
- 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 +691 -0
- snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +480 -0
- snappy/geometric_structure/cusp_neighborhood/exceptions.py +41 -0
- snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +294 -0
- snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +156 -0
- snappy/geometric_structure/cusp_neighborhood/vertices.py +35 -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_representatives.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/geometric_structure/geodesic/fixed_points.py +106 -0
- snappy/geometric_structure/geodesic/geodesic_start_point_info.py +435 -0
- 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 +128 -0
- snappy/geometric_structure/test.py +22 -0
- snappy/gui.py +121 -0
- snappy/horoviewer.py +443 -0
- snappy/hyperboloid/__init__.py +212 -0
- snappy/hyperboloid/distances.py +259 -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/info_icon.gif +0 -0
- snappy/infowindow.py +65 -0
- snappy/isometry_signature.py +389 -0
- snappy/len_spec/__init__.py +609 -0
- snappy/len_spec/geodesic_info.py +129 -0
- snappy/len_spec/geodesic_key_info_dict.py +116 -0
- snappy/len_spec/geodesic_piece.py +146 -0
- snappy/len_spec/geometric_structure.py +182 -0
- snappy/len_spec/geometry.py +136 -0
- snappy/len_spec/length_spectrum_geodesic_info.py +185 -0
- snappy/len_spec/spine.py +128 -0
- snappy/len_spec/test.py +24 -0
- snappy/len_spec/test_cases.py +69 -0
- snappy/len_spec/tile.py +276 -0
- snappy/len_spec/word.py +86 -0
- snappy/manifolds/HTWKnots/alternating.gz +0 -0
- snappy/manifolds/HTWKnots/nonalternating.gz +0 -0
- snappy/manifolds/__init__.py +3 -0
- snappy/margulis/__init__.py +332 -0
- snappy/margulis/cusp_neighborhood_neighborhood.py +66 -0
- snappy/margulis/geodesic_neighborhood.py +152 -0
- snappy/margulis/margulis_info.py +21 -0
- snappy/margulis/mu_from_neighborhood_pair.py +175 -0
- snappy/margulis/neighborhood.py +29 -0
- snappy/margulis/test.py +22 -0
- snappy/math_basics.py +187 -0
- snappy/matrix.py +525 -0
- snappy/number.py +657 -0
- snappy/numeric_output_checker.py +345 -0
- snappy/pari.py +41 -0
- snappy/phone_home.py +57 -0
- snappy/polyviewer.py +259 -0
- snappy/ptolemy/__init__.py +17 -0
- snappy/ptolemy/component.py +103 -0
- snappy/ptolemy/coordinates.py +2290 -0
- snappy/ptolemy/fieldExtensions.py +153 -0
- snappy/ptolemy/findLoops.py +473 -0
- snappy/ptolemy/geometricRep.py +59 -0
- snappy/ptolemy/homology.py +165 -0
- snappy/ptolemy/magma/default.magma_template +229 -0
- snappy/ptolemy/magma/radicalsOfPrimaryDecomposition.magma_template +79 -0
- snappy/ptolemy/manifoldMethods.py +395 -0
- snappy/ptolemy/matrix.py +350 -0
- snappy/ptolemy/numericalSolutionsToGroebnerBasis.py +113 -0
- snappy/ptolemy/polynomial.py +856 -0
- snappy/ptolemy/processComponents.py +173 -0
- snappy/ptolemy/processFileBase.py +247 -0
- snappy/ptolemy/processFileDispatch.py +46 -0
- snappy/ptolemy/processMagmaFile.py +392 -0
- snappy/ptolemy/processRurFile.py +150 -0
- snappy/ptolemy/ptolemyGeneralizedObstructionClass.py +102 -0
- snappy/ptolemy/ptolemyObstructionClass.py +64 -0
- snappy/ptolemy/ptolemyVariety.py +995 -0
- snappy/ptolemy/ptolemyVarietyPrimeIdealGroebnerBasis.py +140 -0
- snappy/ptolemy/reginaWrapper.py +698 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c2.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c3.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c4.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c5.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c6.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c7.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files_generalized/m003__sl3_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files_generalized/m003__sl3_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files_generalized/m015__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files_generalized/m015__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files_generalized/m015__sl3_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/regina_testing_files_generalized/m015__sl3_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/rur.py +545 -0
- snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +277 -0
- snappy/ptolemy/test.py +1126 -0
- snappy/ptolemy/testing_files/3_1__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/3_1__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/4_1__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/4_1__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/4_1__sl3_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/4_1__sl4_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/4_1__sl4_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/5_2__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/5_2__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c2.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c3.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c4.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c5.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c6.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c7.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/data/pgl2/OrientableCuspedCensus/03_tetrahedra/m019__sl2_c0.magma_out +95 -0
- snappy/ptolemy/testing_files/data/pgl2/OrientableCuspedCensus/03_tetrahedra/m019__sl2_c1.magma_out +95 -0
- snappy/ptolemy/testing_files/m015__sl3_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c2.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c3.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c4.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c5.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c6.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/m135__sl2_c7.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/s000__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/s000__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/t00000__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/t00000__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/v0000__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/v0000__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/v0000__sl2_c2.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files/v0000__sl2_c3.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m003__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m003__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m003__sl3_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m003__sl3_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m004__sl2_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m004__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m015__sl2_c1.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_generalized/m015__sl3_c0.magma_out.bz2 +0 -0
- snappy/ptolemy/testing_files_rur/m052__sl3_c0.rur.bz2 +0 -0
- snappy/ptolemy/utilities.py +236 -0
- 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 +197 -0
- snappy/raytracing/eyeball.py +124 -0
- snappy/raytracing/finite_raytracing_data.py +237 -0
- snappy/raytracing/finite_viewer.py +590 -0
- snappy/raytracing/geodesic_tube_info.py +174 -0
- snappy/raytracing/geodesics.py +246 -0
- snappy/raytracing/geodesics_window.py +258 -0
- snappy/raytracing/gui_utilities.py +293 -0
- snappy/raytracing/hyperboloid_navigation.py +556 -0
- snappy/raytracing/hyperboloid_utilities.py +234 -0
- snappy/raytracing/ideal_raytracing_data.py +592 -0
- snappy/raytracing/inside_viewer.py +974 -0
- snappy/raytracing/pack.py +22 -0
- snappy/raytracing/raytracing_data.py +126 -0
- snappy/raytracing/raytracing_view.py +454 -0
- snappy/raytracing/shaders/Eye.png +0 -0
- snappy/raytracing/shaders/NonGeometric.png +0 -0
- snappy/raytracing/shaders/__init__.py +101 -0
- snappy/raytracing/shaders/fragment.glsl +1744 -0
- snappy/raytracing/test.py +29 -0
- snappy/raytracing/tooltip.py +146 -0
- snappy/raytracing/upper_halfspace_utilities.py +98 -0
- snappy/raytracing/view_scale_controller.py +98 -0
- snappy/raytracing/zoom_slider/__init__.py +263 -0
- snappy/raytracing/zoom_slider/inward.png +0 -0
- snappy/raytracing/zoom_slider/inward18.png +0 -0
- snappy/raytracing/zoom_slider/outward.png +0 -0
- snappy/raytracing/zoom_slider/outward18.png +0 -0
- snappy/raytracing/zoom_slider/test.py +20 -0
- snappy/sage_helper.py +119 -0
- snappy/settings.py +407 -0
- snappy/shell.py +53 -0
- snappy/snap/__init__.py +117 -0
- snappy/snap/character_varieties.py +375 -0
- snappy/snap/find_field.py +372 -0
- snappy/snap/fox_milnor.py +271 -0
- snappy/snap/fundamental_polyhedron.py +569 -0
- snappy/snap/generators.py +39 -0
- snappy/snap/interval_reps.py +81 -0
- snappy/snap/kernel_structures.py +128 -0
- snappy/snap/mcomplex_base.py +18 -0
- snappy/snap/nsagetools.py +716 -0
- snappy/snap/peripheral/__init__.py +1 -0
- snappy/snap/peripheral/dual_cellulation.py +219 -0
- snappy/snap/peripheral/link.py +127 -0
- snappy/snap/peripheral/peripheral.py +159 -0
- snappy/snap/peripheral/surface.py +522 -0
- snappy/snap/peripheral/test.py +35 -0
- snappy/snap/polished_reps.py +335 -0
- snappy/snap/shapes.py +152 -0
- snappy/snap/slice_obs_HKL/__init__.py +194 -0
- snappy/snap/slice_obs_HKL/basics.py +236 -0
- snappy/snap/slice_obs_HKL/direct.py +217 -0
- snappy/snap/slice_obs_HKL/poly_norm.py +212 -0
- snappy/snap/slice_obs_HKL/rep_theory.py +424 -0
- snappy/snap/t3mlite/__init__.py +2 -0
- snappy/snap/t3mlite/arrow.py +243 -0
- snappy/snap/t3mlite/corner.py +22 -0
- snappy/snap/t3mlite/edge.py +172 -0
- snappy/snap/t3mlite/face.py +37 -0
- snappy/snap/t3mlite/files.py +211 -0
- snappy/snap/t3mlite/homology.py +53 -0
- snappy/snap/t3mlite/linalg.py +419 -0
- snappy/snap/t3mlite/mcomplex.py +1499 -0
- snappy/snap/t3mlite/perm4.py +320 -0
- snappy/snap/t3mlite/setup.py +12 -0
- snappy/snap/t3mlite/simplex.py +199 -0
- snappy/snap/t3mlite/spun.py +297 -0
- snappy/snap/t3mlite/surface.py +519 -0
- snappy/snap/t3mlite/test.py +20 -0
- snappy/snap/t3mlite/test_vs_regina.py +86 -0
- snappy/snap/t3mlite/tetrahedron.py +109 -0
- snappy/snap/t3mlite/vertex.py +42 -0
- snappy/snap/test.py +139 -0
- snappy/snap/utilities.py +288 -0
- snappy/test.py +213 -0
- snappy/test_cases.py +263 -0
- snappy/testing.py +131 -0
- snappy/tiling/__init__.py +2 -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/quotient_dict.py +70 -0
- snappy/tiling/real_hash_dict.py +164 -0
- snappy/tiling/test.py +23 -0
- snappy/tiling/tile.py +224 -0
- snappy/tiling/triangle.py +33 -0
- snappy/tkterminal.py +920 -0
- snappy/twister/__init__.py +20 -0
- snappy/twister/main.py +646 -0
- snappy/twister/surfaces/S_0_1 +3 -0
- snappy/twister/surfaces/S_0_2 +3 -0
- snappy/twister/surfaces/S_0_4 +7 -0
- snappy/twister/surfaces/S_0_4_Lantern +8 -0
- snappy/twister/surfaces/S_1 +3 -0
- snappy/twister/surfaces/S_1_1 +4 -0
- snappy/twister/surfaces/S_1_2 +5 -0
- snappy/twister/surfaces/S_1_2_5 +6 -0
- snappy/twister/surfaces/S_2 +6 -0
- snappy/twister/surfaces/S_2_1 +8 -0
- snappy/twister/surfaces/S_2_heeg +10 -0
- snappy/twister/surfaces/S_3 +8 -0
- snappy/twister/surfaces/S_3_1 +10 -0
- snappy/twister/surfaces/S_4_1 +12 -0
- snappy/twister/surfaces/S_5_1 +14 -0
- snappy/twister/surfaces/heeg_fig8 +9 -0
- snappy/twister/twister_core.cpython-310-aarch64-linux-gnu.so +0 -0
- snappy/upper_halfspace/__init__.py +146 -0
- snappy/upper_halfspace/ideal_point.py +29 -0
- snappy/verify/__init__.py +13 -0
- snappy/verify/canonical.py +542 -0
- snappy/verify/complex_volume/__init__.py +18 -0
- snappy/verify/complex_volume/adjust_torsion.py +86 -0
- snappy/verify/complex_volume/closed.py +168 -0
- snappy/verify/complex_volume/compute_ptolemys.py +90 -0
- snappy/verify/complex_volume/cusped.py +56 -0
- snappy/verify/complex_volume/extended_bloch.py +201 -0
- snappy/verify/cusp_translations.py +85 -0
- snappy/verify/edge_equations.py +80 -0
- snappy/verify/exceptions.py +254 -0
- snappy/verify/hyperbolicity.py +224 -0
- snappy/verify/interval_newton_shapes_engine.py +523 -0
- snappy/verify/interval_tree.py +400 -0
- snappy/verify/krawczyk_shapes_engine.py +518 -0
- snappy/verify/real_algebra.py +286 -0
- snappy/verify/shapes.py +25 -0
- snappy/verify/square_extensions.py +1005 -0
- snappy/verify/test.py +72 -0
- snappy/verify/volume.py +128 -0
- snappy/version.py +2 -0
- snappy-3.3.dist-info/METADATA +58 -0
- snappy-3.3.dist-info/RECORD +541 -0
- snappy-3.3.dist-info/WHEEL +6 -0
- snappy-3.3.dist-info/entry_points.txt +2 -0
- snappy-3.3.dist-info/top_level.txt +28 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
<!DOCTYPE html>
|
|
4
|
+
<html class="writer-html5" lang="en" data-content_root="./">
|
|
5
|
+
<head>
|
|
6
|
+
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
+
<title>SnapPy — SnapPy 3.3 documentation</title>
|
|
10
|
+
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
|
|
11
|
+
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
|
12
|
+
<link rel="stylesheet" type="text/css" href="_static/snappy_sphinx_rtd_theme.css?v=1b8ec2a8" />
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
<link rel="shortcut icon" href="_static/SnapPy.ico"/>
|
|
16
|
+
<script src="_static/jquery.js?v=5d32c60e"></script>
|
|
17
|
+
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
18
|
+
<script src="_static/documentation_options.js?v=26f62d79"></script>
|
|
19
|
+
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
20
|
+
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
21
|
+
<script src="_static/js/theme.js"></script>
|
|
22
|
+
<link rel="index" title="Index" href="genindex.html" />
|
|
23
|
+
<link rel="search" title="Search" href="search.html" />
|
|
24
|
+
<link rel="next" title="Installing SnapPy" href="installing.html" />
|
|
25
|
+
</head>
|
|
26
|
+
|
|
27
|
+
<body class="wy-body-for-nav">
|
|
28
|
+
<div class="wy-grid-for-nav">
|
|
29
|
+
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
30
|
+
<div class="wy-side-scroll">
|
|
31
|
+
<div class="wy-side-nav-search" >
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
<a href="#" class="icon icon-home">
|
|
36
|
+
SnapPy
|
|
37
|
+
<img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
|
|
38
|
+
</a>
|
|
39
|
+
<div role="search">
|
|
40
|
+
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
41
|
+
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
42
|
+
<input type="hidden" name="check_keywords" value="yes" />
|
|
43
|
+
<input type="hidden" name="area" value="default" />
|
|
44
|
+
</form>
|
|
45
|
+
</div>
|
|
46
|
+
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
47
|
+
<ul>
|
|
48
|
+
<li class="toctree-l1"><a class="reference internal" href="installing.html">Installing SnapPy</a></li>
|
|
49
|
+
<li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
|
|
50
|
+
<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
|
|
51
|
+
<li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
|
|
52
|
+
<li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
|
|
53
|
+
<li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
|
|
54
|
+
<li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
|
|
55
|
+
<li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
|
|
56
|
+
<li class="toctree-l1"><a class="reference internal" href="other.html">Other components</a></li>
|
|
57
|
+
<li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
|
|
58
|
+
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
|
|
59
|
+
<li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
|
|
60
|
+
<li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
|
|
61
|
+
<li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
|
|
62
|
+
</ul>
|
|
63
|
+
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</nav>
|
|
67
|
+
|
|
68
|
+
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
69
|
+
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
70
|
+
<a href="#">SnapPy</a>
|
|
71
|
+
</nav>
|
|
72
|
+
|
|
73
|
+
<div class="wy-nav-content">
|
|
74
|
+
<div class="rst-content">
|
|
75
|
+
<div role="navigation" aria-label="Page navigation">
|
|
76
|
+
<ul class="wy-breadcrumbs">
|
|
77
|
+
<li><a href="#" class="icon icon-home" aria-label="Home"></a></li>
|
|
78
|
+
<li class="breadcrumb-item active">SnapPy</li>
|
|
79
|
+
<li class="wy-breadcrumbs-aside">
|
|
80
|
+
</li>
|
|
81
|
+
</ul>
|
|
82
|
+
<hr/>
|
|
83
|
+
</div>
|
|
84
|
+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
85
|
+
<div itemprop="articleBody">
|
|
86
|
+
|
|
87
|
+
<section id="snappy">
|
|
88
|
+
<h1>SnapPy<a class="headerlink" href="#snappy" title="Link to this heading"></a></h1>
|
|
89
|
+
<section id="what-is-snappy">
|
|
90
|
+
<h2>What is SnapPy?<a class="headerlink" href="#what-is-snappy" title="Link to this heading"></a></h2>
|
|
91
|
+
<img alt="SnapPy logo" class="align-right" src="_images/SnapPy-196.png" />
|
|
92
|
+
<p>SnapPy is a program for studying the topology and geometry of
|
|
93
|
+
3-manifolds, with a focus on hyperbolic structures. It runs on Mac OS
|
|
94
|
+
X, Linux, and Windows, and combines a link editor and 3D-graphics for
|
|
95
|
+
Dirichlet domains and cusp neighborhoods with a powerful command-line
|
|
96
|
+
interface based on the <a class="reference external" href="http://python.org">Python</a> programming language. You can see it
|
|
97
|
+
<a class="reference internal" href="screenshots.html"><span class="doc">in action</span></a>, learn how to <a class="reference internal" href="installing.html"><span class="doc">install</span></a>
|
|
98
|
+
it, and watch the <a class="reference internal" href="tutorial.html"><span class="doc">tutorial</span></a>.</p>
|
|
99
|
+
</section>
|
|
100
|
+
<section id="news">
|
|
101
|
+
<h2>News<a class="headerlink" href="#news" title="Link to this heading"></a></h2>
|
|
102
|
+
<ul>
|
|
103
|
+
<li><p>Version 3.3 (January 2026):</p>
|
|
104
|
+
<ul class="simple">
|
|
105
|
+
<li><p><a class="reference internal" href="spherogram.html#spherogram.Link" title="spherogram.Link"><code class="xref py py-class docutils literal notranslate"><span class="pre">Link</span></code></a> now supports band moves and can
|
|
106
|
+
search for ribbon disks and ribbon concordances. See
|
|
107
|
+
<a class="reference internal" href="spherogram.html#spherogram.Link.ribbon_concordant_links" title="spherogram.Link.ribbon_concordant_links"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ribbon_concordant_links</span></code></a> and <a class="reference internal" href="spherogram.html#spherogram.Link.add_band" title="spherogram.Link.add_band"><code class="xref py py-meth docutils literal notranslate"><span class="pre">add_band</span></code></a>. From <a class="reference external" href="https://arXiv.org/abs/2512.21825">[DG]</a>.</p></li>
|
|
108
|
+
<li><p>New census <a class="reference internal" href="censuses.html#snappy.RibbonLinks" title="snappy.RibbonLinks"><code class="xref py py-class docutils literal notranslate"><span class="pre">RibbonLinks</span></code></a>. From <a class="reference external" href="https://arXiv.org/abs/2512.21825">[DG]</a>.</p></li>
|
|
109
|
+
<li><p>Additional slice obstructions added to
|
|
110
|
+
<a class="reference internal" href="triangulation.html#snappy.Triangulation.slice_obstruction_HKL" title="snappy.Triangulation.slice_obstruction_HKL"><code class="xref py py-meth docutils literal notranslate"><span class="pre">slice_obstruction_HKL</span></code></a>.
|
|
111
|
+
From <a class="reference external" href="https://arXiv.org/abs/2512.21825">[DG]</a>.</p></li>
|
|
112
|
+
<li><p>The Fox-Milnor slice obstruction is now available as
|
|
113
|
+
<a class="reference internal" href="triangulation.html#snappy.Triangulation.fox_milnor_test" title="snappy.Triangulation.fox_milnor_test"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fox_milnor_test</span></code></a>.
|
|
114
|
+
From <a class="reference external" href="https://arXiv.org/abs/2512.21825">[DG]</a>.</p></li>
|
|
115
|
+
<li><p>The census <a class="reference internal" href="censuses.html#snappy.OrientableCuspedCensus" title="snappy.OrientableCuspedCensus"><code class="xref py py-class docutils literal notranslate"><span class="pre">OrientableCuspedCensus</span></code></a> has been extended to 10 ideal
|
|
116
|
+
tetrahedra by <a class="reference external" href="https://arXiv.org/abs/2512.02142">[Li]</a>,
|
|
117
|
+
adding 150,000 new manifolds.</p></li>
|
|
118
|
+
<li><p>Margulis number can now be computed with
|
|
119
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.margulis" title="snappy.Manifold.margulis"><code class="xref py py-meth docutils literal notranslate"><span class="pre">margulis</span></code></a>.</p></li>
|
|
120
|
+
<li><p>The upper bounds on the bridge number of a link from <a class="reference external" href="https://dx.doi.org/10.4310/CAG.2020.v28.n2.a2">[BKVV2020]</a> and <a class="reference external" href="https://arxiv.org/abs/2504.10517">[BKP2025]</a> are available as
|
|
121
|
+
<a class="reference internal" href="spherogram.html#spherogram.Link.bridge_upper_bound" title="spherogram.Link.bridge_upper_bound"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bridge_upper_bound</span></code></a>.</p></li>
|
|
122
|
+
<li><p><a class="reference internal" href="manifold.html#snappy.Manifold.triangulation_isosig" title="snappy.Manifold.triangulation_isosig"><code class="xref py py-meth docutils literal notranslate"><span class="pre">triangulation_isosig</span></code></a> now
|
|
123
|
+
preserves the orientation of the core curve rather than the Dehn-filling
|
|
124
|
+
curve - thus, preserving the (unoriented) spun-triangulation structure.
|
|
125
|
+
This only changes the result when <code class="docutils literal notranslate"><span class="pre">ignore_curves=True</span></code> (and
|
|
126
|
+
<code class="docutils literal notranslate"><span class="pre">ignore_orientation</span></code> and <code class="docutils literal notranslate"><span class="pre">ignore_filling_orientations</span></code> have their
|
|
127
|
+
default values).</p></li>
|
|
128
|
+
<li><p>Fixing a bug in
|
|
129
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.length_spectrum_alt" title="snappy.Manifold.length_spectrum_alt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">length_spectrum_alt</span></code></a>
|
|
130
|
+
and
|
|
131
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.length_spectrum_alt_gen" title="snappy.Manifold.length_spectrum_alt_gen"><code class="xref py py-meth docutils literal notranslate"><span class="pre">length_spectrum_alt_gen</span></code></a>.
|
|
132
|
+
The estimate for the upper bound of the global spine radius was not
|
|
133
|
+
correct in all cases. Note that we expect this bug to be very hard to hit
|
|
134
|
+
and do not have a single example where the result of these methods was
|
|
135
|
+
wrong.</p></li>
|
|
136
|
+
<li><p><a class="reference internal" href="manifold.html#snappy.Manifold.length_spectrum_alt" title="snappy.Manifold.length_spectrum_alt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">length_spectrum_alt</span></code></a> can be
|
|
137
|
+
given <code class="docutils literal notranslate"><span class="pre">count</span></code> and <code class="docutils literal notranslate"><span class="pre">max_len</span></code> at the same time. In that case, it stops
|
|
138
|
+
when enough geodesics have been listed to ensure that they include the
|
|
139
|
+
<code class="docutils literal notranslate"><span class="pre">count</span></code> shortest geodesics or that they include all geodesics shorter
|
|
140
|
+
than <code class="docutils literal notranslate"><span class="pre">max_len</span></code>.</p></li>
|
|
141
|
+
<li><p>Acceleration to
|
|
142
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.length_spectrum_alt" title="snappy.Manifold.length_spectrum_alt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">length_spectrum_alt</span></code></a> when
|
|
143
|
+
the next geodesic has large gap to the last geodesic in the result.
|
|
144
|
+
It uses the new <code class="docutils literal notranslate"><span class="pre">include_intermediates=True</span></code> flag of
|
|
145
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.length_spectrum_alt_gen" title="snappy.Manifold.length_spectrum_alt_gen"><code class="xref py py-meth docutils literal notranslate"><span class="pre">length_spectrum_alt_gen</span></code></a>.</p></li>
|
|
146
|
+
<li><p>Computing maximal cusp areas in an unbiased way uses a simpler algorithm
|
|
147
|
+
which also returns tighter intervals for verified computations.
|
|
148
|
+
This affects <a class="reference internal" href="manifold.html#snappy.Manifold.cusp_areas" title="snappy.Manifold.cusp_areas"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cusp_areas</span></code></a> and related
|
|
149
|
+
methods.</p></li>
|
|
150
|
+
<li><p>Support for Python 3.14 and SageMath 10.8.</p></li>
|
|
151
|
+
</ul>
|
|
152
|
+
</li>
|
|
153
|
+
<li><p>Version 3.2 (January 2025):</p>
|
|
154
|
+
<ul>
|
|
155
|
+
<li><p>An alternative implementation of the length spectrum. It supports verified
|
|
156
|
+
computations and is significantly faster in some cases. See
|
|
157
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.length_spectrum_alt" title="snappy.Manifold.length_spectrum_alt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">length_spectrum_alt</span></code></a>
|
|
158
|
+
and
|
|
159
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.length_spectrum_alt_gen" title="snappy.Manifold.length_spectrum_alt_gen"><code class="xref py py-meth docutils literal notranslate"><span class="pre">length_spectrum_alt_gen</span></code></a>.</p></li>
|
|
160
|
+
<li><p><a class="reference internal" href="manifold.html#snappy.Manifold.isometry_signature" title="snappy.Manifold.isometry_signature"><code class="xref py py-meth docutils literal notranslate"><span class="pre">isometry_signature</span></code></a> now also
|
|
161
|
+
works for closed manifolds.</p></li>
|
|
162
|
+
<li><p>A paper plane or eye ball in the
|
|
163
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.inside_view" title="snappy.Manifold.inside_view"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inside_view</span></code></a> showing the position
|
|
164
|
+
and bearing of the user in the hyperbolic manifold. By default, we now show
|
|
165
|
+
the paper plane instead of the edges of the triangulation so that the view
|
|
166
|
+
is intrinsic to the manifold. The geodesics window now also features a
|
|
167
|
+
button to put the camera onto a geodesic. Here are some examples:</p>
|
|
168
|
+
<table class="borderless docutils align-default" style="width: 100%">
|
|
169
|
+
<tbody>
|
|
170
|
+
<tr class="row-odd"><td><a class="reference internal image-reference" href="_images/o9_00000_systole_paper_plane.jpg"><img alt="Paper plane near shortest geodesic of o9_00000" class="align-center" src="_images/o9_00000_systole_paper_plane.jpg" style="width: 90%;" />
|
|
171
|
+
</a>
|
|
172
|
+
</td>
|
|
173
|
+
<td><a class="reference internal image-reference" href="_images/o9_00000_systole_paper_plane_closer.jpg"><img alt="Paper plane very near shortest geodesic of o9_00000" class="align-center" src="_images/o9_00000_systole_paper_plane_closer.jpg" style="width: 90%;" />
|
|
174
|
+
</a>
|
|
175
|
+
</td>
|
|
176
|
+
<td><a class="reference internal image-reference" href="_images/m004_paper_plane_on_systole.jpg"><img alt="Paper plane on shortest geodesic of m004" class="align-center" src="_images/m004_paper_plane_on_systole.jpg" style="width: 90%;" />
|
|
177
|
+
</a>
|
|
178
|
+
</td>
|
|
179
|
+
<td><a class="reference internal image-reference" href="_images/m125_paper_plane.jpg"><img alt="Paper plane coming out of a cusp of m125" class="align-center" src="_images/m125_paper_plane.jpg" style="width: 90%;" />
|
|
180
|
+
</a>
|
|
181
|
+
</td>
|
|
182
|
+
</tr>
|
|
183
|
+
</tbody>
|
|
184
|
+
</table>
|
|
185
|
+
</li>
|
|
186
|
+
<li><p>A faster and more robust algorithm to the compute maximal cusp area matrix.
|
|
187
|
+
The new algorithm is now the default for
|
|
188
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.cusp_area_matrix" title="snappy.Manifold.cusp_area_matrix"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cusp_area_matrix()</span></code></a>,
|
|
189
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.cusp_areas" title="snappy.Manifold.cusp_areas"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cusp_areas()</span></code></a>,
|
|
190
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.short_slopes" title="snappy.Manifold.short_slopes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">short_slopes()</span></code></a> and
|
|
191
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.cusp_translations" title="snappy.Manifold.cusp_translations"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cusp_translations()</span></code></a>.</p></li>
|
|
192
|
+
<li><p>New options <code class="docutils literal notranslate"><span class="pre">ignore_curves</span></code> and <code class="docutils literal notranslate"><span class="pre">ignore_filling_orientations</span></code>
|
|
193
|
+
for <a class="reference internal" href="triangulation.html#snappy.Triangulation.triangulation_isosig" title="snappy.Triangulation.triangulation_isosig"><code class="xref py py-meth docutils literal notranslate"><span class="pre">triangulation_isosig()</span></code></a>. Also
|
|
194
|
+
fixing a subtle bug where the filling coefficients returned by
|
|
195
|
+
<a class="reference internal" href="triangulation.html#snappy.Triangulation.triangulation_isosig" title="snappy.Triangulation.triangulation_isosig"><code class="xref py py-meth docutils literal notranslate"><span class="pre">triangulation_isosig</span></code></a> were
|
|
196
|
+
not canonical when <code class="docutils literal notranslate"><span class="pre">ignore_curve_orientations</span> <span class="pre">=</span> <span class="pre">True</span></code>.</p></li>
|
|
197
|
+
<li><p><a class="reference internal" href="manifold.html#snappy.Manifold.canonical_retriangulation" title="snappy.Manifold.canonical_retriangulation"><code class="xref py py-meth docutils literal notranslate"><span class="pre">canonical_retriangulation()</span></code></a>
|
|
198
|
+
and
|
|
199
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.isometry_signature" title="snappy.Manifold.isometry_signature"><code class="xref py py-meth docutils literal notranslate"><span class="pre">isometry_signature()</span></code></a> fail with
|
|
200
|
+
exceptions rather than silently returning <code class="docutils literal notranslate"><span class="pre">None</span></code>. In particular, it now
|
|
201
|
+
safe to compare isometry signatures (without further checks) to determine
|
|
202
|
+
whether M and N are isometric hyperbolic manifolds:</p>
|
|
203
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">isometry_signature</span><span class="p">(</span><span class="n">verified</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">==</span> <span class="n">N</span><span class="o">.</span><span class="n">isometry_signature</span><span class="p">(</span><span class="n">verified</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
204
|
+
</pre></div>
|
|
205
|
+
</div>
|
|
206
|
+
</li>
|
|
207
|
+
<li><p>Bug fix to <a class="reference internal" href="manifold.html#snappy.Manifold.slice_obstruction_HKL" title="snappy.Manifold.slice_obstruction_HKL"><code class="xref py py-meth docutils literal notranslate"><span class="pre">slice_obstruction_HKL</span></code></a>: earlier versions
|
|
208
|
+
incorrectly allowed looking at mod 2 homology of the branched
|
|
209
|
+
cover, where the theory does not directly apply.</p></li>
|
|
210
|
+
<li><p>New self-contained SnapPy application for Linux.</p></li>
|
|
211
|
+
<li><p>Support for Python 3.13 and SageMath 10.5.</p></li>
|
|
212
|
+
</ul>
|
|
213
|
+
</li>
|
|
214
|
+
<li><p><a class="reference internal" href="news.html"><span class="doc">Complete version history</span></a>.</p></li>
|
|
215
|
+
</ul>
|
|
216
|
+
</section>
|
|
217
|
+
<section id="documentation">
|
|
218
|
+
<h2>Documentation<a class="headerlink" href="#documentation" title="Link to this heading"></a></h2>
|
|
219
|
+
<div class="toctree-wrapper compound">
|
|
220
|
+
<ul>
|
|
221
|
+
<li class="toctree-l1"><a class="reference internal" href="installing.html">Installing SnapPy</a></li>
|
|
222
|
+
<li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
|
|
223
|
+
<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
|
|
224
|
+
<li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
|
|
225
|
+
<li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
|
|
226
|
+
<li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
|
|
227
|
+
<li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
|
|
228
|
+
<li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
|
|
229
|
+
<li class="toctree-l1"><a class="reference internal" href="other.html">Other components</a></li>
|
|
230
|
+
<li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
|
|
231
|
+
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
|
|
232
|
+
<li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
|
|
233
|
+
<li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
|
|
234
|
+
<li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
|
|
235
|
+
</ul>
|
|
236
|
+
</div>
|
|
237
|
+
</section>
|
|
238
|
+
<section id="credits">
|
|
239
|
+
<h2>Credits<a class="headerlink" href="#credits" title="Link to this heading"></a></h2>
|
|
240
|
+
<p>Written by <a class="reference external" href="http://www.math.uic.edu/~culler">Marc Culler</a>, <a class="reference external" href="http://dunfield.info">Nathan
|
|
241
|
+
Dunfield</a>, and <a class="reference external" href="http://www.unhyperbolic.org/">Matthias Goerner</a> using the SnapPea kernel written by
|
|
242
|
+
<a class="reference external" href="http://www.geometrygames.org">Jeff Weeks</a>, with contributions from
|
|
243
|
+
<a class="reference internal" href="credits.html"><span class="doc">many others</span></a>. If you use SnapPy in your work, please
|
|
244
|
+
<a class="reference internal" href="credits.html#citing-snappy"><span class="std std-ref">cite it as described here</span></a>. If you
|
|
245
|
+
encounter problems with SnapPy, <a class="reference internal" href="bugs.html"><span class="doc">please report them</span></a>.</p>
|
|
246
|
+
<p>Released under the terms of the <a class="reference external" href="http://www.gnu.org/licenses/gpl-2.0.txt">GNU General Public License</a>, version 2 or later.</p>
|
|
247
|
+
<p>The development of SnapPy was partially supported by grants from the
|
|
248
|
+
National Science Foundation, including DMS-0707136, DMS-0906155,
|
|
249
|
+
DMS-1105476, DMS-1510204, DMS-1811156, and DMS-2303572, and the
|
|
250
|
+
Institute for Computational and Experimental Research in
|
|
251
|
+
Mathematics. Any opinions, findings, and conclusions or
|
|
252
|
+
recommendations expressed on this site are those of the authors and do
|
|
253
|
+
not necessarily reflect the views of the National Science Foundation.</p>
|
|
254
|
+
</section>
|
|
255
|
+
</section>
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|
261
|
+
<a href="installing.html" class="btn btn-neutral float-right" title="Installing SnapPy" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
<hr/>
|
|
265
|
+
|
|
266
|
+
<div role="contentinfo">
|
|
267
|
+
<p>© Copyright 2009-2026, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
271
|
+
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
272
|
+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
</footer>
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
</section>
|
|
279
|
+
</div>
|
|
280
|
+
<script>
|
|
281
|
+
jQuery(function () {
|
|
282
|
+
SphinxRtdTheme.Navigation.enable(true);
|
|
283
|
+
});
|
|
284
|
+
</script>
|
|
285
|
+
|
|
286
|
+
</body>
|
|
287
|
+
</html>
|