snappy 3.1.1__cp312-cp312-win_amd64.whl → 3.2__cp312-cp312-win_amd64.whl
Sign up to get free protection for your applications and to get access to all the features.
- snappy/CyOpenGL.cp312-win_amd64.pyd +0 -0
- snappy/SnapPy.cp312-win_amd64.pyd +0 -0
- snappy/SnapPyHP.cp312-win_amd64.pyd +0 -0
- snappy/__init__.py +271 -401
- 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 -924
- 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 -12
- 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 -74
- snappy/doc/_static/searchtools.js +108 -62
- snappy/doc/_static/snappy_furo.css +33 -33
- snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -42
- 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 +6 -3
- 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.cp312-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 +25 -11
- 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-312.pyc +0 -0
- snappy/__pycache__/browser.cpython-312.pyc +0 -0
- snappy/__pycache__/cache.cpython-312.pyc +0 -0
- snappy/__pycache__/database.cpython-312.pyc +0 -0
- snappy/__pycache__/db_utilities.cpython-312.pyc +0 -0
- snappy/__pycache__/decorated_isosig.cpython-312.pyc +0 -0
- snappy/__pycache__/exceptions.cpython-312.pyc +0 -0
- snappy/__pycache__/export_stl.cpython-312.pyc +0 -0
- snappy/__pycache__/filedialog.cpython-312.pyc +0 -0
- snappy/__pycache__/gui.cpython-312.pyc +0 -0
- snappy/__pycache__/horoviewer.cpython-312.pyc +0 -0
- snappy/__pycache__/math_basics.cpython-312.pyc +0 -0
- snappy/__pycache__/matrix.cpython-312.pyc +0 -0
- snappy/__pycache__/number.cpython-312.pyc +0 -0
- snappy/__pycache__/numeric_output_checker.cpython-312.pyc +0 -0
- snappy/__pycache__/pari.cpython-312.pyc +0 -0
- snappy/__pycache__/polyviewer.cpython-312.pyc +0 -0
- snappy/__pycache__/sage_helper.cpython-312.pyc +0 -0
- snappy/__pycache__/version.cpython-312.pyc +0 -0
- snappy/doc/_sources/verify_canon.rst.txt +0 -90
- snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
- snappy/doc/_static/js/html5shiv.min.js +0 -4
- snappy/doc/verify_canon.html +0 -304
- snappy/drilling/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/constants.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/crush.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/cusps.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/debug.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/epsilons.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/exceptions.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/fixed_points.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_info.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_tube.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/geometric_structure.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/line.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/moves.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/peripheral_curves.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/perturb.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/quotient_space.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/spatial_dict.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/subdivide.cpython-312.pyc +0 -0
- snappy/drilling/__pycache__/tracing.cpython-312.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-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/exceptions.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/hyp_utils.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/link_projection.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/main.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/pl_utils.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/put_in_S3.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-312.pyc +0 -0
- snappy/exterior_to_link/__pycache__/stored_moves.cpython-312.pyc +0 -0
- snappy/hyperboloid/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/manifolds/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/component.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/coordinates.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/fieldExtensions.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/findLoops.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/homology.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/manifoldMethods.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/matrix.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/polynomial.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/processComponents.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileBase.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileDispatch.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/processMagmaFile.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/processRurFile.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVariety.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/rur.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-312.pyc +0 -0
- snappy/ptolemy/__pycache__/utilities.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/character_varieties.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/fundamental_polyhedron.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/interval_reps.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/kernel_structures.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/mcomplex_base.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/nsagetools.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/polished_reps.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/shapes.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/slice_obs_HKL.cpython-312.pyc +0 -0
- snappy/snap/__pycache__/utilities.cpython-312.pyc +0 -0
- snappy/snap/peripheral/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-312.pyc +0 -0
- snappy/snap/peripheral/__pycache__/link.cpython-312.pyc +0 -0
- snappy/snap/peripheral/__pycache__/peripheral.cpython-312.pyc +0 -0
- snappy/snap/peripheral/__pycache__/surface.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/arrow.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/corner.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/edge.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/face.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/files.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/homology.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/linalg.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/mcomplex.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/perm4.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/simplex.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/spun.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/surface.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-312.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/vertex.cpython-312.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-312.pyc +0 -0
- snappy/twister/__pycache__/main.cpython-312.pyc +0 -0
- snappy/upper_halfspace/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/upper_halfspace/__pycache__/ideal_point.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/cuspCrossSection.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/cuspTranslations.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/cusp_areas.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/cusp_shapes.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/exceptions.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/interval_tree.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/realAlgebra.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/shapes.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/short_slopes.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/squareExtensions.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/verifyCanonical.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/verifyHyperbolicity.cpython-312.pyc +0 -0
- snappy/verify/__pycache__/volume.cpython-312.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-312.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/closed.cpython-312.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-312.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/cusped.cpython-312.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-312.pyc +0 -0
- snappy/verify/cuspCrossSection.py +0 -1422
- snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-312.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-312.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/__init__.cpython-312.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-312.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-312.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-312.pyc +0 -0
- snappy-3.1.1.dist-info/RECORD +0 -572
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
@@ -1,264 +1,247 @@
|
|
1
|
-
.. Installing SnapPy
|
2
|
-
|
3
|
-
Installing SnapPy
|
4
|
-
=================
|
5
|
-
|
6
|
-
Here are detailed instructions on how to get SnapPy working on a
|
7
|
-
variety of platforms. The current version is |release| which was released
|
8
|
-
on |release_date|. If you encounter problems installing SnapPy,
|
9
|
-
:doc:`please let us know <bugs>`.
|
10
|
-
|
11
|
-
macOS
|
12
|
-
-----
|
13
|
-
|
14
|
-
Simply download `SnapPy.dmg
|
15
|
-
<https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy.dmg>`_
|
16
|
-
and copy SnapPy.app to the Applications folder. Double-click to start
|
17
|
-
it, just like any other application.
|
18
|
-
newer
|
19
|
-
<https://github.com/3-manifolds/SnapPy/releases/>`_.
|
20
|
-
|
21
|
-
Windows
|
22
|
-
-------
|
23
|
-
|
24
|
-
Simply download and run `InstallSnapPy.exe
|
25
|
-
<https://github.com/3-manifolds/SnapPy/releases/latest/download/InstallSnapPy.exe>`_.
|
26
|
-
Earlier releases `can be found here
|
27
|
-
<https://github.com/3-manifolds/SnapPy/releases/>`_.
|
28
|
-
|
29
|
-
|
30
|
-
Linux
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
If
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
python3 setup.py build
|
250
|
-
python3 -m pip install --user .
|
251
|
-
python3 -m snappy.test
|
252
|
-
python3 -m snappy.app
|
253
|
-
|
254
|
-
|
255
|
-
Source code
|
256
|
-
-----------
|
257
|
-
|
258
|
-
The complete source code for all platforms: |tarball|_
|
259
|
-
|
260
|
-
You can also browse our `source code repository
|
261
|
-
<https://github.com/3-manifolds/SnapPy>`_ or clone it using `git
|
262
|
-
<https://git-scm.com/>`_ via::
|
263
|
-
|
264
|
-
git clone https://github.com/3-manifolds/SnapPy.git
|
1
|
+
.. Installing SnapPy
|
2
|
+
|
3
|
+
Installing SnapPy
|
4
|
+
=================
|
5
|
+
|
6
|
+
Here are detailed instructions on how to get SnapPy working on a
|
7
|
+
variety of platforms. The current version is |release| which was released
|
8
|
+
on |release_date|. If you encounter any problems installing SnapPy,
|
9
|
+
:doc:`please let us know <bugs>`.
|
10
|
+
|
11
|
+
macOS
|
12
|
+
-----
|
13
|
+
|
14
|
+
Simply download `SnapPy.dmg
|
15
|
+
<https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy.dmg>`_
|
16
|
+
and copy SnapPy.app to the Applications folder. Double-click to start
|
17
|
+
it, just like any other application. The current version works with macOS 10.14 and
|
18
|
+
newer and earlier releases `can be found here
|
19
|
+
<https://github.com/3-manifolds/SnapPy/releases/>`_.
|
20
|
+
|
21
|
+
Windows
|
22
|
+
-------
|
23
|
+
|
24
|
+
Simply download and run `InstallSnapPy.exe
|
25
|
+
<https://github.com/3-manifolds/SnapPy/releases/latest/download/InstallSnapPy.exe>`_.
|
26
|
+
Earlier releases `can be found here
|
27
|
+
<https://github.com/3-manifolds/SnapPy/releases/>`_.
|
28
|
+
|
29
|
+
|
30
|
+
Linux app
|
31
|
+
---------
|
32
|
+
|
33
|
+
Starting with SnapPy 3.2, a completely self-contained SnapPy `AppImage
|
34
|
+
<https://docs.appimage.org/introduction/quickstart.html#ref-quickstart>`_
|
35
|
+
is available that should work on any Linux system from the last 5
|
36
|
+
years. This AppImage contains its own private copy of Python, so if
|
37
|
+
you plan to use SnapPy in your own Python programs, skip ahead to
|
38
|
+
`Python Modules for Linux`_. Here is the recipe for installing the
|
39
|
+
AppImage in ``~/bin`` after you have downloaded the file
|
40
|
+
`SnapPy-x86_64.AppImage
|
41
|
+
<https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy-x86_64.AppImage.>`_::
|
42
|
+
|
43
|
+
mkdir -p ~/bin
|
44
|
+
mv ~/Downloads/SnapPy-x86_64.AppImage ~/bin
|
45
|
+
chmod +x ~/bin/SnapPy-x86_64.AppImage
|
46
|
+
ln -s -f ~/bin/SnapPy-x86_64.AppImage ~/bin/SnapPy
|
47
|
+
~/bin/SnapPy-x86_64.AppImage --install
|
48
|
+
|
49
|
+
The last command registers the SnapPy app with your desktop system and
|
50
|
+
starts it. Next time, you can start SnapPy by using the desktop
|
51
|
+
search tool with GNOME or the main menu with KDE. You can pin also the icon
|
52
|
+
to your dash or task bar for easy access. From a terminal window, you
|
53
|
+
can also start the app by typing ``SnapPy`` provided ``~/bin`` is in
|
54
|
+
your `$PATH <https://opensource.com/article/17/6/set-path-linux>`_.
|
55
|
+
|
56
|
+
|
57
|
+
Python Modules for macOS or Windows
|
58
|
+
-----------------------------------
|
59
|
+
|
60
|
+
If you write Python programs on macOS or Windows, you may wish to
|
61
|
+
install SnapPy as a Python module into your own copy of Python. We
|
62
|
+
support Python 3.9 and up. (On macOS, use a Python downloaded from
|
63
|
+
`Python.org <http://python.org>`_ and not the one provided by Apple.)
|
64
|
+
After installing Python, you may install a SnapPy module from your
|
65
|
+
Terminal application or Command Prompt with the command::
|
66
|
+
|
67
|
+
python3 -m pip install --upgrade --user snappy snappy_15_knots
|
68
|
+
|
69
|
+
If you do not want the larger version of HTLinkExteriors that includes
|
70
|
+
the 15 crossing knots (it uses 110M of disk space), omit
|
71
|
+
``snappy_15_knots`` from the command.
|
72
|
+
|
73
|
+
|
74
|
+
Python Modules for Linux
|
75
|
+
------------------------
|
76
|
+
|
77
|
+
You can also use SnapPy with your Linux system's version of Python,
|
78
|
+
for example if you want to incorporate SnapPy in your own Python
|
79
|
+
scripts. These instructions assume you have system administrator
|
80
|
+
(superuser) privileges to install software packages from your Linux
|
81
|
+
distribution. (If you're not a superuser, use either the
|
82
|
+
`Linux app`_ or `conda`_.)
|
83
|
+
|
84
|
+
The first step is to install Python and other requirements; here's how
|
85
|
+
to do that on the most popular Linux distributions:
|
86
|
+
|
87
|
+
+ **Ubuntu/Debian/Mint/MX Linux/Elementary:** Tested on Ubuntu 24.04::
|
88
|
+
|
89
|
+
sudo apt install python3-pip python3-tk
|
90
|
+
|
91
|
+
+ **Fedora**: Tested on Fedora 41::
|
92
|
+
|
93
|
+
sudo dnf install python3-pip python3-tkinter
|
94
|
+
|
95
|
+
+ **Arch/Manjaro/EndeavourOS**: Install via::
|
96
|
+
|
97
|
+
sudo pacman -Sy python-pip tk
|
98
|
+
|
99
|
+
+ **openSUSE**: For Tumbleweed::
|
100
|
+
|
101
|
+
sudo zypper install python3-pip python3-tk
|
102
|
+
|
103
|
+
For Leap, as of version 15.6 you need to ask for a recent version of
|
104
|
+
Python or it will give you Python 3.6 which is too old for SnapPy::
|
105
|
+
|
106
|
+
sudo zypper install python312-pip python312-tk
|
107
|
+
|
108
|
+
You will need to replace ``python3`` by ``python3.12`` in subsequent
|
109
|
+
steps.
|
110
|
+
|
111
|
+
+ **Red Hat Enterprise Linux/CentOS/Rocky Linux/AlmaLinux:**: These instructions
|
112
|
+
are for version 8 or later; tested on AlmaLinux 8 and 9::
|
113
|
+
|
114
|
+
sudo dnf install python3.11-pip python3.11-tkinter
|
115
|
+
|
116
|
+
You will also need to replace ``python3`` by ``python3.11`` in subsequent
|
117
|
+
steps.
|
118
|
+
|
119
|
+
|
120
|
+
Next, you need to install the SnapPy Python modules. For this, you can
|
121
|
+
either use a *virtual environment* (``python -m venv``) or do a *user
|
122
|
+
install* (``pip install --user``). The former will work on any
|
123
|
+
version of Linux, whereas the latter is now strongly discouraged on
|
124
|
+
many systems (e.g. Ubuntu 24.04). If you have not previously
|
125
|
+
installed SnapPy on this computer, we recommend using a virtual
|
126
|
+
environment, but suggest a user install if you are upgrading an
|
127
|
+
existing version of SnapPy that was installed in that manner.
|
128
|
+
|
129
|
+
Virtual environment
|
130
|
+
Here is the `official tutorial
|
131
|
+
<https://docs.python.org/3/tutorial/venv.html>`_ on using virtual
|
132
|
+
environments in Python and an `in-depth article
|
133
|
+
<https://realpython.com/python-virtual-environments-a-primer/>`_. A
|
134
|
+
recipe is::
|
135
|
+
|
136
|
+
python3 -m venv snappy_venv
|
137
|
+
# Switch to snappy_venv's Python
|
138
|
+
source snappy_venv/bin/activate
|
139
|
+
pip install snappy snappy_15_knots
|
140
|
+
# Start the SnapPy app!
|
141
|
+
SnapPy
|
142
|
+
# Return to system Python
|
143
|
+
deactivate
|
144
|
+
|
145
|
+
If you always want to use the ``snappy_venv`` Python, adjust your
|
146
|
+
`$PATH <https://opensource.com/article/17/6/set-path-linux>`_ to
|
147
|
+
**start** with ``snappy_venv/bin``.
|
148
|
+
|
149
|
+
User install
|
150
|
+
To do a user install with pip, try::
|
151
|
+
|
152
|
+
# Note no "sudo" below!
|
153
|
+
python3 -m pip install --upgrade --user snappy snappy_15_knots
|
154
|
+
|
155
|
+
If you get a long error message that starts::
|
156
|
+
|
157
|
+
error: externally-managed-environment
|
158
|
+
|
159
|
+
you should probably use a virtual environment; however,
|
160
|
+
you can force pip to do a user install via::
|
161
|
+
|
162
|
+
# Note no "sudo" below!
|
163
|
+
python3 -m pip install --upgrade --user --break-system-packages snappy snappy_15_knots
|
164
|
+
|
165
|
+
Despite the scary name, provided you don't use ``sudo``, this will
|
166
|
+
not actually modify the system packages, but rather install
|
167
|
+
``snappy`` into the subdirectory
|
168
|
+
``~/.local/share/python3.*/site-packages`` of your home directory.
|
169
|
+
|
170
|
+
After a user install, you run the following command to start
|
171
|
+
the app::
|
172
|
+
|
173
|
+
~/.local/bin/SnapPy
|
174
|
+
|
175
|
+
So that you can start SnapPy with just the command ``SnapPy``, make
|
176
|
+
sure ``~/.local/bin`` is in `in your path
|
177
|
+
<https://opensource.com/article/17/6/set-path-linux>`_.
|
178
|
+
|
179
|
+
|
180
|
+
SageMath
|
181
|
+
--------
|
182
|
+
|
183
|
+
SnapPy has some special features when used within `SageMath
|
184
|
+
<http://sagemath.org>`_, the universal mathematics software based on
|
185
|
+
Python. This section describes how to install SnapPy into your
|
186
|
+
existing copy of SageMath::
|
187
|
+
|
188
|
+
sage -pip install --upgrade snappy snappy_15_knots
|
189
|
+
|
190
|
+
Alternatively, SageMath on `CoCalc <https://cocalc.com/>`_ (formerly
|
191
|
+
the SageMathCloud) also has SnapPy preinstalled, and the graphics
|
192
|
+
features even work via the `X11 interface
|
193
|
+
<http://blog.sagemath.com/cocalc/2018/11/05/x11.html>`_, see the
|
194
|
+
bottom of that page for more.
|
195
|
+
|
196
|
+
The graphical features may or may not work, depending on how Tkinter
|
197
|
+
was configured within Sage. (There is no problem on macOS if you use
|
198
|
+
this `SageMath binary
|
199
|
+
<https://github.com/3-manifolds/Sage_macOS/releases>`_.) If the
|
200
|
+
graphical features seem to "hang" when you try to start them, type
|
201
|
+
``%gui tk`` at the Sage prompt; please note that doing so may break
|
202
|
+
Sage's "attach" feature.
|
203
|
+
|
204
|
+
|
205
|
+
Kitchen sink
|
206
|
+
------------
|
207
|
+
|
208
|
+
SnapPy gains extra features when used in `SageMath`_ and one can use
|
209
|
+
Sage's Python to interact not just with SnapPy but a range of other
|
210
|
+
computational tools in low-dimensional topology including
|
211
|
+
`Regina <http://regina-normal.github.io/>`_,
|
212
|
+
`snap <http://snap-pari.sourceforge.net>`_,
|
213
|
+
`heegaard <https://github.com/3-manifolds/heegaard>`_,
|
214
|
+
`gridlink <https://github.com/3-manifolds/gridlink>`_,
|
215
|
+
and `flipper <http://flipper.readthedocs.io>`_.
|
216
|
+
We offer a `prepackaged Docker image
|
217
|
+
<https://hub.docker.com/r/computop/sage/>`_ with all of the above tools
|
218
|
+
and many more; using this is sometimes the easiest way to get a
|
219
|
+
working setup for such multifaceted computations, especially on Windows. For more, watch
|
220
|
+
`this demonstration <https://icerm.brown.edu/video_archive/?play=1992>`_.
|
221
|
+
|
222
|
+
|
223
|
+
Conda
|
224
|
+
-----
|
225
|
+
|
226
|
+
Conda can be used to install Python on all platforms and is a
|
227
|
+
particularly good choice to use SnapPy on the older Linux systems
|
228
|
+
often found on high-performance clusters. Here is a recipe for
|
229
|
+
installing SnapPy into a new conda environment on macOS or Linux::
|
230
|
+
|
231
|
+
source ~/miniforge3/bin/activate
|
232
|
+
mamba create --name snappy_env python=3.12
|
233
|
+
conda activate snappy_env
|
234
|
+
pip install snappy
|
235
|
+
python -m snappy.app
|
236
|
+
|
237
|
+
|
238
|
+
Source code
|
239
|
+
-----------
|
240
|
+
|
241
|
+
The complete source code for all platforms: |tarball|_
|
242
|
+
|
243
|
+
You can also browse our `source code repository
|
244
|
+
<https://github.com/3-manifolds/SnapPy>`_ or clone it using `git
|
245
|
+
<https://git-scm.com/>`_ via::
|
246
|
+
|
247
|
+
git clone https://github.com/3-manifolds/SnapPy.git
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Manifold: the main class
|
2
|
-
========================
|
3
|
-
|
4
|
-
.. autoclass:: snappy.Manifold
|
5
|
-
:members:
|
6
|
-
:inherited-members:
|
1
|
+
Manifold: the main class
|
2
|
+
========================
|
3
|
+
|
4
|
+
.. autoclass:: snappy.Manifold
|
5
|
+
:members:
|
6
|
+
:inherited-members:
|
@@ -1,46 +1,46 @@
|
|
1
|
-
ManifoldHP: High-precision variant
|
2
|
-
==================================================
|
3
|
-
|
4
|
-
A ManifoldHP is a variant of :class:`Manifold <snappy.Manifold>` which
|
5
|
-
does all floating-point calculations in `quad-double precision
|
6
|
-
<http://web.mit.edu/tabbott/Public/quaddouble-debian/qd-2.3.4-old/docs/qd.pdf>`_,
|
7
|
-
which has four times as many significant digits as the ordinary
|
8
|
-
`double precision numbers
|
9
|
-
<http://en.wikipedia.org/wiki/Double_precision_floating-point_format>`_
|
10
|
-
used by Manifold. More precisely, numbers used in ManifoldHP have 212
|
11
|
-
bits for the mantissa/significand (roughly 63 decimal digits) versus
|
12
|
-
53 bits with Manifold.
|
13
|
-
|
14
|
-
To the user, the only difference between Manifold and ManifoldHP is the extra precision::
|
15
|
-
|
16
|
-
>>> L = Manifold('m004')
|
17
|
-
>>> L.volume()
|
18
|
-
2.02988321282
|
19
|
-
>>> H = ManifoldHP('m004')
|
20
|
-
>>> H.volume()
|
21
|
-
2.029883212819307250042405108549040571883378615060599584034978214
|
22
|
-
|
23
|
-
and it is easy to go back and forth between the two types::
|
24
|
-
|
25
|
-
>>> D = H.low_precision()
|
26
|
-
>>> D.volume(), type(D)
|
27
|
-
(2.02988321282, <class 'snappy.Manifold'>)
|
28
|
-
>>> U = L.high_precision()
|
29
|
-
>>> type(U)
|
30
|
-
<class 'snappy.ManifoldHP'>
|
31
|
-
|
32
|
-
FAQ
|
33
|
-
---
|
34
|
-
|
35
|
-
Q. How does this differ from the program `Snap <http://snap-pari.sourceforge.net/>`_ or the :doc:`corresponding features <snap>` of SnapPy?
|
36
|
-
|
37
|
-
A. Snap computes hyperbolic structures to whatever precision you specify, not just 212 bits. However, only some aspects of that structure can be accessed at the higher precision. In contrast, with ManifoldHP every part of the SnapPea kernel uses the high-precision structure. Eventually, we hope to add a ManifoldAP which allows for arbitrary precision throughout the kernel.
|
38
|
-
|
39
|
-
Q. Are there any negatives to using ManifoldHP over Manifold?
|
40
|
-
|
41
|
-
A. Yes, ManifoldHP is generally slower by a factor of 10 to 100. Multiplying two quad-double numbers requires at least 10 ordinary double multiplications, so some of this is inevitable.
|
42
|
-
|
43
|
-
Q. What is one place where the extra precision really helps?
|
44
|
-
|
45
|
-
A. Computing Dirichlet domains and subsidiary things like the length spectrum. A ManifoldHP can find the Dirichlet domain of a typically 15 crossing knot exterior but Manifold can't.
|
46
|
-
|
1
|
+
ManifoldHP: High-precision variant
|
2
|
+
==================================================
|
3
|
+
|
4
|
+
A ManifoldHP is a variant of :class:`Manifold <snappy.Manifold>` which
|
5
|
+
does all floating-point calculations in `quad-double precision
|
6
|
+
<http://web.mit.edu/tabbott/Public/quaddouble-debian/qd-2.3.4-old/docs/qd.pdf>`_,
|
7
|
+
which has four times as many significant digits as the ordinary
|
8
|
+
`double precision numbers
|
9
|
+
<http://en.wikipedia.org/wiki/Double_precision_floating-point_format>`_
|
10
|
+
used by Manifold. More precisely, numbers used in ManifoldHP have 212
|
11
|
+
bits for the mantissa/significand (roughly 63 decimal digits) versus
|
12
|
+
53 bits with Manifold.
|
13
|
+
|
14
|
+
To the user, the only difference between Manifold and ManifoldHP is the extra precision::
|
15
|
+
|
16
|
+
>>> L = Manifold('m004')
|
17
|
+
>>> L.volume()
|
18
|
+
2.02988321282
|
19
|
+
>>> H = ManifoldHP('m004')
|
20
|
+
>>> H.volume()
|
21
|
+
2.029883212819307250042405108549040571883378615060599584034978214
|
22
|
+
|
23
|
+
and it is easy to go back and forth between the two types::
|
24
|
+
|
25
|
+
>>> D = H.low_precision()
|
26
|
+
>>> D.volume(), type(D)
|
27
|
+
(2.02988321282, <class 'snappy.Manifold'>)
|
28
|
+
>>> U = L.high_precision()
|
29
|
+
>>> type(U)
|
30
|
+
<class 'snappy.ManifoldHP'>
|
31
|
+
|
32
|
+
FAQ
|
33
|
+
---
|
34
|
+
|
35
|
+
Q. How does this differ from the program `Snap <http://snap-pari.sourceforge.net/>`_ or the :doc:`corresponding features <snap>` of SnapPy?
|
36
|
+
|
37
|
+
A. Snap computes hyperbolic structures to whatever precision you specify, not just 212 bits. However, only some aspects of that structure can be accessed at the higher precision. In contrast, with ManifoldHP every part of the SnapPea kernel uses the high-precision structure. Eventually, we hope to add a ManifoldAP which allows for arbitrary precision throughout the kernel.
|
38
|
+
|
39
|
+
Q. Are there any negatives to using ManifoldHP over Manifold?
|
40
|
+
|
41
|
+
A. Yes, ManifoldHP is generally slower by a factor of 10 to 100. Multiplying two quad-double numbers requires at least 10 ordinary double multiplications, so some of this is inevitable.
|
42
|
+
|
43
|
+
Q. What is one place where the extra precision really helps?
|
44
|
+
|
45
|
+
A. Computing Dirichlet domains and subsidiary things like the length spectrum. A ManifoldHP can find the Dirichlet domain of a typically 15 crossing knot exterior but Manifold can't.
|
46
|
+
|