snappy 3.1.1__cp38-cp38-win_amd64.whl → 3.2__cp38-cp38-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- snappy/CyOpenGL.cp38-win_amd64.pyd +0 -0
- snappy/SnapPy.cp38-win_amd64.pyd +0 -0
- snappy/SnapPyHP.cp38-win_amd64.pyd +0 -0
- snappy/__init__.py +299 -402
- snappy/app.py +70 -20
- snappy/browser.py +18 -17
- snappy/canonical.py +249 -0
- snappy/{verify/cusp_shapes.py → cusps/__init__.py} +8 -18
- snappy/cusps/cusp_area_matrix.py +101 -0
- snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +23 -39
- snappy/cusps/maximal_cusp_area_matrix.py +136 -0
- snappy/cusps/test.py +21 -0
- snappy/cusps/trig_cusp_area_matrix.py +63 -0
- snappy/database.py +10 -9
- snappy/decorated_isosig.py +337 -114
- snappy/dev/extended_ptolemy/complexVolumesClosed.py +40 -7
- snappy/dev/extended_ptolemy/extended.py +3 -3
- snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
- snappy/dev/vericlosed/oneVertexTruncatedComplex.py +1 -1
- snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
- snappy/doc/_images/m125_paper_plane.jpg +0 -0
- snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
- snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
- snappy/doc/_sources/additional_classes.rst.txt +40 -40
- snappy/doc/_sources/bugs.rst.txt +14 -14
- snappy/doc/_sources/censuses.rst.txt +51 -51
- snappy/doc/_sources/credits.rst.txt +75 -75
- snappy/doc/_sources/development.rst.txt +259 -239
- snappy/doc/_sources/index.rst.txt +182 -115
- snappy/doc/_sources/installing.rst.txt +247 -264
- snappy/doc/_sources/manifold.rst.txt +6 -6
- snappy/doc/_sources/manifoldhp.rst.txt +46 -46
- snappy/doc/_sources/news.rst.txt +355 -283
- snappy/doc/_sources/other.rst.txt +25 -25
- snappy/doc/_sources/platonic_census.rst.txt +20 -20
- snappy/doc/_sources/plink.rst.txt +102 -102
- snappy/doc/_sources/ptolemy.rst.txt +66 -66
- snappy/doc/_sources/ptolemy_classes.rst.txt +42 -42
- snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -297
- snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -363
- snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -301
- snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -61
- snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -105
- snappy/doc/_sources/screenshots.rst.txt +21 -21
- snappy/doc/_sources/snap.rst.txt +87 -87
- snappy/doc/_sources/snappy.rst.txt +28 -28
- snappy/doc/_sources/spherogram.rst.txt +103 -103
- snappy/doc/_sources/todo.rst.txt +47 -47
- snappy/doc/_sources/triangulation.rst.txt +11 -11
- snappy/doc/_sources/tutorial.rst.txt +49 -49
- snappy/doc/_sources/verify.rst.txt +210 -150
- snappy/doc/_sources/verify_internals.rst.txt +79 -90
- snappy/doc/_static/basic.css +924 -902
- snappy/doc/_static/css/badge_only.css +1 -1
- snappy/doc/_static/css/theme.css +1 -1
- snappy/doc/_static/doctools.js +1 -1
- snappy/doc/_static/documentation_options.js +12 -13
- snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- snappy/doc/_static/js/versions.js +228 -0
- snappy/doc/_static/language_data.js +199 -199
- snappy/doc/_static/pygments.css +74 -73
- snappy/doc/_static/searchtools.js +125 -71
- snappy/doc/_static/snappy_furo.css +33 -33
- snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -42
- snappy/doc/_static/sphinx_highlight.js +13 -3
- snappy/doc/additional_classes.html +1499 -1330
- snappy/doc/bugs.html +131 -134
- snappy/doc/censuses.html +426 -445
- snappy/doc/credits.html +180 -183
- snappy/doc/development.html +383 -363
- snappy/doc/genindex.html +1330 -1409
- snappy/doc/index.html +261 -206
- snappy/doc/installing.html +345 -363
- snappy/doc/manifold.html +3451 -2839
- snappy/doc/manifoldhp.html +179 -182
- snappy/doc/news.html +387 -329
- snappy/doc/objects.inv +0 -0
- snappy/doc/other.html +160 -162
- snappy/doc/platonic_census.html +374 -377
- snappy/doc/plink.html +209 -212
- snappy/doc/ptolemy.html +253 -255
- snappy/doc/ptolemy_classes.html +1143 -1146
- snappy/doc/ptolemy_examples1.html +408 -410
- snappy/doc/ptolemy_examples2.html +470 -473
- snappy/doc/ptolemy_examples3.html +413 -416
- snappy/doc/ptolemy_examples4.html +194 -197
- snappy/doc/ptolemy_prelim.html +247 -250
- snappy/doc/py-modindex.html +164 -167
- snappy/doc/screenshots.html +140 -142
- snappy/doc/search.html +134 -137
- snappy/doc/searchindex.js +1 -1
- snappy/doc/snap.html +201 -204
- snappy/doc/snappy.html +180 -182
- snappy/doc/spherogram.html +1210 -1213
- snappy/doc/todo.html +165 -168
- snappy/doc/triangulation.html +1583 -1474
- snappy/doc/tutorial.html +158 -161
- snappy/doc/verify.html +329 -275
- snappy/doc/verify_internals.html +1234 -1691
- snappy/drilling/__init__.py +153 -235
- snappy/drilling/barycentric.py +103 -0
- snappy/drilling/constants.py +0 -2
- snappy/drilling/crush.py +56 -130
- snappy/drilling/cusps.py +12 -6
- snappy/drilling/debug.py +2 -1
- snappy/drilling/exceptions.py +7 -40
- snappy/drilling/moves.py +302 -243
- snappy/drilling/perturb.py +63 -37
- snappy/drilling/shorten.py +36 -0
- snappy/drilling/subdivide.py +0 -5
- snappy/drilling/test.py +23 -0
- snappy/drilling/test_cases.py +126 -0
- snappy/drilling/tracing.py +9 -37
- snappy/exceptions.py +18 -5
- snappy/exterior_to_link/barycentric_geometry.py +2 -4
- snappy/exterior_to_link/main.py +8 -7
- snappy/exterior_to_link/mcomplex_with_link.py +2 -2
- snappy/exterior_to_link/rational_linear_algebra.py +1 -1
- snappy/exterior_to_link/rational_linear_algebra_wrapped.py +1 -1
- snappy/exterior_to_link/test.py +21 -33
- snappy/geometric_structure/__init__.py +212 -0
- snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
- snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
- snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
- snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
- snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
- snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
- snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
- snappy/geometric_structure/geodesic/__init__.py +0 -0
- snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
- snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
- snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
- snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
- snappy/geometric_structure/geodesic/constants.py +6 -0
- snappy/geometric_structure/geodesic/exceptions.py +22 -0
- snappy/{drilling → geometric_structure/geodesic}/fixed_points.py +34 -9
- snappy/{drilling/geodesic_info.py → geometric_structure/geodesic/geodesic_start_point_info.py} +139 -180
- snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
- snappy/geometric_structure/geodesic/line.py +30 -0
- snappy/geometric_structure/geodesic/multiplicity.py +127 -0
- snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
- snappy/geometric_structure/test.py +22 -0
- snappy/gui.py +23 -13
- snappy/horoviewer.py +7 -7
- snappy/hyperboloid/__init__.py +96 -31
- snappy/hyperboloid/distances.py +245 -0
- snappy/hyperboloid/horoball.py +19 -0
- snappy/hyperboloid/line.py +35 -0
- snappy/hyperboloid/point.py +9 -0
- snappy/hyperboloid/triangle.py +29 -0
- snappy/isometry_signature.py +382 -0
- snappy/len_spec/__init__.py +596 -0
- snappy/len_spec/geodesic_info.py +110 -0
- snappy/len_spec/geodesic_key_info_dict.py +117 -0
- snappy/len_spec/geodesic_piece.py +143 -0
- snappy/len_spec/geometric_structure.py +182 -0
- snappy/len_spec/geometry.py +80 -0
- snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
- snappy/len_spec/spine.py +206 -0
- snappy/len_spec/test.py +24 -0
- snappy/len_spec/test_cases.py +69 -0
- snappy/len_spec/tile.py +275 -0
- snappy/len_spec/word.py +86 -0
- snappy/math_basics.py +39 -13
- snappy/matrix.py +52 -9
- snappy/number.py +12 -6
- snappy/numeric_output_checker.py +2 -3
- snappy/pari.py +8 -4
- snappy/phone_home.py +2 -1
- snappy/polyviewer.py +8 -8
- snappy/ptolemy/__init__.py +1 -1
- snappy/ptolemy/component.py +2 -2
- snappy/ptolemy/coordinates.py +25 -25
- snappy/ptolemy/findLoops.py +9 -9
- snappy/ptolemy/manifoldMethods.py +27 -29
- snappy/ptolemy/polynomial.py +50 -57
- snappy/ptolemy/processFileBase.py +60 -0
- snappy/ptolemy/ptolemyVariety.py +109 -41
- snappy/ptolemy/reginaWrapper.py +4 -4
- snappy/ptolemy/rur.py +1 -1
- snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +9 -9
- snappy/ptolemy/test.py +99 -54
- snappy/ptolemy/utilities.py +1 -1
- snappy/raytracing/__init__.py +64 -0
- snappy/raytracing/additional_horospheres.py +64 -0
- snappy/raytracing/additional_len_spec_choices.py +63 -0
- snappy/raytracing/cohomology_fractal.py +0 -3
- snappy/raytracing/eyeball.py +123 -0
- snappy/raytracing/finite_raytracing_data.py +17 -17
- snappy/raytracing/finite_viewer.py +15 -15
- snappy/raytracing/geodesic_tube_info.py +93 -63
- snappy/raytracing/geodesics.py +94 -64
- snappy/raytracing/geodesics_window.py +56 -34
- snappy/raytracing/gui_utilities.py +21 -6
- snappy/raytracing/hyperboloid_navigation.py +29 -4
- snappy/raytracing/hyperboloid_utilities.py +73 -73
- snappy/raytracing/ideal_raytracing_data.py +121 -91
- snappy/raytracing/inside_viewer.py +199 -66
- snappy/raytracing/pack.py +22 -0
- snappy/raytracing/raytracing_data.py +37 -25
- snappy/raytracing/raytracing_view.py +70 -65
- snappy/raytracing/shaders/Eye.png +0 -0
- snappy/raytracing/shaders/NonGeometric.png +0 -0
- snappy/raytracing/shaders/__init__.py +39 -3
- snappy/raytracing/shaders/fragment.glsl +451 -133
- snappy/raytracing/test.py +29 -0
- snappy/raytracing/tooltip.py +146 -0
- snappy/raytracing/upper_halfspace_utilities.py +42 -9
- snappy/sage_helper.py +67 -134
- snappy/settings.py +90 -77
- snappy/shell.py +2 -0
- snappy/snap/character_varieties.py +2 -2
- snappy/snap/find_field.py +4 -3
- snappy/snap/fundamental_polyhedron.py +2 -2
- snappy/snap/kernel_structures.py +5 -1
- snappy/snap/nsagetools.py +9 -8
- snappy/snap/peripheral/dual_cellulation.py +4 -3
- snappy/snap/peripheral/peripheral.py +2 -2
- snappy/snap/peripheral/surface.py +5 -5
- snappy/snap/peripheral/test.py +1 -1
- snappy/snap/polished_reps.py +8 -8
- snappy/snap/slice_obs_HKL.py +16 -14
- snappy/snap/t3mlite/arrow.py +3 -3
- snappy/snap/t3mlite/edge.py +3 -3
- snappy/snap/t3mlite/homology.py +2 -2
- snappy/snap/t3mlite/mcomplex.py +3 -3
- snappy/snap/t3mlite/simplex.py +12 -0
- snappy/snap/t3mlite/spun.py +18 -17
- snappy/snap/t3mlite/test_vs_regina.py +4 -4
- snappy/snap/test.py +37 -53
- snappy/snap/utilities.py +4 -5
- snappy/test.py +121 -138
- snappy/test_cases.py +263 -0
- snappy/testing.py +131 -0
- snappy/tiling/__init__.py +2 -0
- snappy/tiling/canonical_key_dict.py +59 -0
- snappy/tiling/dict_based_set.py +79 -0
- snappy/tiling/floor.py +49 -0
- snappy/tiling/hyperboloid_dict.py +54 -0
- snappy/tiling/iter_utils.py +78 -0
- snappy/tiling/lifted_tetrahedron.py +22 -0
- snappy/tiling/lifted_tetrahedron_set.py +54 -0
- snappy/tiling/real_hash_dict.py +164 -0
- snappy/tiling/test.py +23 -0
- snappy/tiling/tile.py +215 -0
- snappy/tiling/triangle.py +33 -0
- snappy/tkterminal.py +113 -84
- snappy/twister/main.py +1 -7
- snappy/twister/twister_core.cp38-win_amd64.pyd +0 -0
- snappy/upper_halfspace/__init__.py +78 -17
- snappy/verify/__init__.py +3 -7
- snappy/verify/{verifyCanonical.py → canonical.py} +78 -70
- snappy/verify/complex_volume/adjust_torsion.py +1 -2
- snappy/verify/complex_volume/closed.py +13 -13
- snappy/verify/complex_volume/cusped.py +6 -6
- snappy/verify/complex_volume/extended_bloch.py +5 -8
- snappy/verify/{cuspTranslations.py → cusp_translations.py} +1 -1
- snappy/verify/edge_equations.py +80 -0
- snappy/verify/exceptions.py +0 -55
- snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +3 -3
- snappy/verify/interval_newton_shapes_engine.py +7 -5
- snappy/verify/interval_tree.py +5 -5
- snappy/verify/krawczyk_shapes_engine.py +17 -18
- snappy/verify/maximal_cusp_area_matrix/__init__.py +7 -74
- snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +3 -4
- snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +1 -1
- snappy/verify/{realAlgebra.py → real_algebra.py} +1 -1
- snappy/verify/shapes.py +5 -3
- snappy/verify/short_slopes.py +39 -41
- snappy/verify/{squareExtensions.py → square_extensions.py} +14 -11
- snappy/verify/test.py +57 -60
- snappy/verify/upper_halfspace/extended_matrix.py +1 -1
- snappy/verify/upper_halfspace/finite_point.py +3 -4
- snappy/verify/upper_halfspace/ideal_point.py +9 -9
- snappy/verify/volume.py +2 -2
- snappy/version.py +2 -2
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/METADATA +14 -10
- snappy-3.2.dist-info/RECORD +503 -0
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
- snappy/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/__pycache__/browser.cpython-38.pyc +0 -0
- snappy/__pycache__/cache.cpython-38.pyc +0 -0
- snappy/__pycache__/database.cpython-38.pyc +0 -0
- snappy/__pycache__/db_utilities.cpython-38.pyc +0 -0
- snappy/__pycache__/decorated_isosig.cpython-38.pyc +0 -0
- snappy/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/__pycache__/export_stl.cpython-38.pyc +0 -0
- snappy/__pycache__/filedialog.cpython-38.pyc +0 -0
- snappy/__pycache__/gui.cpython-38.pyc +0 -0
- snappy/__pycache__/horoviewer.cpython-38.pyc +0 -0
- snappy/__pycache__/math_basics.cpython-38.pyc +0 -0
- snappy/__pycache__/matrix.cpython-38.pyc +0 -0
- snappy/__pycache__/number.cpython-38.pyc +0 -0
- snappy/__pycache__/numeric_output_checker.cpython-38.pyc +0 -0
- snappy/__pycache__/pari.cpython-38.pyc +0 -0
- snappy/__pycache__/polyviewer.cpython-38.pyc +0 -0
- snappy/__pycache__/sage_helper.cpython-38.pyc +0 -0
- snappy/__pycache__/version.cpython-38.pyc +0 -0
- snappy/doc/_sources/verify_canon.rst.txt +0 -90
- snappy/doc/_static/jquery-3.6.0.js +0 -10881
- snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
- snappy/doc/_static/js/html5shiv.min.js +0 -4
- snappy/doc/_static/underscore-1.13.1.js +0 -2042
- snappy/doc/_static/underscore.js +0 -6
- snappy/doc/verify_canon.html +0 -304
- snappy/drilling/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/constants.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/crush.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/cusps.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/debug.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/epsilons.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/fixed_points.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_info.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_tube.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geometric_structure.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/line.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/moves.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/peripheral_curves.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/perturb.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/quotient_space.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/spatial_dict.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/subdivide.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/tracing.cpython-38.pyc +0 -0
- snappy/drilling/geodesic_tube.py +0 -441
- snappy/drilling/geometric_structure.py +0 -366
- snappy/drilling/line.py +0 -122
- snappy/drilling/quotient_space.py +0 -94
- snappy/drilling/spatial_dict.py +0 -128
- snappy/exterior_to_link/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/hyp_utils.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/link_projection.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/main.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/pl_utils.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/put_in_S3.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/stored_moves.cpython-38.pyc +0 -0
- snappy/hyperboloid/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/manifolds/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/component.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/coordinates.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/fieldExtensions.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/findLoops.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/homology.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/manifoldMethods.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/matrix.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/polynomial.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processComponents.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileBase.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileDispatch.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processMagmaFile.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processRurFile.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVariety.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/rur.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/utilities.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/character_varieties.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/fundamental_polyhedron.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/interval_reps.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/kernel_structures.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/mcomplex_base.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/nsagetools.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/polished_reps.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/shapes.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/slice_obs_HKL.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/utilities.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/link.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/peripheral.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/surface.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/arrow.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/corner.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/edge.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/face.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/files.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/homology.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/linalg.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/mcomplex.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/perm4.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/simplex.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/spun.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/surface.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/vertex.cpython-38.pyc +0 -0
- snappy/togl/__init__.py +0 -3
- snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
- snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/darwin-tk8.7/Togl2.1/LICENSE +0 -28
- snappy/togl/darwin-tk8.7/Togl2.1/libTogl2.1.dylib +0 -0
- snappy/togl/darwin-tk8.7/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
- snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
- snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
- snappy/twister/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/twister/__pycache__/main.cpython-38.pyc +0 -0
- snappy/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/upper_halfspace/__pycache__/ideal_point.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cuspCrossSection.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cuspTranslations.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cusp_areas.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cusp_shapes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/interval_tree.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/realAlgebra.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/shapes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/short_slopes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/squareExtensions.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/verifyCanonical.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/verifyHyperbolicity.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/volume.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/closed.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/cusped.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-38.pyc +0 -0
- snappy/verify/cuspCrossSection.py +0 -1422
- snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-38.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-38.pyc +0 -0
- snappy-3.1.1.dist-info/RECORD +0 -575
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
snappy/doc/verify.html
CHANGED
@@ -1,276 +1,330 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<link rel="stylesheet"
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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="
|
25
|
-
<link rel="prev" title="Number theory of hyperbolic 3-manifolds" href="snap.html" />
|
26
|
-
</head>
|
27
|
-
|
28
|
-
<body class="wy-body-for-nav">
|
29
|
-
<div class="wy-grid-for-nav">
|
30
|
-
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
31
|
-
<div class="wy-side-scroll">
|
32
|
-
<div class="wy-side-nav-search" >
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
<a href="index.html" class="icon icon-home">
|
37
|
-
SnapPy
|
38
|
-
<img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
|
39
|
-
</a>
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
<
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
</
|
50
|
-
|
51
|
-
|
52
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
53
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
54
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
55
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
56
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
57
|
-
<li class="toctree-
|
58
|
-
<li class="toctree-
|
59
|
-
<li class="toctree-
|
60
|
-
<li class="toctree-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
</
|
65
|
-
</li>
|
66
|
-
</
|
67
|
-
</li>
|
68
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
69
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
70
|
-
<li class="toctree-l1"><a class="reference internal" href="
|
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
|
-
</div>
|
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
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
<
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
</
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
<
|
175
|
-
|
176
|
-
<span class="
|
177
|
-
|
178
|
-
</
|
179
|
-
<p>
|
180
|
-
<
|
181
|
-
|
182
|
-
</
|
183
|
-
<
|
184
|
-
|
185
|
-
<a class="reference
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
</
|
191
|
-
</
|
192
|
-
<p>
|
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
|
-
<a class="reference
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
<p>
|
233
|
-
|
234
|
-
|
235
|
-
<
|
236
|
-
|
237
|
-
<
|
238
|
-
<
|
239
|
-
<
|
240
|
-
</
|
241
|
-
</div>
|
242
|
-
|
243
|
-
</
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
</
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
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>Verified computations — SnapPy 3.2 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=828ea960"></script>
|
19
|
+
<script src="_static/doctools.js?v=9a2dae69"></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="Internals of verified computations" href="verify_internals.html" />
|
25
|
+
<link rel="prev" title="Number theory of hyperbolic 3-manifolds" href="snap.html" />
|
26
|
+
</head>
|
27
|
+
|
28
|
+
<body class="wy-body-for-nav">
|
29
|
+
<div class="wy-grid-for-nav">
|
30
|
+
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
31
|
+
<div class="wy-side-scroll">
|
32
|
+
<div class="wy-side-nav-search" >
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
<a href="index.html" class="icon icon-home">
|
37
|
+
SnapPy
|
38
|
+
<img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
|
39
|
+
</a>
|
40
|
+
<div role="search">
|
41
|
+
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
42
|
+
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
43
|
+
<input type="hidden" name="check_keywords" value="yes" />
|
44
|
+
<input type="hidden" name="area" value="default" />
|
45
|
+
</form>
|
46
|
+
</div>
|
47
|
+
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
48
|
+
<ul class="current">
|
49
|
+
<li class="toctree-l1"><a class="reference internal" href="installing.html">Installing SnapPy</a></li>
|
50
|
+
<li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
|
51
|
+
<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
|
52
|
+
<li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
|
53
|
+
<li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
|
54
|
+
<li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
|
55
|
+
<li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
|
56
|
+
<li class="toctree-l1 current"><a class="current reference internal" href="#">Verified computations</a><ul>
|
57
|
+
<li class="toctree-l2"><a class="reference internal" href="#introduction">Introduction</a></li>
|
58
|
+
<li class="toctree-l2"><a class="reference internal" href="#overview">Overview</a></li>
|
59
|
+
<li class="toctree-l2"><a class="reference internal" href="#verified-computation-topics">Verified computation topics</a><ul>
|
60
|
+
<li class="toctree-l3"><a class="reference internal" href="verify_internals.html">Internals of verified computations</a></li>
|
61
|
+
</ul>
|
62
|
+
</li>
|
63
|
+
</ul>
|
64
|
+
</li>
|
65
|
+
<li class="toctree-l1"><a class="reference internal" href="other.html">Other components</a></li>
|
66
|
+
<li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
|
67
|
+
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
|
68
|
+
<li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
|
69
|
+
<li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
|
70
|
+
<li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
|
71
|
+
</ul>
|
72
|
+
|
73
|
+
</div>
|
74
|
+
</div>
|
75
|
+
</nav>
|
76
|
+
|
77
|
+
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
78
|
+
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
79
|
+
<a href="index.html">SnapPy</a>
|
80
|
+
</nav>
|
81
|
+
|
82
|
+
<div class="wy-nav-content">
|
83
|
+
<div class="rst-content">
|
84
|
+
<div role="navigation" aria-label="Page navigation">
|
85
|
+
<ul class="wy-breadcrumbs">
|
86
|
+
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
87
|
+
<li class="breadcrumb-item active">Verified computations</li>
|
88
|
+
<li class="wy-breadcrumbs-aside">
|
89
|
+
</li>
|
90
|
+
</ul>
|
91
|
+
<hr/>
|
92
|
+
</div>
|
93
|
+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
94
|
+
<div itemprop="articleBody">
|
95
|
+
|
96
|
+
<section id="verified-computations">
|
97
|
+
<h1>Verified computations<a class="headerlink" href="#verified-computations" title="Link to this heading"></a></h1>
|
98
|
+
<section id="introduction">
|
99
|
+
<span id="verify-primer"></span><h2>Introduction<a class="headerlink" href="#introduction" title="Link to this heading"></a></h2>
|
100
|
+
<p>Several SnapPy methods use numerical computations with floating point
|
101
|
+
approximations and can potentially result in incorrect results. This even
|
102
|
+
applies to methods whose output is purely combinatorial such as
|
103
|
+
<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>.</p>
|
104
|
+
<p>Many of these SnapPy methods can be supplied with a <code class="xref py py-attr docutils literal notranslate"><span class="pre">verified</span></code> flag to
|
105
|
+
ensure that the result is provably correct. Note that verified computations are
|
106
|
+
only available when using SnapPy inside <a class="reference external" href="http://sagemath.org">SageMath</a>.
|
107
|
+
If the flag <code class="xref py py-attr docutils literal notranslate"><span class="pre">verified=True</span></code> is specified, an incorrect result is
|
108
|
+
never returned. Instead the method clearly indicates a failure, usually through
|
109
|
+
an exception:</p>
|
110
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m004"</span><span class="p">)</span>
|
111
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">.</span><span class="n">drill_word</span><span class="p">(</span><span class="s1">'abc'</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="n">bits_prec</span> <span class="o">=</span> <span class="mi">40</span><span class="p">)</span>
|
112
|
+
<span class="o">...</span>
|
113
|
+
<span class="n">InsufficientPrecisionError</span><span class="p">:</span> <span class="n">When</span> <span class="n">re</span><span class="o">-</span><span class="n">tracing</span> <span class="n">the</span> <span class="n">geodesic</span><span class="p">,</span> <span class="n">the</span> <span class="n">intersection</span> <span class="k">with</span> <span class="n">the</span> <span class="nb">next</span> <span class="n">tetrahedron</span> <span class="n">face</span> <span class="n">was</span> <span class="n">too</span> <span class="n">close</span> <span class="n">to</span> <span class="n">the</span> <span class="n">previous</span> <span class="n">to</span> <span class="n">tell</span> <span class="n">them</span> <span class="n">apart</span><span class="o">.</span> <span class="n">Increasing</span> <span class="n">the</span> <span class="n">precision</span> <span class="n">will</span> <span class="n">probably</span> <span class="n">avoid</span> <span class="n">this</span> <span class="n">problem</span><span class="o">.</span>
|
114
|
+
</pre></div>
|
115
|
+
</div>
|
116
|
+
<p>Often, such a failure can be advoided by increasing the precision. In
|
117
|
+
particular, this applies if the exception is a (subclass of)
|
118
|
+
<code class="xref py py-class docutils literal notranslate"><span class="pre">InsufficientPrecisionError</span></code>:</p>
|
119
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">.</span><span class="n">drill_word</span><span class="p">(</span><span class="s1">'abc'</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="n">bits_prec</span> <span class="o">=</span> <span class="mi">60</span><span class="p">)</span>
|
120
|
+
<span class="n">m004_drilled</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
|
121
|
+
</pre></div>
|
122
|
+
</div>
|
123
|
+
<p>Note that, <a class="reference internal" href="manifold.html#snappy.Manifold.verify_hyperbolicity" title="snappy.Manifold.verify_hyperbolicity"><code class="xref py py-meth docutils literal notranslate"><span class="pre">verify_hyperbolicity()</span></code></a> is different though
|
124
|
+
and does not throw an exception. Instead, it returns a bool indicating success
|
125
|
+
as part of its output. This is for compatibility with
|
126
|
+
<a class="reference external" href="http://www.oishi.info.waseda.ac.jp/~takayasu/hikmot/">HIKMOT</a>’s
|
127
|
+
<code class="docutils literal notranslate"><span class="pre">verify_hyperbolicty</span></code>:</p>
|
128
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: M.verify_hyperbolicity(bits_prec=10)
|
129
|
+
(False, [])
|
130
|
+
sage: M.verify_hyperbolicity()
|
131
|
+
(True,
|
132
|
+
[0.50000000000000? + 0.86602540378444?*I,
|
133
|
+
0.50000000000000? + 0.86602540378444?*I])
|
134
|
+
</pre></div>
|
135
|
+
</div>
|
136
|
+
<p>As illustrated above, the result consists of intervals
|
137
|
+
(of type SageMath’s <code class="docutils literal notranslate"><span class="pre">RealIntervalField</span></code> or
|
138
|
+
<code class="docutils literal notranslate"><span class="pre">ComplexIntervalField</span></code>) if the output of a computation is numerical
|
139
|
+
and <code class="xref py py-attr docutils literal notranslate"><span class="pre">verified=True</span></code> is specified. These intervals contain the true
|
140
|
+
value.</p>
|
141
|
+
</section>
|
142
|
+
<section id="overview">
|
143
|
+
<h2>Overview<a class="headerlink" href="#overview" title="Link to this heading"></a></h2>
|
144
|
+
<p>Some examples of verified computations are:</p>
|
145
|
+
<ul>
|
146
|
+
<li><p>Verify the hyperbolicity
|
147
|
+
of an orientable 3-manifold giving complex intervals for the
|
148
|
+
shapes corresponding to a hyperbolic structure or holonomy representation with
|
149
|
+
<a class="reference internal" href="manifold.html#snappy.Manifold.verify_hyperbolicity" title="snappy.Manifold.verify_hyperbolicity"><code class="xref py py-meth docutils literal notranslate"><span class="pre">verify_hyperbolicity()</span></code></a>:</p>
|
150
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: M = Manifold("m015")
|
151
|
+
sage: M.verify_hyperbolicity()
|
152
|
+
(True,
|
153
|
+
[0.6623589786224? + 0.5622795120623?*I,
|
154
|
+
0.6623589786224? + 0.5622795120623?*I,
|
155
|
+
0.6623589786224? + 0.5622795120623?*I])
|
156
|
+
sage: M.verify_hyperbolicity(holonomy=True)[1].SL2C('a')
|
157
|
+
[-0.324717957? - 1.124559024?*I -0.704807293? + 0.398888830?*I]
|
158
|
+
[ 1.409614585? - 0.797777659?*I -1.000000000? + 0.?e-9*I]
|
159
|
+
</pre></div>
|
160
|
+
</div>
|
161
|
+
</li>
|
162
|
+
<li><p>Intervals for the volume and complex volume of a hyperbolic orientable 3-manifold:</p>
|
163
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: M = Manifold("m003(-3,1)")
|
164
|
+
sage: M.volume(verified=True, bits_prec = 100)
|
165
|
+
0.942707362776927720921299603?
|
166
|
+
sage: M = Manifold("m015")
|
167
|
+
sage: M.complex_volume(verified_modulo_2_torsion=True)
|
168
|
+
2.8281220883? + 1.9106738240?*I
|
169
|
+
</pre></div>
|
170
|
+
</div>
|
171
|
+
<p>(Note that when using verified computation, the Chern-Simons invariant is only computed
|
172
|
+
modulo pi^2/2 even though it is defined modulo pi^2.)</p>
|
173
|
+
</li>
|
174
|
+
<li><p>Give the (a close relative to the canonical cell decomposition) of a cusped
|
175
|
+
hyperbolic manifold using intervals or exact arithmetic if necessary with
|
176
|
+
<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>:</p>
|
177
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m412"</span><span class="p">)</span>
|
178
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">K</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">canonical_retriangulation</span><span class="p">(</span><span class="n">verified</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
|
179
|
+
<span class="n">sage</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">K</span><span class="o">.</span><span class="n">isomorphisms_to</span><span class="p">(</span><span class="n">K</span><span class="p">))</span> <span class="c1"># Certified size of isometry group</span>
|
180
|
+
<span class="mi">8</span>
|
181
|
+
</pre></div>
|
182
|
+
</div>
|
183
|
+
<p><strong>Remark:</strong> For the case of non-tetrahedral canonical cell, exact values
|
184
|
+
are used which are found
|
185
|
+
using the <a class="reference external" href="http://en.wikipedia.org/wiki/Lenstra%E2%80%93Lenstra%E2%80%93Lov%C3%A1sz_lattice_basis_reduction_algorithm">LLL-algorithm</a>
|
186
|
+
and then verified using exact computations. These computations can be slow. A massive speed-up was achieved by
|
187
|
+
recent improvements so that the computation of the isometry signature of any manifold in <code class="docutils literal notranslate"><span class="pre">OrientableCuspedCensus</span></code>
|
188
|
+
takes at most a couple of seconds, typically, far less. Manifolds with more simplices might require setting
|
189
|
+
a higher value for
|
190
|
+
<code class="xref py py-attr docutils literal notranslate"><span class="pre">exact_bits_prec_and_degrees</span></code>.</p>
|
191
|
+
</li>
|
192
|
+
<li><p>The isometry signature which is a complete invariant of the isometry type
|
193
|
+
of a cusped hyperbolic manifold (i.e., two manifolds are isometric if and only
|
194
|
+
if they have the same isometry signature):</p>
|
195
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m412"</span><span class="p">)</span>
|
196
|
+
<span class="n">sage</span><span class="p">:</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>
|
197
|
+
<span class="s1">'mvvLALQQQhfghjjlilkjklaaaaaffffffff'</span>
|
198
|
+
</pre></div>
|
199
|
+
</div>
|
200
|
+
<p>The isometry signature can be strengthened to include the peripheral curves
|
201
|
+
such that it is a complete invariant of a hyperbolic link:</p>
|
202
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"L5a1"</span><span class="p">)</span>
|
203
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">.</span><span class="n">isometry_signature</span><span class="p">(</span><span class="n">of_link</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">verified</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
|
204
|
+
<span class="s1">'eLPkbdcddhgggb_baCbbaCb'</span>
|
205
|
+
</pre></div>
|
206
|
+
</div>
|
207
|
+
<p>See <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> for details.</p>
|
208
|
+
<p><strong>Remark:</strong> The isometry signature is based on the canonical
|
209
|
+
retriangulation so the same warning applies.</p>
|
210
|
+
</li>
|
211
|
+
<li><p>The maximal cusp area matrix which characterizes the configuration
|
212
|
+
space of disjoint cusp neighborhoods with
|
213
|
+
<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>:</p>
|
214
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: M=Manifold("m203")
|
215
|
+
sage: M.cusp_area_matrix(method='maximal', verified=True)
|
216
|
+
[ 27.000000? 9.0000000000?]
|
217
|
+
[9.0000000000? 27.0000000?]
|
218
|
+
</pre></div>
|
219
|
+
</div>
|
220
|
+
<p>In this example, the cusp neighborhood about cusp 0 or 1 is only
|
221
|
+
embedded if and only if its area is less than sqrt(27). The cusp
|
222
|
+
neighborhood about cusp 0 is only disjoint from the one about cusp 1
|
223
|
+
if and only if the product of their areas is less than 9.</p>
|
224
|
+
</li>
|
225
|
+
<li><p>Compute areas for disjoint cusp neighborhoods with
|
226
|
+
<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>:</p>
|
227
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: M=Manifold("m203")
|
228
|
+
sage: M.cusp_areas(policy = 'unbiased', method='maximal', verified = True)
|
229
|
+
[3.00000000000?, 3.00000000000?]
|
230
|
+
</pre></div>
|
231
|
+
</div>
|
232
|
+
<p>With the above parameters, the result is intrinsic to the hyperbolic
|
233
|
+
manifold with labeled cusped.</p>
|
234
|
+
</li>
|
235
|
+
<li><p>Find all slopes of length less or equal to 6 when measured on the boundary
|
236
|
+
of disjoint cusp neighborhoods:</p>
|
237
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m203"</span><span class="p">)</span>
|
238
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">.</span><span class="n">short_slopes</span><span class="p">(</span><span class="n">policy</span> <span class="o">=</span> <span class="s1">'unbiased'</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'maximal'</span><span class="p">,</span> <span class="n">verified</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
|
239
|
+
<span class="p">[[(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="o">...</span><span class="p">,</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)],</span> <span class="p">[(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="o">...</span><span class="p">,</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)]]</span>
|
240
|
+
</pre></div>
|
241
|
+
</div>
|
242
|
+
<p>First block has all short slopes for first cusp, …, see
|
243
|
+
<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> for details.</p>
|
244
|
+
<p>By <a class="reference external" href="http://arxiv.org/abs/math/9906183">Agol’s</a> and <a class="reference external" href="http://arxiv.org/abs/math/9808120">Lackenby’s</a> 6-Theorem any Dehn-filling
|
245
|
+
resulting in a non-hyperbolic manifold must contain one of the above
|
246
|
+
slopes. Thus, <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> can be used
|
247
|
+
to implement the techniques to find exceptional Dehn surgeries
|
248
|
+
(<a class="reference external" href="https://arxiv.org/abs/1109.0903">arXiv:1109.0903</a> and
|
249
|
+
<a class="reference external" href="https://arxiv.org/abs/1310.3472">arXiv:1310.3472</a>).</p>
|
250
|
+
</li>
|
251
|
+
<li><p>An example of finding all geodesics up to length 1:</p>
|
252
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="kn">from</span> <span class="nn">sage.all</span> <span class="kn">import</span> <span class="n">RIF</span>
|
253
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">L</span> <span class="o">=</span> <span class="n">RIF</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
254
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
255
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">spec</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">length_spectrum_alt_gen</span><span class="p">(</span><span class="n">verified</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
256
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">0</span>
|
257
|
+
<span class="n">sage</span><span class="p">:</span> <span class="k">for</span> <span class="n">g</span> <span class="ow">in</span> <span class="n">spec</span><span class="p">:</span>
|
258
|
+
<span class="o">...</span> <span class="k">if</span> <span class="n">g</span><span class="o">.</span><span class="n">length</span><span class="o">.</span><span class="n">real</span><span class="p">()</span> <span class="o">></span> <span class="n">L</span><span class="p">:</span>
|
259
|
+
<span class="o">...</span> <span class="k">break</span> <span class="c1"># Done! All subsequent geodesics will be longer.</span>
|
260
|
+
<span class="o">...</span> <span class="k">if</span> <span class="n">g</span><span class="o">.</span><span class="n">length</span><span class="o">.</span><span class="n">real</span><span class="p">()</span> <span class="o"><</span> <span class="n">L</span><span class="p">:</span>
|
261
|
+
<span class="o">...</span> <span class="n">n</span> <span class="o">+=</span> <span class="mi">1</span>
|
262
|
+
<span class="o">...</span> <span class="k">continue</span>
|
263
|
+
<span class="o">...</span> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Interval too large. Increase precision."</span><span class="p">)</span>
|
264
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">n</span>
|
265
|
+
<span class="mi">4</span>
|
266
|
+
</pre></div>
|
267
|
+
</div>
|
268
|
+
</li>
|
269
|
+
</ul>
|
270
|
+
<p>Additionally, we can compute complex intervals for the shapes that are
|
271
|
+
guaranteed to contain a true solution to the rectangular gluing equations
|
272
|
+
that is not necessarily a geometric solution (specify <code class="xref py py-attr docutils literal notranslate"><span class="pre">bits_prec</span></code>
|
273
|
+
or <code class="xref py py-attr docutils literal notranslate"><span class="pre">dec_prec</span></code> for higher precision intervals.):</p>
|
274
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: M = Manifold("m015(3,1)")
|
275
|
+
sage: M.tetrahedra_shapes('rect', intervals=True)
|
276
|
+
[0.625222762246? + 3.177940133813?*I,
|
277
|
+
-0.0075523593782? + 0.5131157955971?*I,
|
278
|
+
0.6515818912107? - 0.1955023488930?*I]
|
279
|
+
</pre></div>
|
280
|
+
</div>
|
281
|
+
<p>This is all based on a reimplementation of <a class="reference external" href="http://www.oishi.info.waseda.ac.jp/~takayasu/hikmot/">HIKMOT</a> which
|
282
|
+
pioneered the use of interval methods for hyperbolic manifolds (also see
|
283
|
+
<a class="reference external" href="http://ww2.ii.uj.edu.pl/~zgliczyn/cap07/krawczyk.pdf">Zgliczynski’s notes</a>). It
|
284
|
+
can be used in a way very similar to HIKMOT, but uses Sage’s complex
|
285
|
+
interval types for certification. It furthermore makes use of code by
|
286
|
+
<a class="reference external" href="http://arxiv.org/abs/1407.7827/">Dunfield, Hoffman, Licata</a>.</p>
|
287
|
+
<p>This verification code was contributed by Matthias Goerner.</p>
|
288
|
+
</section>
|
289
|
+
<section id="verified-computation-topics">
|
290
|
+
<h2>Verified computation topics<a class="headerlink" href="#verified-computation-topics" title="Link to this heading"></a></h2>
|
291
|
+
<div class="toctree-wrapper compound">
|
292
|
+
<ul>
|
293
|
+
<li class="toctree-l1"><a class="reference internal" href="verify_internals.html">Internals of verified computations</a></li>
|
294
|
+
</ul>
|
295
|
+
</div>
|
296
|
+
</section>
|
297
|
+
</section>
|
298
|
+
|
299
|
+
|
300
|
+
</div>
|
301
|
+
</div>
|
302
|
+
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
303
|
+
<a href="snap.html" class="btn btn-neutral float-left" title="Number theory of hyperbolic 3-manifolds" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
304
|
+
<a href="verify_internals.html" class="btn btn-neutral float-right" title="Internals of verified computations" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
305
|
+
</div>
|
306
|
+
|
307
|
+
<hr/>
|
308
|
+
|
309
|
+
<div role="contentinfo">
|
310
|
+
<p>© Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
|
311
|
+
</div>
|
312
|
+
|
313
|
+
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
314
|
+
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
315
|
+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
316
|
+
|
317
|
+
|
318
|
+
</footer>
|
319
|
+
</div>
|
320
|
+
</div>
|
321
|
+
</section>
|
322
|
+
</div>
|
323
|
+
<script>
|
324
|
+
jQuery(function () {
|
325
|
+
SphinxRtdTheme.Navigation.enable(true);
|
326
|
+
});
|
327
|
+
</script>
|
328
|
+
|
329
|
+
</body>
|
276
330
|
</html>
|