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
@@ -1,150 +1,210 @@
|
|
1
|
-
Verified computations
|
2
|
-
========================================
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
:
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
-
sage: M=
|
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
|
-
|
1
|
+
Verified computations
|
2
|
+
========================================
|
3
|
+
|
4
|
+
.. _verify-primer:
|
5
|
+
|
6
|
+
Introduction
|
7
|
+
------------
|
8
|
+
|
9
|
+
Several SnapPy methods use numerical computations with floating point
|
10
|
+
approximations and can potentially result in incorrect results. This even
|
11
|
+
applies to methods whose output is purely combinatorial such as
|
12
|
+
:meth:`~snappy.Manifold.canonical_retriangulation`.
|
13
|
+
|
14
|
+
Many of these SnapPy methods can be supplied with a :attr:`verified` flag to
|
15
|
+
ensure that the result is provably correct. Note that verified computations are
|
16
|
+
only available when using SnapPy inside `SageMath <http://sagemath.org>`_.
|
17
|
+
If the flag :attr:`verified=True` is specified, an incorrect result is
|
18
|
+
never returned. Instead the method clearly indicates a failure, usually through
|
19
|
+
an exception::
|
20
|
+
|
21
|
+
sage: M=Manifold("m004")
|
22
|
+
sage: M.drill_word('abc', verified=True, bits_prec = 40)
|
23
|
+
...
|
24
|
+
InsufficientPrecisionError: When re-tracing the geodesic, the intersection with the next tetrahedron face was too close to the previous to tell them apart. Increasing the precision will probably avoid this problem.
|
25
|
+
|
26
|
+
Often, such a failure can be advoided by increasing the precision. In
|
27
|
+
particular, this applies if the exception is a (subclass of)
|
28
|
+
:class:`InsufficientPrecisionError`::
|
29
|
+
|
30
|
+
sage: M.drill_word('abc', verified=True, bits_prec = 60)
|
31
|
+
m004_drilled(0,0)(0,0)
|
32
|
+
|
33
|
+
Note that, :meth:`~snappy.Manifold.verify_hyperbolicity` is different though
|
34
|
+
and does not throw an exception. Instead, it returns a bool indicating success
|
35
|
+
as part of its output. This is for compatibility with
|
36
|
+
`HIKMOT <http://www.oishi.info.waseda.ac.jp/~takayasu/hikmot/>`_'s
|
37
|
+
``verify_hyperbolicty``::
|
38
|
+
|
39
|
+
sage: M.verify_hyperbolicity(bits_prec=10)
|
40
|
+
(False, [])
|
41
|
+
sage: M.verify_hyperbolicity()
|
42
|
+
(True,
|
43
|
+
[0.50000000000000? + 0.86602540378444?*I,
|
44
|
+
0.50000000000000? + 0.86602540378444?*I])
|
45
|
+
|
46
|
+
As illustrated above, the result consists of intervals
|
47
|
+
(of type SageMath's ``RealIntervalField`` or
|
48
|
+
``ComplexIntervalField``) if the output of a computation is numerical
|
49
|
+
and :attr:`verified=True` is specified. These intervals contain the true
|
50
|
+
value.
|
51
|
+
|
52
|
+
Overview
|
53
|
+
--------
|
54
|
+
|
55
|
+
Some examples of verified computations are:
|
56
|
+
|
57
|
+
* Verify the hyperbolicity
|
58
|
+
of an orientable 3-manifold giving complex intervals for the
|
59
|
+
shapes corresponding to a hyperbolic structure or holonomy representation with
|
60
|
+
:meth:`~snappy.Manifold.verify_hyperbolicity`::
|
61
|
+
|
62
|
+
sage: M = Manifold("m015")
|
63
|
+
sage: M.verify_hyperbolicity()
|
64
|
+
(True,
|
65
|
+
[0.6623589786224? + 0.5622795120623?*I,
|
66
|
+
0.6623589786224? + 0.5622795120623?*I,
|
67
|
+
0.6623589786224? + 0.5622795120623?*I])
|
68
|
+
sage: M.verify_hyperbolicity(holonomy=True)[1].SL2C('a')
|
69
|
+
[-0.324717957? - 1.124559024?*I -0.704807293? + 0.398888830?*I]
|
70
|
+
[ 1.409614585? - 0.797777659?*I -1.000000000? + 0.?e-9*I]
|
71
|
+
|
72
|
+
* Intervals for the volume and complex volume of a hyperbolic orientable 3-manifold::
|
73
|
+
|
74
|
+
sage: M = Manifold("m003(-3,1)")
|
75
|
+
sage: M.volume(verified=True, bits_prec = 100)
|
76
|
+
0.942707362776927720921299603?
|
77
|
+
sage: M = Manifold("m015")
|
78
|
+
sage: M.complex_volume(verified_modulo_2_torsion=True)
|
79
|
+
2.8281220883? + 1.9106738240?*I
|
80
|
+
|
81
|
+
(Note that when using verified computation, the Chern-Simons invariant is only computed
|
82
|
+
modulo pi^2/2 even though it is defined modulo pi^2.)
|
83
|
+
|
84
|
+
* Give the (a close relative to the canonical cell decomposition) of a cusped
|
85
|
+
hyperbolic manifold using intervals or exact arithmetic if necessary with
|
86
|
+
:meth:`~snappy.Manifold.canonical_retriangulation`::
|
87
|
+
|
88
|
+
sage: M = Manifold("m412")
|
89
|
+
sage: K = M.canonical_retriangulation(verified = True)
|
90
|
+
sage: len(K.isomorphisms_to(K)) # Certified size of isometry group
|
91
|
+
8
|
92
|
+
|
93
|
+
**Remark:** For the case of non-tetrahedral canonical cell, exact values
|
94
|
+
are used which are found
|
95
|
+
using the `LLL-algorithm
|
96
|
+
<http://en.wikipedia.org/wiki/Lenstra%E2%80%93Lenstra%E2%80%93Lov%C3%A1sz_lattice_basis_reduction_algorithm>`_
|
97
|
+
and then verified using exact computations. These computations can be slow. A massive speed-up was achieved by
|
98
|
+
recent improvements so that the computation of the isometry signature of any manifold in ``OrientableCuspedCensus``
|
99
|
+
takes at most a couple of seconds, typically, far less. Manifolds with more simplices might require setting
|
100
|
+
a higher value for
|
101
|
+
:attr:`exact_bits_prec_and_degrees`.
|
102
|
+
|
103
|
+
* The isometry signature which is a complete invariant of the isometry type
|
104
|
+
of a cusped hyperbolic manifold (i.e., two manifolds are isometric if and only
|
105
|
+
if they have the same isometry signature)::
|
106
|
+
|
107
|
+
sage: M = Manifold("m412")
|
108
|
+
sage: M.isometry_signature(verified = True)
|
109
|
+
'mvvLALQQQhfghjjlilkjklaaaaaffffffff'
|
110
|
+
|
111
|
+
The isometry signature can be strengthened to include the peripheral curves
|
112
|
+
such that it is a complete invariant of a hyperbolic link::
|
113
|
+
|
114
|
+
sage: M = Manifold("L5a1")
|
115
|
+
sage: M.isometry_signature(of_link = True, verified = True)
|
116
|
+
'eLPkbdcddhgggb_baCbbaCb'
|
117
|
+
|
118
|
+
See :meth:`~snappy.Manifold.isometry_signature` for details.
|
119
|
+
|
120
|
+
**Remark:** The isometry signature is based on the canonical
|
121
|
+
retriangulation so the same warning applies.
|
122
|
+
|
123
|
+
* The maximal cusp area matrix which characterizes the configuration
|
124
|
+
space of disjoint cusp neighborhoods with
|
125
|
+
:meth:`~snappy.Manifold.cusp_area_matrix`::
|
126
|
+
|
127
|
+
sage: M=Manifold("m203")
|
128
|
+
sage: M.cusp_area_matrix(method='maximal', verified=True)
|
129
|
+
[ 27.000000? 9.0000000000?]
|
130
|
+
[9.0000000000? 27.0000000?]
|
131
|
+
|
132
|
+
In this example, the cusp neighborhood about cusp 0 or 1 is only
|
133
|
+
embedded if and only if its area is less than sqrt(27). The cusp
|
134
|
+
neighborhood about cusp 0 is only disjoint from the one about cusp 1
|
135
|
+
if and only if the product of their areas is less than 9.
|
136
|
+
|
137
|
+
* Compute areas for disjoint cusp neighborhoods with
|
138
|
+
:meth:`~snappy.Manifold.cusp_areas`::
|
139
|
+
|
140
|
+
sage: M=Manifold("m203")
|
141
|
+
sage: M.cusp_areas(policy = 'unbiased', method='maximal', verified = True)
|
142
|
+
[3.00000000000?, 3.00000000000?]
|
143
|
+
|
144
|
+
With the above parameters, the result is intrinsic to the hyperbolic
|
145
|
+
manifold with labeled cusped.
|
146
|
+
|
147
|
+
* Find all slopes of length less or equal to 6 when measured on the boundary
|
148
|
+
of disjoint cusp neighborhoods::
|
149
|
+
|
150
|
+
sage: M=Manifold("m203")
|
151
|
+
sage: M.short_slopes(policy = 'unbiased', method='maximal', verified = True)
|
152
|
+
[[(1, 0), ..., (1, 2)], [(1, 0), ..., (1, 2)]]
|
153
|
+
|
154
|
+
First block has all short slopes for first cusp, ..., see
|
155
|
+
:meth:`~snappy.Manifold.short_slopes` for details.
|
156
|
+
|
157
|
+
By `Agol's <http://arxiv.org/abs/math/9906183>`_ and `Lackenby's
|
158
|
+
<http://arxiv.org/abs/math/9808120>`_ 6-Theorem any Dehn-filling
|
159
|
+
resulting in a non-hyperbolic manifold must contain one of the above
|
160
|
+
slopes. Thus, :meth:`~snappy.Manifold.short_slopes` can be used
|
161
|
+
to implement the techniques to find exceptional Dehn surgeries
|
162
|
+
(`arXiv:1109.0903 <https://arxiv.org/abs/1109.0903>`_ and
|
163
|
+
`arXiv:1310.3472 <https://arxiv.org/abs/1310.3472>`_).
|
164
|
+
|
165
|
+
* An example of finding all geodesics up to length 1::
|
166
|
+
|
167
|
+
sage: from sage.all import RIF
|
168
|
+
sage: L = RIF(1)
|
169
|
+
sage: M = Manifold("m003")
|
170
|
+
sage: spec = M.length_spectrum_alt_gen(verified=True)
|
171
|
+
sage: n = 0
|
172
|
+
sage: for g in spec:
|
173
|
+
... if g.length.real() > L:
|
174
|
+
... break # Done! All subsequent geodesics will be longer.
|
175
|
+
... if g.length.real() < L:
|
176
|
+
... n += 1
|
177
|
+
... continue
|
178
|
+
... raise Exception("Interval too large. Increase precision.")
|
179
|
+
sage: n
|
180
|
+
4
|
181
|
+
|
182
|
+
Additionally, we can compute complex intervals for the shapes that are
|
183
|
+
guaranteed to contain a true solution to the rectangular gluing equations
|
184
|
+
that is not necessarily a geometric solution (specify :attr:`bits_prec`
|
185
|
+
or :attr:`dec_prec` for higher precision intervals.)::
|
186
|
+
|
187
|
+
sage: M = Manifold("m015(3,1)")
|
188
|
+
sage: M.tetrahedra_shapes('rect', intervals=True)
|
189
|
+
[0.625222762246? + 3.177940133813?*I,
|
190
|
+
-0.0075523593782? + 0.5131157955971?*I,
|
191
|
+
0.6515818912107? - 0.1955023488930?*I]
|
192
|
+
|
193
|
+
This is all based on a reimplementation of `HIKMOT
|
194
|
+
<http://www.oishi.info.waseda.ac.jp/~takayasu/hikmot/>`_ which
|
195
|
+
pioneered the use of interval methods for hyperbolic manifolds (also see
|
196
|
+
`Zgliczynski's notes <http://ww2.ii.uj.edu.pl/~zgliczyn/cap07/krawczyk.pdf>`_). It
|
197
|
+
can be used in a way very similar to HIKMOT, but uses Sage's complex
|
198
|
+
interval types for certification. It furthermore makes use of code by
|
199
|
+
`Dunfield, Hoffman, Licata <http://arxiv.org/abs/1407.7827/>`_.
|
200
|
+
|
201
|
+
This verification code was contributed by Matthias Goerner.
|
202
|
+
|
203
|
+
|
204
|
+
Verified computation topics
|
205
|
+
---------------------------
|
206
|
+
|
207
|
+
.. toctree::
|
208
|
+
:maxdepth: 1
|
209
|
+
|
210
|
+
verify_internals
|
@@ -1,90 +1,79 @@
|
|
1
|
-
Internals of verified computations
|
2
|
-
==================================
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
Naming
|
7
|
-
------
|
8
|
-
|
9
|
-
The names of methods containing ``check`` will raise an exception if
|
10
|
-
the desired property cannot be certified. There are different types of
|
11
|
-
Exceptions to indicate how the certification failed. This type can be
|
12
|
-
used by other methods to perform some action such as changing the
|
13
|
-
triangulation or increasing precision or to give up.
|
14
|
-
|
15
|
-
The user-facing methods have names starting with ``verify`` or
|
16
|
-
``verified`` and will fail more gracefully returning ``False`` or
|
17
|
-
``None`` in such a case.
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
Generating certified shape intervals
|
22
|
-
------------------------------------
|
23
|
-
|
24
|
-
The recommended way to obtain certified intervals for the shapes is via
|
25
|
-
``manifold.tetrahedra_shapes(intervals=True)`` as :doc:`described
|
26
|
-
earlier <verify>`. Here we document the ``KrawczykShapesEngine`` and
|
27
|
-
``IntervalNewtonShapesEngine`` which is implemented internally to
|
28
|
-
generate the intervals. It is of interest for those users who want to
|
29
|
-
understand the underlying interval math and experiment with the Newton
|
30
|
-
interval method or the Krawczyk test. ``CertifiedShapesEngine`` is an
|
31
|
-
alias of either ``KrawczykShapesEngine`` or
|
32
|
-
``IntervalNewtonShapesEngine`` to determine the default method used by
|
33
|
-
verify.
|
34
|
-
|
35
|
-
.. automodule:: snappy.verify
|
36
|
-
.. autoclass:: CertifiedShapesEngine
|
37
|
-
:members:
|
38
|
-
:inherited-members:
|
39
|
-
|
40
|
-
.. autoclass:: IntervalNewtonShapesEngine
|
41
|
-
:members:
|
42
|
-
:inherited-members:
|
43
|
-
|
44
|
-
.. autoclass:: KrawczykShapesEngine
|
45
|
-
:members:
|
46
|
-
:inherited-members:
|
47
|
-
|
48
|
-
|
49
|
-
Verification of hyperbolicity
|
50
|
-
-----------------------------
|
51
|
-
|
52
|
-
Methods containing ``check`` will raise an exception if the desired property
|
53
|
-
cannot be certified. Methods containing ``verify`` or ``verified`` will fail
|
54
|
-
more gracefully returning ``False`` or ``None`` in such a case.
|
55
|
-
|
56
|
-
.. autofunction:: snappy.verify.
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
..
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
..
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
.. automodule:: snappy.verify.
|
79
|
-
|
80
|
-
.. autofunction:: snappy.verify.squareExtensions.find_shapes_as_complex_sqrt_lin_combinations
|
81
|
-
.. autoclass:: SqrtLinCombination
|
82
|
-
:members:
|
83
|
-
.. autoclass:: ComplexSqrtLinCombination
|
84
|
-
:members:
|
85
|
-
|
86
|
-
Exceptions
|
87
|
-
----------
|
88
|
-
|
89
|
-
.. automodule:: snappy.verify.exceptions
|
90
|
-
:members:
|
1
|
+
Internals of verified computations
|
2
|
+
==================================
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
Naming
|
7
|
+
------
|
8
|
+
|
9
|
+
The names of methods containing ``check`` will raise an exception if
|
10
|
+
the desired property cannot be certified. There are different types of
|
11
|
+
Exceptions to indicate how the certification failed. This type can be
|
12
|
+
used by other methods to perform some action such as changing the
|
13
|
+
triangulation or increasing precision or to give up.
|
14
|
+
|
15
|
+
The user-facing methods have names starting with ``verify`` or
|
16
|
+
``verified`` and will fail more gracefully returning ``False`` or
|
17
|
+
``None`` in such a case.
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
Generating certified shape intervals
|
22
|
+
------------------------------------
|
23
|
+
|
24
|
+
The recommended way to obtain certified intervals for the shapes is via
|
25
|
+
``manifold.tetrahedra_shapes(intervals=True)`` as :doc:`described
|
26
|
+
earlier <verify>`. Here we document the ``KrawczykShapesEngine`` and
|
27
|
+
``IntervalNewtonShapesEngine`` which is implemented internally to
|
28
|
+
generate the intervals. It is of interest for those users who want to
|
29
|
+
understand the underlying interval math and experiment with the Newton
|
30
|
+
interval method or the Krawczyk test. ``CertifiedShapesEngine`` is an
|
31
|
+
alias of either ``KrawczykShapesEngine`` or
|
32
|
+
``IntervalNewtonShapesEngine`` to determine the default method used by
|
33
|
+
verify.
|
34
|
+
|
35
|
+
.. automodule:: snappy.verify
|
36
|
+
.. autoclass:: CertifiedShapesEngine
|
37
|
+
:members:
|
38
|
+
:inherited-members:
|
39
|
+
|
40
|
+
.. autoclass:: IntervalNewtonShapesEngine
|
41
|
+
:members:
|
42
|
+
:inherited-members:
|
43
|
+
|
44
|
+
.. autoclass:: KrawczykShapesEngine
|
45
|
+
:members:
|
46
|
+
:inherited-members:
|
47
|
+
|
48
|
+
|
49
|
+
Verification of hyperbolicity
|
50
|
+
-----------------------------
|
51
|
+
|
52
|
+
Methods containing ``check`` will raise an exception if the desired property
|
53
|
+
cannot be certified. Methods containing ``verify`` or ``verified`` will fail
|
54
|
+
more gracefully returning ``False`` or ``None`` in such a case.
|
55
|
+
|
56
|
+
.. autofunction:: snappy.verify.hyperbolicity.check_logarithmic_gluing_equations_and_positively_oriented_tets
|
57
|
+
|
58
|
+
Verified canonical cell decompositions
|
59
|
+
--------------------------------------
|
60
|
+
|
61
|
+
.. autofunction:: snappy.verify.canonical.interval_checked_canonical_triangulation
|
62
|
+
.. autofunction:: snappy.verify.canonical.exactly_checked_canonical_retriangulation
|
63
|
+
|
64
|
+
Exact computations for cusp cross sections
|
65
|
+
------------------------------------------
|
66
|
+
|
67
|
+
.. automodule:: snappy.verify.square_extensions
|
68
|
+
|
69
|
+
.. autofunction:: snappy.verify.square_extensions.find_shapes_as_complex_sqrt_lin_combinations
|
70
|
+
.. autoclass:: SqrtLinCombination
|
71
|
+
:members:
|
72
|
+
.. autoclass:: ComplexSqrtLinCombination
|
73
|
+
:members:
|
74
|
+
|
75
|
+
Exceptions
|
76
|
+
----------
|
77
|
+
|
78
|
+
.. automodule:: snappy.verify.exceptions
|
79
|
+
:members:
|