snappy 3.1.1__cp311-cp311-macosx_11_0_arm64.whl → 3.2__cp311-cp311-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- snappy/CyOpenGL.cpython-311-darwin.so +0 -0
- snappy/SnapPy.cpython-311-darwin.so +0 -0
- snappy/SnapPyHP.cpython-311-darwin.so +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/development.rst.txt +66 -46
- snappy/doc/_sources/index.rst.txt +72 -5
- snappy/doc/_sources/installing.rst.txt +145 -162
- snappy/doc/_sources/news.rst.txt +73 -1
- snappy/doc/_sources/ptolemy_examples1.rst.txt +8 -7
- snappy/doc/_sources/ptolemy_examples3.rst.txt +2 -2
- snappy/doc/_sources/triangulation.rst.txt +2 -2
- snappy/doc/_sources/verify.rst.txt +89 -29
- snappy/doc/_sources/verify_internals.rst.txt +5 -16
- snappy/doc/_static/basic.css +23 -1
- 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 +2 -3
- 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 +2 -2
- snappy/doc/_static/pygments.css +1 -0
- snappy/doc/_static/searchtools.js +125 -71
- snappy/doc/_static/sphinx_highlight.js +13 -3
- snappy/doc/additional_classes.html +291 -122
- snappy/doc/bugs.html +17 -20
- snappy/doc/censuses.html +34 -53
- snappy/doc/credits.html +18 -21
- snappy/doc/development.html +88 -68
- snappy/doc/genindex.html +66 -145
- snappy/doc/index.html +86 -31
- snappy/doc/installing.html +164 -182
- snappy/doc/manifold.html +1168 -556
- snappy/doc/manifoldhp.html +18 -21
- snappy/doc/news.html +91 -33
- snappy/doc/objects.inv +0 -0
- snappy/doc/other.html +20 -22
- snappy/doc/platonic_census.html +31 -34
- snappy/doc/plink.html +19 -22
- snappy/doc/ptolemy.html +20 -22
- snappy/doc/ptolemy_classes.html +102 -105
- snappy/doc/ptolemy_examples1.html +34 -36
- snappy/doc/ptolemy_examples2.html +28 -31
- snappy/doc/ptolemy_examples3.html +26 -29
- snappy/doc/ptolemy_examples4.html +20 -23
- snappy/doc/ptolemy_prelim.html +25 -28
- snappy/doc/py-modindex.html +16 -19
- snappy/doc/screenshots.html +22 -24
- snappy/doc/search.html +15 -18
- snappy/doc/searchindex.js +1 -1
- snappy/doc/snap.html +18 -21
- snappy/doc/snappy.html +18 -20
- snappy/doc/spherogram.html +84 -87
- snappy/doc/todo.html +17 -20
- snappy/doc/triangulation.html +324 -215
- snappy/doc/tutorial.html +17 -20
- snappy/doc/verify.html +100 -46
- snappy/doc/verify_internals.html +106 -563
- 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.cpython-311-darwin.so +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 +26 -11
- snappy-3.2.dist-info/RECORD +503 -0
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
- snappy/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/__pycache__/browser.cpython-311.pyc +0 -0
- snappy/__pycache__/cache.cpython-311.pyc +0 -0
- snappy/__pycache__/database.cpython-311.pyc +0 -0
- snappy/__pycache__/db_utilities.cpython-311.pyc +0 -0
- snappy/__pycache__/decorated_isosig.cpython-311.pyc +0 -0
- snappy/__pycache__/exceptions.cpython-311.pyc +0 -0
- snappy/__pycache__/export_stl.cpython-311.pyc +0 -0
- snappy/__pycache__/filedialog.cpython-311.pyc +0 -0
- snappy/__pycache__/gui.cpython-311.pyc +0 -0
- snappy/__pycache__/horoviewer.cpython-311.pyc +0 -0
- snappy/__pycache__/infowindow.cpython-311.pyc +0 -0
- snappy/__pycache__/math_basics.cpython-311.pyc +0 -0
- snappy/__pycache__/matrix.cpython-311.pyc +0 -0
- snappy/__pycache__/number.cpython-311.pyc +0 -0
- snappy/__pycache__/numeric_output_checker.cpython-311.pyc +0 -0
- snappy/__pycache__/pari.cpython-311.pyc +0 -0
- snappy/__pycache__/polyviewer.cpython-311.pyc +0 -0
- snappy/__pycache__/sage_helper.cpython-311.pyc +0 -0
- snappy/__pycache__/version.cpython-311.pyc +0 -0
- snappy/doc/_sources/verify_canon.rst.txt +0 -90
- snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
- snappy/doc/_static/js/html5shiv.min.js +0 -4
- snappy/doc/verify_canon.html +0 -304
- snappy/drilling/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/constants.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/crush.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/cusps.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/debug.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/epsilons.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/exceptions.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/fixed_points.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_info.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_tube.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/geometric_structure.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/line.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/moves.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/peripheral_curves.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/perturb.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/quotient_space.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/spatial_dict.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/subdivide.cpython-311.pyc +0 -0
- snappy/drilling/__pycache__/tracing.cpython-311.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-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/exceptions.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/hyp_utils.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/link_projection.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/main.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/pl_utils.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/put_in_S3.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-311.pyc +0 -0
- snappy/exterior_to_link/__pycache__/stored_moves.cpython-311.pyc +0 -0
- snappy/hyperboloid/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/manifolds/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/component.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/coordinates.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/fieldExtensions.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/findLoops.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/homology.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/manifoldMethods.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/matrix.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/polynomial.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/processComponents.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileBase.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileDispatch.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/processMagmaFile.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/processRurFile.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVariety.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/rur.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
- snappy/ptolemy/__pycache__/utilities.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/finite_raytracing_data.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/gui_utilities.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/hyperboloid_navigation.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/hyperboloid_utilities.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/ideal_raytracing_data.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/inside_viewer.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/raytracing_data.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/raytracing_view.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/upper_halfspace_utilities.cpython-311.pyc +0 -0
- snappy/raytracing/__pycache__/view_scale_controller.cpython-311.pyc +0 -0
- snappy/raytracing/zoom_slider/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/character_varieties.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/fundamental_polyhedron.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/interval_reps.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/kernel_structures.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/mcomplex_base.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/nsagetools.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/polished_reps.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/shapes.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/slice_obs_HKL.cpython-311.pyc +0 -0
- snappy/snap/__pycache__/utilities.cpython-311.pyc +0 -0
- snappy/snap/peripheral/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-311.pyc +0 -0
- snappy/snap/peripheral/__pycache__/link.cpython-311.pyc +0 -0
- snappy/snap/peripheral/__pycache__/peripheral.cpython-311.pyc +0 -0
- snappy/snap/peripheral/__pycache__/surface.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/arrow.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/corner.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/edge.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/face.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/files.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/homology.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/linalg.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/mcomplex.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/perm4.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/simplex.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/spun.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/surface.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-311.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/vertex.cpython-311.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-311.pyc +0 -0
- snappy/twister/__pycache__/main.cpython-311.pyc +0 -0
- snappy/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/cuspCrossSection.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/cuspTranslations.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/cusp_areas.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/cusp_shapes.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/exceptions.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/interval_tree.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/realAlgebra.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/shapes.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/short_slopes.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/squareExtensions.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/verifyCanonical.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/verifyHyperbolicity.cpython-311.pyc +0 -0
- snappy/verify/__pycache__/volume.cpython-311.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-311.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/closed.cpython-311.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-311.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/cusped.cpython-311.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-311.pyc +0 -0
- snappy/verify/cuspCrossSection.py +0 -1422
- snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-311.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-311.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-311.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-311.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
- snappy-3.1.1.dist-info/RECORD +0 -585
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
snappy/doc/verify_internals.html
CHANGED
@@ -1,28 +1,28 @@
|
|
1
|
+
|
2
|
+
|
1
3
|
<!DOCTYPE html>
|
2
|
-
<html class="writer-html5" lang="en" >
|
4
|
+
<html class="writer-html5" lang="en" data-content_root="./">
|
3
5
|
<head>
|
4
|
-
<meta charset="utf-8" /><meta name="
|
6
|
+
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
7
|
|
6
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>Internals of verified computations — SnapPy 3.
|
8
|
-
<link rel="stylesheet"
|
9
|
-
<link rel="stylesheet" href="_static/css/theme.css
|
10
|
-
<link rel="stylesheet"
|
11
|
-
|
12
|
-
<!--[if lt IE 9]>
|
13
|
-
<script src="_static/js/html5shiv.min.js"></script>
|
14
|
-
<![endif]-->
|
9
|
+
<title>Internals of 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
|
+
|
15
14
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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
21
|
<script src="_static/js/theme.js"></script>
|
22
22
|
<link rel="index" title="Index" href="genindex.html" />
|
23
23
|
<link rel="search" title="Search" href="search.html" />
|
24
24
|
<link rel="next" title="Other components" href="other.html" />
|
25
|
-
<link rel="prev" title="
|
25
|
+
<link rel="prev" title="Verified computations" href="verify.html" />
|
26
26
|
</head>
|
27
27
|
|
28
28
|
<body class="wy-body-for-nav">
|
@@ -37,9 +37,6 @@
|
|
37
37
|
SnapPy
|
38
38
|
<img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
|
39
39
|
</a>
|
40
|
-
<div class="version">
|
41
|
-
3.1.1
|
42
|
-
</div>
|
43
40
|
<div role="search">
|
44
41
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
45
42
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
@@ -57,9 +54,9 @@
|
|
57
54
|
<li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
|
58
55
|
<li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
|
59
56
|
<li class="toctree-l1 current"><a class="reference internal" href="verify.html">Verified computations</a><ul class="current">
|
57
|
+
<li class="toctree-l2"><a class="reference internal" href="verify.html#introduction">Introduction</a></li>
|
60
58
|
<li class="toctree-l2"><a class="reference internal" href="verify.html#overview">Overview</a></li>
|
61
59
|
<li class="toctree-l2 current"><a class="reference internal" href="verify.html#verified-computation-topics">Verified computation topics</a><ul class="current">
|
62
|
-
<li class="toctree-l3"><a class="reference internal" href="verify_canon.html">Canonical retriangulation and isometry signature</a></li>
|
63
60
|
<li class="toctree-l3 current"><a class="current reference internal" href="#">Internals of verified computations</a><ul>
|
64
61
|
<li class="toctree-l4"><a class="reference internal" href="#naming">Naming</a></li>
|
65
62
|
<li class="toctree-l4"><a class="reference internal" href="#generating-certified-shape-intervals">Generating certified shape intervals</a><ul>
|
@@ -69,31 +66,22 @@
|
|
69
66
|
</ul>
|
70
67
|
</li>
|
71
68
|
<li class="toctree-l4"><a class="reference internal" href="#verification-of-hyperbolicity">Verification of hyperbolicity</a><ul>
|
72
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.
|
73
|
-
</ul>
|
74
|
-
</li>
|
75
|
-
<li class="toctree-l4"><a class="reference internal" href="#cusp-cross-sections">Cusp cross sections</a><ul>
|
76
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.RealCuspCrossSection"><code class="docutils literal notranslate"><span class="pre">RealCuspCrossSection</span></code></a></li>
|
77
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.ComplexCuspCrossSection"><code class="docutils literal notranslate"><span class="pre">ComplexCuspCrossSection</span></code></a></li>
|
69
|
+
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.hyperbolicity.check_logarithmic_gluing_equations_and_positively_oriented_tets"><code class="docutils literal notranslate"><span class="pre">check_logarithmic_gluing_equations_and_positively_oriented_tets()</span></code></a></li>
|
78
70
|
</ul>
|
79
71
|
</li>
|
80
72
|
<li class="toctree-l4"><a class="reference internal" href="#verified-canonical-cell-decompositions">Verified canonical cell decompositions</a><ul>
|
81
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.
|
82
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.
|
73
|
+
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.canonical.interval_checked_canonical_triangulation"><code class="docutils literal notranslate"><span class="pre">interval_checked_canonical_triangulation()</span></code></a></li>
|
74
|
+
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.canonical.exactly_checked_canonical_retriangulation"><code class="docutils literal notranslate"><span class="pre">exactly_checked_canonical_retriangulation()</span></code></a></li>
|
83
75
|
</ul>
|
84
76
|
</li>
|
85
|
-
<li class="toctree-l4"><a class="reference internal" href="#module-snappy.verify.
|
86
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.
|
87
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.
|
88
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.
|
77
|
+
<li class="toctree-l4"><a class="reference internal" href="#module-snappy.verify.square_extensions">Exact computations for cusp cross sections</a><ul>
|
78
|
+
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.square_extensions.find_shapes_as_complex_sqrt_lin_combinations"><code class="docutils literal notranslate"><span class="pre">find_shapes_as_complex_sqrt_lin_combinations()</span></code></a></li>
|
79
|
+
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.square_extensions.SqrtLinCombination"><code class="docutils literal notranslate"><span class="pre">SqrtLinCombination</span></code></a></li>
|
80
|
+
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.square_extensions.ComplexSqrtLinCombination"><code class="docutils literal notranslate"><span class="pre">ComplexSqrtLinCombination</span></code></a></li>
|
89
81
|
</ul>
|
90
82
|
</li>
|
91
83
|
<li class="toctree-l4"><a class="reference internal" href="#module-snappy.verify.exceptions">Exceptions</a><ul>
|
92
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.ConsistencyWithSnapPeaNumericalVerifyError"><code class="docutils literal notranslate"><span class="pre">ConsistencyWithSnapPeaNumericalVerifyError</span></code></a></li>
|
93
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.ConsistencyWithSnapPeaType"><code class="docutils literal notranslate"><span class="pre">ConsistencyWithSnapPeaType</span></code></a></li>
|
94
84
|
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.CuspConsistencyType"><code class="docutils literal notranslate"><span class="pre">CuspConsistencyType</span></code></a></li>
|
95
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.CuspDevelopmentExactVerifyError"><code class="docutils literal notranslate"><span class="pre">CuspDevelopmentExactVerifyError</span></code></a></li>
|
96
|
-
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.CuspDevelopmentType"><code class="docutils literal notranslate"><span class="pre">CuspDevelopmentType</span></code></a></li>
|
97
85
|
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.CuspEquationExactVerifyError"><code class="docutils literal notranslate"><span class="pre">CuspEquationExactVerifyError</span></code></a></li>
|
98
86
|
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.CuspEquationLogLiftNumericalVerifyError"><code class="docutils literal notranslate"><span class="pre">CuspEquationLogLiftNumericalVerifyError</span></code></a></li>
|
99
87
|
<li class="toctree-l5"><a class="reference internal" href="#snappy.verify.exceptions.CuspEquationType"><code class="docutils literal notranslate"><span class="pre">CuspEquationType</span></code></a></li>
|
@@ -154,9 +142,9 @@
|
|
154
142
|
<div itemprop="articleBody">
|
155
143
|
|
156
144
|
<section id="internals-of-verified-computations">
|
157
|
-
<h1>Internals of verified computations<a class="headerlink" href="#internals-of-verified-computations" title="
|
145
|
+
<h1>Internals of verified computations<a class="headerlink" href="#internals-of-verified-computations" title="Link to this heading"></a></h1>
|
158
146
|
<section id="naming">
|
159
|
-
<h2>Naming<a class="headerlink" href="#naming" title="
|
147
|
+
<h2>Naming<a class="headerlink" href="#naming" title="Link to this heading"></a></h2>
|
160
148
|
<p>The names of methods containing <code class="docutils literal notranslate"><span class="pre">check</span></code> will raise an exception if
|
161
149
|
the desired property cannot be certified. There are different types of
|
162
150
|
Exceptions to indicate how the certification failed. This type can be
|
@@ -167,7 +155,7 @@ triangulation or increasing precision or to give up.</p>
|
|
167
155
|
<code class="docutils literal notranslate"><span class="pre">None</span></code> in such a case.</p>
|
168
156
|
</section>
|
169
157
|
<section id="generating-certified-shape-intervals">
|
170
|
-
<h2>Generating certified shape intervals<a class="headerlink" href="#generating-certified-shape-intervals" title="
|
158
|
+
<h2>Generating certified shape intervals<a class="headerlink" href="#generating-certified-shape-intervals" title="Link to this heading"></a></h2>
|
171
159
|
<p>The recommended way to obtain certified intervals for the shapes is via
|
172
160
|
<code class="docutils literal notranslate"><span class="pre">manifold.tetrahedra_shapes(intervals=True)</span></code> as <a class="reference internal" href="verify.html"><span class="doc">described
|
173
161
|
earlier</span></a>. Here we document the <code class="docutils literal notranslate"><span class="pre">KrawczykShapesEngine</span></code> and
|
@@ -178,15 +166,15 @@ interval method or the Krawczyk test. <code class="docutils literal notranslate
|
|
178
166
|
alias of either <code class="docutils literal notranslate"><span class="pre">KrawczykShapesEngine</span></code> or
|
179
167
|
<code class="docutils literal notranslate"><span class="pre">IntervalNewtonShapesEngine</span></code> to determine the default method used by
|
180
168
|
verify.</p>
|
181
|
-
<
|
169
|
+
<dl class="py attribute" id="module-snappy.verify">
|
182
170
|
<dt class="sig sig-object py" id="snappy.verify.CertifiedShapesEngine">
|
183
|
-
<span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">CertifiedShapesEngine</span></span><a class="headerlink" href="#snappy.verify.CertifiedShapesEngine" title="
|
171
|
+
<span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">CertifiedShapesEngine</span></span><a class="headerlink" href="#snappy.verify.CertifiedShapesEngine" title="Link to this definition"></a></dt>
|
184
172
|
<dd><p>alias of <a class="reference internal" href="#snappy.verify.KrawczykShapesEngine" title="snappy.verify.krawczyk_shapes_engine.KrawczykShapesEngine"><code class="xref py py-class docutils literal notranslate"><span class="pre">KrawczykShapesEngine</span></code></a></p>
|
185
173
|
</dd></dl>
|
186
174
|
|
187
175
|
<dl class="py class">
|
188
176
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine">
|
189
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">IntervalNewtonShapesEngine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">M</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_shapes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bits_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dec_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine" title="
|
177
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">IntervalNewtonShapesEngine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">M</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_shapes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bits_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dec_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine" title="Link to this definition"></a></dt>
|
190
178
|
<dd><p>An engine that is initialized with an approximated candidate solution to
|
191
179
|
the rectangular gluing equations and produces intervals certified to
|
192
180
|
contain a true solution. After the engine is successfully run, the
|
@@ -245,7 +233,7 @@ sage: C.certified_shapes # doctest: +ELLIPSIS
|
|
245
233
|
</div>
|
246
234
|
<dl class="py method">
|
247
235
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.certified_newton_iteration">
|
248
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">certified_newton_iteration</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shape_intervals</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">point_in_intervals</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interval_value_at_point</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.certified_newton_iteration" title="
|
236
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">certified_newton_iteration</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shape_intervals</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">point_in_intervals</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interval_value_at_point</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.certified_newton_iteration" title="Link to this definition"></a></dt>
|
249
237
|
<dd><p>Given shape intervals z, performs a Newton interval iteration N(z)
|
250
238
|
as described in newton_iteration. Returns a pair (boolean, N(z)) where
|
251
239
|
the boolean is True if N(z) is contained in z.</p>
|
@@ -261,7 +249,8 @@ solution, e.g., a point for which f is truly zero.</p>
|
|
261
249
|
</pre></div>
|
262
250
|
</div>
|
263
251
|
<p>Intervals containing the true solution:</p>
|
264
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage:
|
252
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: from sage.all import vector
|
253
|
+
sage: good_shapes = vector([
|
265
254
|
... C.CIF(C.RIF(0.78055, 0.78056), C.RIF(0.91447, 0.91448)),
|
266
255
|
... C.CIF(C.RIF(0.78055, 0.78056), C.RIF(0.91447, 0.91448)),
|
267
256
|
... C.CIF(C.RIF(0.46002, 0.46003), C.RIF(0.63262, 0.63263))])
|
@@ -277,7 +266,8 @@ sage: shapes # doctest: +ELLIPSIS
|
|
277
266
|
contained in both the given intervals (good_shapes) and the returned
|
278
267
|
intervals (shapes) which are a refinement of the given intervals.</p>
|
279
268
|
<p>Intervals not containing a true solution:</p>
|
280
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="
|
269
|
+
<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">vector</span>
|
270
|
+
<span class="n">sage</span><span class="p">:</span> <span class="n">bad_shapes</span> <span class="o">=</span> <span class="n">vector</span><span class="p">([</span>
|
281
271
|
<span class="o">...</span> <span class="n">C</span><span class="o">.</span><span class="n">CIF</span><span class="p">(</span><span class="n">C</span><span class="o">.</span><span class="n">RIF</span><span class="p">(</span><span class="mf">0.78054</span><span class="p">,</span> <span class="mf">0.78055</span><span class="p">),</span> <span class="n">C</span><span class="o">.</span><span class="n">RIF</span><span class="p">(</span><span class="mf">0.91447</span><span class="p">,</span> <span class="mf">0.91448</span><span class="p">)),</span>
|
282
272
|
<span class="o">...</span> <span class="n">C</span><span class="o">.</span><span class="n">CIF</span><span class="p">(</span><span class="n">C</span><span class="o">.</span><span class="n">RIF</span><span class="p">(</span><span class="mf">0.78055</span><span class="p">,</span> <span class="mf">0.78056</span><span class="p">),</span> <span class="n">C</span><span class="o">.</span><span class="n">RIF</span><span class="p">(</span><span class="mf">0.91447</span><span class="p">,</span> <span class="mf">0.91448</span><span class="p">)),</span>
|
283
273
|
<span class="o">...</span> <span class="n">C</span><span class="o">.</span><span class="n">CIF</span><span class="p">(</span><span class="n">C</span><span class="o">.</span><span class="n">RIF</span><span class="p">(</span><span class="mf">0.46002</span><span class="p">,</span> <span class="mf">0.46003</span><span class="p">),</span> <span class="n">C</span><span class="o">.</span><span class="n">RIF</span><span class="p">(</span><span class="mf">0.63262</span><span class="p">,</span> <span class="mf">0.63263</span><span class="p">))])</span>
|
@@ -290,7 +280,7 @@ intervals (shapes) which are a refinement of the given intervals.</p>
|
|
290
280
|
|
291
281
|
<dl class="py method">
|
292
282
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.expand_until_certified">
|
293
|
-
<span class="sig-name descname"><span class="pre">expand_until_certified</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.expand_until_certified" title="
|
283
|
+
<span class="sig-name descname"><span class="pre">expand_until_certified</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.expand_until_certified" title="Link to this definition"></a></dt>
|
294
284
|
<dd><p>Try Newton interval iterations, expanding the shape intervals
|
295
285
|
until we can certify they contain a true solution.
|
296
286
|
If succeeded, return True and write certified shapes to
|
@@ -300,7 +290,7 @@ Set verbose = True for printing additional information.</p>
|
|
300
290
|
|
301
291
|
<dl class="py method">
|
302
292
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.interval_vector_is_contained_in">
|
303
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_is_contained_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.interval_vector_is_contained_in" title="
|
293
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_is_contained_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.interval_vector_is_contained_in" title="Link to this definition"></a></dt>
|
304
294
|
<dd><p>Given two vectors of intervals, return whether the first one
|
305
295
|
is contained in the second one. Examples:</p>
|
306
296
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">RIF</span> <span class="o">=</span> <span class="n">RealIntervalField</span><span class="p">(</span><span class="mi">80</span><span class="p">)</span>
|
@@ -328,21 +318,21 @@ is contained in the second one. Examples:</p>
|
|
328
318
|
|
329
319
|
<dl class="py method">
|
330
320
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.interval_vector_mid_points">
|
331
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_mid_points</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vec</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.interval_vector_mid_points" title="
|
321
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_mid_points</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vec</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.interval_vector_mid_points" title="Link to this definition"></a></dt>
|
332
322
|
<dd><p>Given a vector of complex intervals, return the midpoints (as 0-length
|
333
323
|
complex intervals) of them.</p>
|
334
324
|
</dd></dl>
|
335
325
|
|
336
326
|
<dl class="py method">
|
337
327
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.interval_vector_union">
|
338
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_union</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.interval_vector_union" title="
|
328
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_union</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.interval_vector_union" title="Link to this definition"></a></dt>
|
339
329
|
<dd><p>Given two vectors of intervals, return the vector of their unions,
|
340
330
|
i.e., the smallest interval containing both intervals.</p>
|
341
331
|
</dd></dl>
|
342
332
|
|
343
333
|
<dl class="py method">
|
344
334
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.log_gluing_LHS_derivatives">
|
345
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">log_gluing_LHS_derivatives</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.log_gluing_LHS_derivatives" title="
|
335
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">log_gluing_LHS_derivatives</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.log_gluing_LHS_derivatives" title="Link to this definition"></a></dt>
|
346
336
|
<dd><p>Compute the Jacobian of the vector-valued function f
|
347
337
|
described in the above log_gluing_LHSs:</p>
|
348
338
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: from snappy import Manifold
|
@@ -365,7 +355,7 @@ sage: IntervalNewtonShapesEngine.log_gluing_LHS_derivatives(equations, shapes) #
|
|
365
355
|
|
366
356
|
<dl class="py method">
|
367
357
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.log_gluing_LHSs">
|
368
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">log_gluing_LHSs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.log_gluing_LHSs" title="
|
358
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">log_gluing_LHSs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.log_gluing_LHSs" title="Link to this definition"></a></dt>
|
369
359
|
<dd><p>Given the result of M.gluing_equations(‘rect’) or a
|
370
360
|
subset of rows of it and shapes, return a vector of
|
371
361
|
log(LHS) where</p>
|
@@ -411,7 +401,7 @@ False
|
|
411
401
|
|
412
402
|
<dl class="py method">
|
413
403
|
<dt class="sig sig-object py" id="snappy.verify.IntervalNewtonShapesEngine.newton_iteration">
|
414
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">newton_iteration</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shape_intervals</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">point_in_intervals</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interval_value_at_point</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.newton_iteration" title="
|
404
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">newton_iteration</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">equations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shape_intervals</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">point_in_intervals</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interval_value_at_point</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.IntervalNewtonShapesEngine.newton_iteration" title="Link to this definition"></a></dt>
|
415
405
|
<dd><p>Perform a Newton interval method of iteration for
|
416
406
|
the function f described in log_gluing_LHSs.</p>
|
417
407
|
<p>Let z denote the shape intervals.
|
@@ -472,7 +462,7 @@ sage: print(shape_intervals) # doctest: +ELLIPSIS
|
|
472
462
|
|
473
463
|
<dl class="py class">
|
474
464
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine">
|
475
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">KrawczykShapesEngine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">M</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_shapes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bits_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dec_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine" title="
|
465
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">KrawczykShapesEngine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">M</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_shapes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bits_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dec_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine" title="Link to this definition"></a></dt>
|
476
466
|
<dd><p>An engine that is initialized with an approximated candidate solution to
|
477
467
|
the rectangular gluing equations and produces intervals certified to
|
478
468
|
contain a true solution. After the engine is successfully run, the
|
@@ -528,17 +518,17 @@ sage: C.certified_shapes # doctest: +NUMERIC12
|
|
528
518
|
</div>
|
529
519
|
<p>And here an example where the initial solution is somewhat off:</p>
|
530
520
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: M = Manifold("m019")
|
531
|
-
sage: shapes = [
|
532
|
-
sage: C = KrawczykShapesEngine(M, shapes, bits_prec =
|
521
|
+
sage: shapes = [0.780559+0.91449j, 0.780559+0.9144j, 0.46009+0.639j]
|
522
|
+
sage: C = KrawczykShapesEngine(M, shapes, bits_prec = 100)
|
533
523
|
sage: C.expand_until_certified()
|
534
524
|
True
|
535
|
-
sage: C.certified_shapes
|
536
|
-
(0.
|
525
|
+
sage: C.certified_shapes # doctest: +ELLIPSIS
|
526
|
+
(0.7806? + 0.9145?*I, 0.7806? + 0.9145?*I, 0.460...? + 0.6326?*I)
|
537
527
|
</pre></div>
|
538
528
|
</div>
|
539
529
|
<dl class="py method">
|
540
530
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.expand_until_certified">
|
541
|
-
<span class="sig-name descname"><span class="pre">expand_until_certified</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.expand_until_certified" title="
|
531
|
+
<span class="sig-name descname"><span class="pre">expand_until_certified</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.expand_until_certified" title="Link to this definition"></a></dt>
|
542
532
|
<dd><p>Try Krawczyk iterations (i.e., expanding the shape intervals [z]
|
543
533
|
by the Krawczyk interval K(z0, [z], f)) until we can certify they
|
544
534
|
contain a true solution.</p>
|
@@ -549,7 +539,7 @@ Set verbose = True for printing additional information.</p>
|
|
549
539
|
|
550
540
|
<dl class="py method">
|
551
541
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.interval_vector_is_contained_in">
|
552
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_is_contained_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.interval_vector_is_contained_in" title="
|
542
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_is_contained_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.interval_vector_is_contained_in" title="Link to this definition"></a></dt>
|
553
543
|
<dd><p>Given two vectors of intervals, return whether the first one
|
554
544
|
is contained in the second one. Examples:</p>
|
555
545
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">RIF</span> <span class="o">=</span> <span class="n">RealIntervalField</span><span class="p">(</span><span class="mi">80</span><span class="p">)</span>
|
@@ -577,21 +567,21 @@ is contained in the second one. Examples:</p>
|
|
577
567
|
|
578
568
|
<dl class="py method">
|
579
569
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.interval_vector_mid_points">
|
580
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_mid_points</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vec</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.interval_vector_mid_points" title="
|
570
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_mid_points</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vec</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.interval_vector_mid_points" title="Link to this definition"></a></dt>
|
581
571
|
<dd><p>Given a vector of complex intervals, return the midpoints (as 0-length
|
582
572
|
complex intervals) of them.</p>
|
583
573
|
</dd></dl>
|
584
574
|
|
585
575
|
<dl class="py method">
|
586
576
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.interval_vector_union">
|
587
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_union</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.interval_vector_union" title="
|
577
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interval_vector_union</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vecA</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vecB</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.interval_vector_union" title="Link to this definition"></a></dt>
|
588
578
|
<dd><p>Given two vectors of intervals, return the vector of their unions,
|
589
579
|
i.e., the smallest interval containing both intervals.</p>
|
590
580
|
</dd></dl>
|
591
581
|
|
592
582
|
<dl class="py method">
|
593
583
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.krawczyk_interval">
|
594
|
-
<span class="sig-name descname"><span class="pre">krawczyk_interval</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shape_intervals</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.krawczyk_interval" title="
|
584
|
+
<span class="sig-name descname"><span class="pre">krawczyk_interval</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shape_intervals</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.krawczyk_interval" title="Link to this definition"></a></dt>
|
595
585
|
<dd><p>Compute the interval in the Krawczyk test.</p>
|
596
586
|
<p>It is given as</p>
|
597
587
|
<blockquote>
|
@@ -612,7 +602,8 @@ containing only one value (the candidate solution given initially).</p>
|
|
612
602
|
<p>If K is contained in [z], then we have proven that [z] contains a solution
|
613
603
|
to the gluing equations.</p>
|
614
604
|
<p>Do several Krawczyk operations to get a better solution:</p>
|
615
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage:
|
605
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: from sage.all import vector
|
606
|
+
sage: M = Manifold("m019")
|
616
607
|
sage: shapes = vector(ComplexIntervalField(53), [ 0.5+0.8j, 0.5+0.8j, 0.5+0.8j])
|
617
608
|
sage: for i in range(15):
|
618
609
|
... penultimateShapes = shapes
|
@@ -627,7 +618,7 @@ sage: shapes # doctest: +NUMERIC12
|
|
627
618
|
|
628
619
|
<dl class="py method">
|
629
620
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.log_gluing_LHS_derivatives">
|
630
|
-
<span class="sig-name descname"><span class="pre">log_gluing_LHS_derivatives</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.log_gluing_LHS_derivatives" title="
|
621
|
+
<span class="sig-name descname"><span class="pre">log_gluing_LHS_derivatives</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.log_gluing_LHS_derivatives" title="Link to this definition"></a></dt>
|
631
622
|
<dd><p>Compute the Jacobian of the vector-valued function f
|
632
623
|
described in the above log_gluing_LHSs:</p>
|
633
624
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: from snappy import Manifold
|
@@ -649,7 +640,7 @@ sage: C.log_gluing_LHS_derivatives(shapes) # doctest: +NUMERIC3
|
|
649
640
|
|
650
641
|
<dl class="py method">
|
651
642
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.log_gluing_LHS_derivatives_sparse">
|
652
|
-
<span class="sig-name descname"><span class="pre">log_gluing_LHS_derivatives_sparse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.log_gluing_LHS_derivatives_sparse" title="
|
643
|
+
<span class="sig-name descname"><span class="pre">log_gluing_LHS_derivatives_sparse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.log_gluing_LHS_derivatives_sparse" title="Link to this definition"></a></dt>
|
653
644
|
<dd><p>A column-sparse matrix version of log_gluing_LHS_derivatives_sparse.
|
654
645
|
The result is a list of list of pairs. Each list of pairs corresponds
|
655
646
|
to a column, a pair being (index of row, value) where the index is
|
@@ -658,7 +649,7 @@ increasing.</p>
|
|
658
649
|
|
659
650
|
<dl class="py method">
|
660
651
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.log_gluing_LHSs">
|
661
|
-
<span class="sig-name descname"><span class="pre">log_gluing_LHSs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.log_gluing_LHSs" title="
|
652
|
+
<span class="sig-name descname"><span class="pre">log_gluing_LHSs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.log_gluing_LHSs" title="Link to this definition"></a></dt>
|
662
653
|
<dd><p>Given the result of M.gluing_equations(‘rect’) or a
|
663
654
|
subset of rows of it and shapes, return a vector of
|
664
655
|
log(LHS) where</p>
|
@@ -705,7 +696,7 @@ False
|
|
705
696
|
|
706
697
|
<dl class="py method">
|
707
698
|
<dt class="sig sig-object py" id="snappy.verify.KrawczykShapesEngine.matrix_times_sparse">
|
708
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">matrix_times_sparse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">m</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sparse_m</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.matrix_times_sparse" title="
|
699
|
+
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">matrix_times_sparse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">m</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sparse_m</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.KrawczykShapesEngine.matrix_times_sparse" title="Link to this definition"></a></dt>
|
709
700
|
<dd><p>Multiply a (dense) Sage matrix with a column-sparse matrix
|
710
701
|
(in the format described in log_gluing_LHS_derivatives_sparse).</p>
|
711
702
|
</dd></dl>
|
@@ -714,13 +705,13 @@ False
|
|
714
705
|
|
715
706
|
</section>
|
716
707
|
<section id="verification-of-hyperbolicity">
|
717
|
-
<h2>Verification of hyperbolicity<a class="headerlink" href="#verification-of-hyperbolicity" title="
|
708
|
+
<h2>Verification of hyperbolicity<a class="headerlink" href="#verification-of-hyperbolicity" title="Link to this heading"></a></h2>
|
718
709
|
<p>Methods containing <code class="docutils literal notranslate"><span class="pre">check</span></code> will raise an exception if the desired property
|
719
710
|
cannot be certified. Methods containing <code class="docutils literal notranslate"><span class="pre">verify</span></code> or <code class="docutils literal notranslate"><span class="pre">verified</span></code> will fail
|
720
711
|
more gracefully returning <code class="docutils literal notranslate"><span class="pre">False</span></code> or <code class="docutils literal notranslate"><span class="pre">None</span></code> in such a case.</p>
|
721
712
|
<dl class="py function">
|
722
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
723
|
-
<span class="sig-prename descclassname"><span class="pre">snappy.verify.
|
713
|
+
<dt class="sig sig-object py" id="snappy.verify.hyperbolicity.check_logarithmic_gluing_equations_and_positively_oriented_tets">
|
714
|
+
<span class="sig-prename descclassname"><span class="pre">snappy.verify.hyperbolicity.</span></span><span class="sig-name descname"><span class="pre">check_logarithmic_gluing_equations_and_positively_oriented_tets</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">manifold</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shape_intervals</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.hyperbolicity.check_logarithmic_gluing_equations_and_positively_oriented_tets" title="Link to this definition"></a></dt>
|
724
715
|
<dd><p>Given a SnapPy manifold manifold and complex intervals for the shapes
|
725
716
|
shape_intervals that are certified to contain a solution to the
|
726
717
|
rectangular gluing equations, verify that the logarithmic gluing equations
|
@@ -751,418 +742,12 @@ ShapePositiveImaginaryPartNumericalVerifyError: Numerical verification that shap
|
|
751
742
|
</div>
|
752
743
|
</dd></dl>
|
753
744
|
|
754
|
-
</section>
|
755
|
-
<section id="cusp-cross-sections">
|
756
|
-
<h2>Cusp cross sections<a class="headerlink" href="#cusp-cross-sections" title="Permalink to this heading"></a></h2>
|
757
|
-
<dl class="py class">
|
758
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection">
|
759
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">RealCuspCrossSection</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mcomplex</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection" title="Permalink to this definition"></a></dt>
|
760
|
-
<dd><p>A t3m triangulation with real edge lengths of cusp cross sections built
|
761
|
-
from a cusped (possibly non-orientable) SnapPy manifold M with a hyperbolic
|
762
|
-
structure specified by shapes. It can scale the cusps to areas that can be
|
763
|
-
specified or scale them such that they are disjoint.
|
764
|
-
It can also compute the “tilts” used in the Tilt Theorem, see
|
765
|
-
<code class="docutils literal notranslate"><span class="pre">canonize_part_1.c</span></code>.</p>
|
766
|
-
<p>The computations are agnostic about the type of numbers provided as shapes
|
767
|
-
as long as they provide <code class="docutils literal notranslate"><span class="pre">+</span></code>, <code class="docutils literal notranslate"><span class="pre">-</span></code>, <code class="docutils literal notranslate"><span class="pre">*</span></code>, <code class="docutils literal notranslate"><span class="pre">/</span></code>, <code class="docutils literal notranslate"><span class="pre">conjugate()</span></code>,
|
768
|
-
<code class="docutils literal notranslate"><span class="pre">im()</span></code>, <code class="docutils literal notranslate"><span class="pre">abs()</span></code>, <code class="docutils literal notranslate"><span class="pre">sqrt()</span></code>.
|
769
|
-
Shapes can be a numerical type such as ComplexIntervalField or an exact
|
770
|
-
type (supporting sqrt) such as QQbar.</p>
|
771
|
-
<p>The resulting edge lengths and tilts will be of the type returned by
|
772
|
-
applying the above operations to the shapes. For example, if the shapes
|
773
|
-
are in ComplexIntervalField, the edge lengths and tilts are elements in
|
774
|
-
RealIntervalField.</p>
|
775
|
-
<p><strong>Remark:</strong> The real edge lengths could also be obtained from the complex
|
776
|
-
edge lengths computed by <code class="docutils literal notranslate"><span class="pre">ComplexCuspCrossSection</span></code>, but this has two
|
777
|
-
drawbacks. The times at which we apply <code class="docutils literal notranslate"><span class="pre">abs</span></code> or <code class="docutils literal notranslate"><span class="pre">sqrt</span></code> during the
|
778
|
-
development and rescaling of the cusps would be different. Though this
|
779
|
-
gives the same values, the resulting representation of these values by an
|
780
|
-
exact number type (such as the ones in <code class="docutils literal notranslate"><span class="pre">squareExtension.py</span></code>) might be
|
781
|
-
prohibitively more complicated. Furthermore, <code class="docutils literal notranslate"><span class="pre">ComplexCuspCrossSection</span></code>
|
782
|
-
does not work for non-orientable manifolds (it does not implement working
|
783
|
-
in a cusp’s double-cover like the SnapPea kernel does).</p>
|
784
|
-
<dl class="py attribute">
|
785
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.HoroTriangle">
|
786
|
-
<span class="sig-name descname"><span class="pre">HoroTriangle</span></span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.HoroTriangle" title="Permalink to this definition"></a></dt>
|
787
|
-
<dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">RealHoroTriangle</span></code></p>
|
788
|
-
</dd></dl>
|
789
|
-
|
790
|
-
<dl class="py method">
|
791
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.check_cusp_development_exactly">
|
792
|
-
<span class="sig-name descname"><span class="pre">check_cusp_development_exactly</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.check_cusp_development_exactly" title="Permalink to this definition"></a></dt>
|
793
|
-
<dd><p>Check that all side lengths of horo triangles are consistent.
|
794
|
-
If the logarithmic edge equations are fulfilled, this implices
|
795
|
-
that the all cusps are complete and thus the manifold is complete.</p>
|
796
|
-
</dd></dl>
|
797
|
-
|
798
|
-
<dl class="py method">
|
799
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.check_logarithmic_edge_equations_and_positivity">
|
800
|
-
<span class="sig-name descname"><span class="pre">check_logarithmic_edge_equations_and_positivity</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">NumericalField</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.check_logarithmic_edge_equations_and_positivity" title="Permalink to this definition"></a></dt>
|
801
|
-
<dd><p>Check that the shapes have positive imaginary part and that the
|
802
|
-
logarithmic gluing equations have small error.</p>
|
803
|
-
<p>The shapes are coerced into the field given as argument before the
|
804
|
-
logarithm is computed. It can be, e.g., a ComplexIntervalField.</p>
|
805
|
-
</dd></dl>
|
806
|
-
|
807
|
-
<dl class="py method">
|
808
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.check_polynomial_edge_equations_exactly">
|
809
|
-
<span class="sig-name descname"><span class="pre">check_polynomial_edge_equations_exactly</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.check_polynomial_edge_equations_exactly" title="Permalink to this definition"></a></dt>
|
810
|
-
<dd><p>Check that the polynomial edge equations are fulfilled exactly.</p>
|
811
|
-
<p>We use the conjugate inverse to support non-orientable manifolds.</p>
|
812
|
-
</dd></dl>
|
813
|
-
|
814
|
-
<dl class="py method">
|
815
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.compute_tilts">
|
816
|
-
<span class="sig-name descname"><span class="pre">compute_tilts</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.compute_tilts" title="Permalink to this definition"></a></dt>
|
817
|
-
<dd><p>Computes all tilts. They are written to the instances of
|
818
|
-
t3m.simplex.Face and can be accessed as
|
819
|
-
[ face.Tilt for face in crossSection.Faces].</p>
|
820
|
-
</dd></dl>
|
821
|
-
|
822
|
-
<dl class="py method">
|
823
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.cusp_areas">
|
824
|
-
<span class="sig-name descname"><span class="pre">cusp_areas</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.cusp_areas" title="Permalink to this definition"></a></dt>
|
825
|
-
<dd><p>List of all cusp areas.</p>
|
826
|
-
</dd></dl>
|
827
|
-
|
828
|
-
<dl class="py method">
|
829
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.ensure_disjoint_on_edges">
|
830
|
-
<span class="sig-name descname"><span class="pre">ensure_disjoint_on_edges</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.ensure_disjoint_on_edges" title="Permalink to this definition"></a></dt>
|
831
|
-
<dd><p>Scales the cusp neighborhoods down until they are disjoint when
|
832
|
-
intersected with the edges of the triangulations.</p>
|
833
|
-
<p>Given an edge of a triangulation, we can easily compute the signed
|
834
|
-
distance between the two cusp neighborhoods at the ends of the edge
|
835
|
-
measured along that edge. Thus, we can easily check that all the
|
836
|
-
distances measured along all the edges are positive and scale the
|
837
|
-
cusps down if necessary.</p>
|
838
|
-
<p>Unfortunately, this is not sufficient to ensure that two cusp
|
839
|
-
neighborhoods are disjoint since there might be a geodesic between
|
840
|
-
the two cusps such that the distance between the two cusps measured
|
841
|
-
along the geodesic is shorter than measured along any edge of the
|
842
|
-
triangulation.</p>
|
843
|
-
<p>Thus, it is necessary to call ensure_std_form as well:
|
844
|
-
it will make sure that the cusp neighborhoods are small enough so
|
845
|
-
that they intersect the tetrahedra in “standard” form.
|
846
|
-
Here, “standard” form means that the corresponding horoball about a
|
847
|
-
vertex of a tetrahedron intersects the three faces of the tetrahedron
|
848
|
-
adjacent to the vertex but not the one opposite to the vertex.</p>
|
849
|
-
<p>For any geometric triangulation, standard form and positive distance
|
850
|
-
measured along all edges of the triangulation is sufficient for
|
851
|
-
disjoint neighborhoods.</p>
|
852
|
-
<p>The SnapPea kernel uses the proto-canonical triangulation associated
|
853
|
-
to the cusp neighborhood to get around this when computing the
|
854
|
-
“reach” and the “stoppers” for the cusps.</p>
|
855
|
-
<p><strong>Remark:</strong> This means that the cusp neighborhoods might be scaled down
|
856
|
-
more than necessary. Related open questions are: given maximal disjoint
|
857
|
-
cusp neighborhoods (maximal in the sense that no neighborhood can be
|
858
|
-
expanded without bumping into another or itself), is there always a
|
859
|
-
geometric triangulation intersecting the cusp neighborhoods in standard
|
860
|
-
form? Is there an easy algorithm to find this triangulation, e.g., by
|
861
|
-
applying a 2-3 move whenever we see a non-standard intersection?</p>
|
862
|
-
</dd></dl>
|
863
|
-
|
864
|
-
<dl class="py method">
|
865
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.ensure_std_form">
|
866
|
-
<span class="sig-name descname"><span class="pre">ensure_std_form</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">allow_scaling_up</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.ensure_std_form" title="Permalink to this definition"></a></dt>
|
867
|
-
<dd><p>Makes sure that the cusp neighborhoods intersect each tetrahedron
|
868
|
-
in standard form by scaling the cusp neighborhoods down if necessary.</p>
|
869
|
-
</dd></dl>
|
870
|
-
|
871
|
-
<dl class="py method">
|
872
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.fromManifoldAndShapes">
|
873
|
-
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">fromManifoldAndShapes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shapes</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.fromManifoldAndShapes" title="Permalink to this definition"></a></dt>
|
874
|
-
<dd><p><strong>Examples:</strong></p>
|
875
|
-
<p>Initialize from shapes provided from the floats returned by
|
876
|
-
tetrahedra_shapes. The tilts appear to be negative but are not
|
877
|
-
verified by interval arithmetics:</p>
|
878
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">snappy</span> <span class="kn">import</span> <span class="n">Manifold</span>
|
879
|
-
<span class="gp">>>> </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>
|
880
|
-
<span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">canonize</span><span class="p">()</span>
|
881
|
-
<span class="gp">>>> </span><span class="n">shapes</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">tetrahedra_shapes</span><span class="p">(</span><span class="s1">'rect'</span><span class="p">)</span>
|
882
|
-
<span class="gp">>>> </span><span class="n">e</span> <span class="o">=</span> <span class="n">RealCuspCrossSection</span><span class="o">.</span><span class="n">fromManifoldAndShapes</span><span class="p">(</span><span class="n">M</span><span class="p">,</span> <span class="n">shapes</span><span class="p">)</span>
|
883
|
-
<span class="gp">>>> </span><span class="n">e</span><span class="o">.</span><span class="n">normalize_cusps</span><span class="p">()</span>
|
884
|
-
<span class="gp">>>> </span><span class="n">e</span><span class="o">.</span><span class="n">compute_tilts</span><span class="p">()</span>
|
885
|
-
<span class="gp">>>> </span><span class="n">tilts</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">read_tilts</span><span class="p">()</span>
|
886
|
-
<span class="gp">>>> </span><span class="k">for</span> <span class="n">tilt</span> <span class="ow">in</span> <span class="n">tilts</span><span class="p">:</span>
|
887
|
-
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%.8f</span><span class="s1">'</span> <span class="o">%</span> <span class="n">tilt</span><span class="p">)</span>
|
888
|
-
<span class="go">-0.31020162</span>
|
889
|
-
<span class="go">-0.31020162</span>
|
890
|
-
<span class="go">-0.31020162</span>
|
891
|
-
<span class="go">-0.31020162</span>
|
892
|
-
<span class="go">-0.31020162</span>
|
893
|
-
<span class="go">-0.31020162</span>
|
894
|
-
<span class="go">-0.31020162</span>
|
895
|
-
<span class="go">-0.31020162</span>
|
896
|
-
</pre></div>
|
897
|
-
</div>
|
898
|
-
<p>Use verified intervals:</p>
|
899
|
-
<p>sage: from snappy.verify import *
|
900
|
-
sage: M = Manifold(“m004”)
|
901
|
-
sage: M.canonize()
|
902
|
-
sage: shapes = M.tetrahedra_shapes(‘rect’, intervals=True)</p>
|
903
|
-
<p>Verify that the tetrahedra shapes form a complete manifold:</p>
|
904
|
-
<p>sage: check_logarithmic_gluing_equations_and_positively_oriented_tets(M,shapes)
|
905
|
-
sage: e = RealCuspCrossSection.fromManifoldAndShapes(M, shapes)
|
906
|
-
sage: e.normalize_cusps()
|
907
|
-
sage: e.compute_tilts()</p>
|
908
|
-
<p>Tilts are verified to be negative:</p>
|
909
|
-
<p>sage: [tilt < 0 for tilt in e.read_tilts()]
|
910
|
-
[True, True, True, True, True, True, True, True]</p>
|
911
|
-
<p>Setup necessary things in Sage:</p>
|
912
|
-
<p>sage: from sage.rings.qqbar import QQbar
|
913
|
-
sage: from sage.rings.rational_field import RationalField
|
914
|
-
sage: from sage.rings.polynomial.polynomial_ring import polygen
|
915
|
-
sage: from sage.rings.real_mpfi import RealIntervalField
|
916
|
-
sage: from sage.rings.complex_interval_field import ComplexIntervalField
|
917
|
-
sage: x = polygen(RationalField())
|
918
|
-
sage: RIF = RealIntervalField()
|
919
|
-
sage: CIF = ComplexIntervalField()</p>
|
920
|
-
<p>sage: M = Manifold(“m412”)
|
921
|
-
sage: M.canonize()</p>
|
922
|
-
<p>Make our own exact shapes using Sage. They are the root of the given
|
923
|
-
polynomial isolated by the given interval.</p>
|
924
|
-
<p>sage: r=QQbar.polynomial_root(x**2-x+1,CIF(RIF(0.49,0.51),RIF(0.86,0.87)))
|
925
|
-
sage: shapes = 5 * [r]
|
926
|
-
sage: e=RealCuspCrossSection.fromManifoldAndShapes(M, shapes)
|
927
|
-
sage: e.normalize_cusps()</p>
|
928
|
-
<p>The following three lines verify that we have shapes giving a complete
|
929
|
-
hyperbolic structure. The last one uses complex interval arithmetics.</p>
|
930
|
-
<p>sage: e.check_polynomial_edge_equations_exactly()
|
931
|
-
sage: e.check_cusp_development_exactly()
|
932
|
-
sage: e.check_logarithmic_edge_equations_and_positivity(CIF)</p>
|
933
|
-
<p>Because we use exact types, we can verify that each tilt is either
|
934
|
-
negative or exactly zero.</p>
|
935
|
-
<p>sage: e.compute_tilts()
|
936
|
-
sage: [(tilt < 0, tilt == 0) for tilt in e.read_tilts()]
|
937
|
-
[(True, False), (True, False), (False, True), (True, False), (True, False), (True, False), (True, False), (False, True), (True, False), (True, False), (True, False), (False, True), (False, True), (False, True), (False, True), (False, True), (True, False), (True, False), (False, True), (True, False)]</p>
|
938
|
-
<p>Some are exactly zero, so the canonical cell decomposition has
|
939
|
-
non-tetrahedral cells. In fact, the one cell is a cube. We can obtain
|
940
|
-
the retriangulation of the canonical cell decomposition as follows:</p>
|
941
|
-
<p>sage: e.compute_tilts()
|
942
|
-
sage: opacities = [tilt < 0 for tilt in e.read_tilts()]
|
943
|
-
sage: N = M._canonical_retriangulation()
|
944
|
-
sage: N.num_tetrahedra()
|
945
|
-
12</p>
|
946
|
-
<p>The manifold m412 has 8 isometries, the above code certified that using
|
947
|
-
exact arithmetic:
|
948
|
-
sage: len(N.isomorphisms_to(N))
|
949
|
-
8</p>
|
950
|
-
</dd></dl>
|
951
|
-
|
952
|
-
<dl class="py method">
|
953
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.normalize_cusps">
|
954
|
-
<span class="sig-name descname"><span class="pre">normalize_cusps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">areas</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.normalize_cusps" title="Permalink to this definition"></a></dt>
|
955
|
-
<dd><p>Scale cusp so that they have the given target area.
|
956
|
-
Without argument, each cusp is scaled to have area 1.
|
957
|
-
If the argument is a number, scale each cusp to have that area.
|
958
|
-
If the argument is an array, scale each cusp by the respective
|
959
|
-
entry in the array.</p>
|
960
|
-
</dd></dl>
|
961
|
-
|
962
|
-
<dl class="py method">
|
963
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.read_tilts">
|
964
|
-
<span class="sig-name descname"><span class="pre">read_tilts</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.read_tilts" title="Permalink to this definition"></a></dt>
|
965
|
-
<dd><p>After compute_tilts() has been called, put the tilt values into an
|
966
|
-
array containing the tilt of face 0, 1, 2, 3 of the first tetrahedron,
|
967
|
-
… of the second tetrahedron, ….</p>
|
968
|
-
</dd></dl>
|
969
|
-
|
970
|
-
<dl class="py method">
|
971
|
-
<dt class="sig sig-object py" id="snappy.verify.RealCuspCrossSection.scale_cusps">
|
972
|
-
<span class="sig-name descname"><span class="pre">scale_cusps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">scales</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.RealCuspCrossSection.scale_cusps" title="Permalink to this definition"></a></dt>
|
973
|
-
<dd><p>Scale each cusp by Euclidean dilation by values in given array.</p>
|
974
|
-
</dd></dl>
|
975
|
-
|
976
|
-
</dd></dl>
|
977
|
-
|
978
|
-
<dl class="py class">
|
979
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection">
|
980
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.</span></span><span class="sig-name descname"><span class="pre">ComplexCuspCrossSection</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mcomplex</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection" title="Permalink to this definition"></a></dt>
|
981
|
-
<dd><p>Similarly to RealCuspCrossSection with the following differences: it
|
982
|
-
computes the complex edge lengths and the cusp translations (instead
|
983
|
-
of the tilts) and it only works for orientable manifolds.</p>
|
984
|
-
<p>The same comment applies about the type of the shapes. The resulting
|
985
|
-
edge lengths and translations will be of the same type as the shapes.</p>
|
986
|
-
<p>For shapes corresponding to a non-boundary unipotent representation
|
987
|
-
(in other words, a manifold having an incomplete cusp), a cusp can
|
988
|
-
be developed if an appropriate 1-cocycle is given. The 1-cocycle
|
989
|
-
is a cellular cocycle in the dual of the cusp triangulations and
|
990
|
-
represents an element in H^1(boundary M; C^*) that must match the
|
991
|
-
PSL(2,C) boundary holonomy of the representation.
|
992
|
-
It is encoded as dictionary with key (tet index, t3m face, t3m vertex).</p>
|
993
|
-
<dl class="py attribute">
|
994
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.HoroTriangle">
|
995
|
-
<span class="sig-name descname"><span class="pre">HoroTriangle</span></span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.HoroTriangle" title="Permalink to this definition"></a></dt>
|
996
|
-
<dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">ComplexHoroTriangle</span></code></p>
|
997
|
-
</dd></dl>
|
998
|
-
|
999
|
-
<dl class="py method">
|
1000
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.add_vertex_positions_to_horotriangles">
|
1001
|
-
<span class="sig-name descname"><span class="pre">add_vertex_positions_to_horotriangles</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.add_vertex_positions_to_horotriangles" title="Permalink to this definition"></a></dt>
|
1002
|
-
<dd><p>Develops cusp to assign to each horotriangle the positions of its three
|
1003
|
-
vertices in the Euclidean plane.</p>
|
1004
|
-
<p>Note: For a complete cusp, this is defined only up to translating the
|
1005
|
-
entire triangle by translations generated by meridian and longitude.</p>
|
1006
|
-
<p>For an incomplete cusp, this is defined only up to
|
1007
|
-
similarities generated by the meridian and longitude. The
|
1008
|
-
positions can be moved such that the fixed point of these
|
1009
|
-
similarities is at the origin by calling
|
1010
|
-
move_fixed_point_to_zero after
|
1011
|
-
add_vertex_positions_to_horotriangles.</p>
|
1012
|
-
<p>Note: This is not working when one_cocycle is passed during the
|
1013
|
-
construction of the cusp cross section.</p>
|
1014
|
-
</dd></dl>
|
1015
|
-
|
1016
|
-
<dl class="py method">
|
1017
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.all_normalized_translations">
|
1018
|
-
<span class="sig-name descname"><span class="pre">all_normalized_translations</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.all_normalized_translations" title="Permalink to this definition"></a></dt>
|
1019
|
-
<dd><p>Compute the translations corresponding to the meridian and longitude
|
1020
|
-
for each cusp.</p>
|
1021
|
-
</dd></dl>
|
1022
|
-
|
1023
|
-
<dl class="py method">
|
1024
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.check_cusp_development_exactly">
|
1025
|
-
<span class="sig-name descname"><span class="pre">check_cusp_development_exactly</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.check_cusp_development_exactly" title="Permalink to this definition"></a></dt>
|
1026
|
-
<dd><p>Check that all side lengths of horo triangles are consistent.
|
1027
|
-
If the logarithmic edge equations are fulfilled, this implices
|
1028
|
-
that the all cusps are complete and thus the manifold is complete.</p>
|
1029
|
-
</dd></dl>
|
1030
|
-
|
1031
|
-
<dl class="py method">
|
1032
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.check_logarithmic_edge_equations_and_positivity">
|
1033
|
-
<span class="sig-name descname"><span class="pre">check_logarithmic_edge_equations_and_positivity</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">NumericalField</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.check_logarithmic_edge_equations_and_positivity" title="Permalink to this definition"></a></dt>
|
1034
|
-
<dd><p>Check that the shapes have positive imaginary part and that the
|
1035
|
-
logarithmic gluing equations have small error.</p>
|
1036
|
-
<p>The shapes are coerced into the field given as argument before the
|
1037
|
-
logarithm is computed. It can be, e.g., a ComplexIntervalField.</p>
|
1038
|
-
</dd></dl>
|
1039
|
-
|
1040
|
-
<dl class="py method">
|
1041
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.check_polynomial_edge_equations_exactly">
|
1042
|
-
<span class="sig-name descname"><span class="pre">check_polynomial_edge_equations_exactly</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.check_polynomial_edge_equations_exactly" title="Permalink to this definition"></a></dt>
|
1043
|
-
<dd><p>Check that the polynomial edge equations are fulfilled exactly.</p>
|
1044
|
-
<p>We use the conjugate inverse to support non-orientable manifolds.</p>
|
1045
|
-
</dd></dl>
|
1046
|
-
|
1047
|
-
<dl class="py method">
|
1048
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.cusp_areas">
|
1049
|
-
<span class="sig-name descname"><span class="pre">cusp_areas</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.cusp_areas" title="Permalink to this definition"></a></dt>
|
1050
|
-
<dd><p>List of all cusp areas.</p>
|
1051
|
-
</dd></dl>
|
1052
|
-
|
1053
|
-
<dl class="py method">
|
1054
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.cusp_shapes">
|
1055
|
-
<span class="sig-name descname"><span class="pre">cusp_shapes</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.cusp_shapes" title="Permalink to this definition"></a></dt>
|
1056
|
-
<dd><p>Compute the cusp shapes as conjugate of the quotient of the translations
|
1057
|
-
corresponding to the longitude and meridian for each cusp (SnapPea
|
1058
|
-
kernel convention).</p>
|
1059
|
-
</dd></dl>
|
1060
|
-
|
1061
|
-
<dl class="py method">
|
1062
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.ensure_disjoint_on_edges">
|
1063
|
-
<span class="sig-name descname"><span class="pre">ensure_disjoint_on_edges</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.ensure_disjoint_on_edges" title="Permalink to this definition"></a></dt>
|
1064
|
-
<dd><p>Scales the cusp neighborhoods down until they are disjoint when
|
1065
|
-
intersected with the edges of the triangulations.</p>
|
1066
|
-
<p>Given an edge of a triangulation, we can easily compute the signed
|
1067
|
-
distance between the two cusp neighborhoods at the ends of the edge
|
1068
|
-
measured along that edge. Thus, we can easily check that all the
|
1069
|
-
distances measured along all the edges are positive and scale the
|
1070
|
-
cusps down if necessary.</p>
|
1071
|
-
<p>Unfortunately, this is not sufficient to ensure that two cusp
|
1072
|
-
neighborhoods are disjoint since there might be a geodesic between
|
1073
|
-
the two cusps such that the distance between the two cusps measured
|
1074
|
-
along the geodesic is shorter than measured along any edge of the
|
1075
|
-
triangulation.</p>
|
1076
|
-
<p>Thus, it is necessary to call ensure_std_form as well:
|
1077
|
-
it will make sure that the cusp neighborhoods are small enough so
|
1078
|
-
that they intersect the tetrahedra in “standard” form.
|
1079
|
-
Here, “standard” form means that the corresponding horoball about a
|
1080
|
-
vertex of a tetrahedron intersects the three faces of the tetrahedron
|
1081
|
-
adjacent to the vertex but not the one opposite to the vertex.</p>
|
1082
|
-
<p>For any geometric triangulation, standard form and positive distance
|
1083
|
-
measured along all edges of the triangulation is sufficient for
|
1084
|
-
disjoint neighborhoods.</p>
|
1085
|
-
<p>The SnapPea kernel uses the proto-canonical triangulation associated
|
1086
|
-
to the cusp neighborhood to get around this when computing the
|
1087
|
-
“reach” and the “stoppers” for the cusps.</p>
|
1088
|
-
<p><strong>Remark:</strong> This means that the cusp neighborhoods might be scaled down
|
1089
|
-
more than necessary. Related open questions are: given maximal disjoint
|
1090
|
-
cusp neighborhoods (maximal in the sense that no neighborhood can be
|
1091
|
-
expanded without bumping into another or itself), is there always a
|
1092
|
-
geometric triangulation intersecting the cusp neighborhoods in standard
|
1093
|
-
form? Is there an easy algorithm to find this triangulation, e.g., by
|
1094
|
-
applying a 2-3 move whenever we see a non-standard intersection?</p>
|
1095
|
-
</dd></dl>
|
1096
|
-
|
1097
|
-
<dl class="py method">
|
1098
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.ensure_std_form">
|
1099
|
-
<span class="sig-name descname"><span class="pre">ensure_std_form</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">allow_scaling_up</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.ensure_std_form" title="Permalink to this definition"></a></dt>
|
1100
|
-
<dd><p>Makes sure that the cusp neighborhoods intersect each tetrahedron
|
1101
|
-
in standard form by scaling the cusp neighborhoods down if necessary.</p>
|
1102
|
-
</dd></dl>
|
1103
|
-
|
1104
|
-
<dl class="py method">
|
1105
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.lift_vertex_positions_of_horotriangles">
|
1106
|
-
<span class="sig-name descname"><span class="pre">lift_vertex_positions_of_horotriangles</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.lift_vertex_positions_of_horotriangles" title="Permalink to this definition"></a></dt>
|
1107
|
-
<dd><p>After developing an incomplete cusp with
|
1108
|
-
add_vertex_positions_to_horotriangles, this function moves the
|
1109
|
-
vertex positions first to zero the fixed point (see
|
1110
|
-
move_ffixed_point_to_zero) and computes logarithms for all the
|
1111
|
-
vertex positions of the horotriangles in the Euclidean plane
|
1112
|
-
in a consistent manner. These logarithms are written to a
|
1113
|
-
dictionary lifted_vertex_positions on the HoroTriangle’s.</p>
|
1114
|
-
<p>For an incomplete cusp, the respective value in lifted_vertex_positions
|
1115
|
-
will be None.</p>
|
1116
|
-
<p>The three logarithms of the vertex positions of a triangle are only
|
1117
|
-
defined up to adding mu Z + lambda Z where mu and lambda are the
|
1118
|
-
logarithmic holonomies of the meridian and longitude.</p>
|
1119
|
-
</dd></dl>
|
1120
|
-
|
1121
|
-
<dl class="py method">
|
1122
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.move_fixed_point_to_zero">
|
1123
|
-
<span class="sig-name descname"><span class="pre">move_fixed_point_to_zero</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.move_fixed_point_to_zero" title="Permalink to this definition"></a></dt>
|
1124
|
-
<dd><p>Determines the fixed point of the holonomies for all
|
1125
|
-
incomplete cusps. Then moves the vertex positions of the
|
1126
|
-
corresponding cusp triangles so that the fixed point is at the
|
1127
|
-
origin.</p>
|
1128
|
-
<p>It also add the boolean v.is_complete to all vertices of the
|
1129
|
-
triangulation to mark whether the corresponding cusp is
|
1130
|
-
complete or not.</p>
|
1131
|
-
</dd></dl>
|
1132
|
-
|
1133
|
-
<dl class="py method">
|
1134
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.move_lifted_vertex_positions_to_zero_first">
|
1135
|
-
<span class="sig-name descname"><span class="pre">move_lifted_vertex_positions_to_zero_first</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.move_lifted_vertex_positions_to_zero_first" title="Permalink to this definition"></a></dt>
|
1136
|
-
<dd><p>Shift the lifted vertex positions such that the one associated
|
1137
|
-
to the first vertex when developing the incomplete cusp is
|
1138
|
-
zero. This makes the values we obtain more stable when
|
1139
|
-
changing the Dehn-surgery parameters.</p>
|
1140
|
-
</dd></dl>
|
1141
|
-
|
1142
|
-
<dl class="py method">
|
1143
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.normalize_cusps">
|
1144
|
-
<span class="sig-name descname"><span class="pre">normalize_cusps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">areas</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.normalize_cusps" title="Permalink to this definition"></a></dt>
|
1145
|
-
<dd><p>Scale cusp so that they have the given target area.
|
1146
|
-
Without argument, each cusp is scaled to have area 1.
|
1147
|
-
If the argument is a number, scale each cusp to have that area.
|
1148
|
-
If the argument is an array, scale each cusp by the respective
|
1149
|
-
entry in the array.</p>
|
1150
|
-
</dd></dl>
|
1151
|
-
|
1152
|
-
<dl class="py method">
|
1153
|
-
<dt class="sig sig-object py" id="snappy.verify.ComplexCuspCrossSection.scale_cusps">
|
1154
|
-
<span class="sig-name descname"><span class="pre">scale_cusps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">scales</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.ComplexCuspCrossSection.scale_cusps" title="Permalink to this definition"></a></dt>
|
1155
|
-
<dd><p>Scale each cusp by Euclidean dilation by values in given array.</p>
|
1156
|
-
</dd></dl>
|
1157
|
-
|
1158
|
-
</dd></dl>
|
1159
|
-
|
1160
745
|
</section>
|
1161
746
|
<section id="verified-canonical-cell-decompositions">
|
1162
|
-
<h2>Verified canonical cell decompositions<a class="headerlink" href="#verified-canonical-cell-decompositions" title="
|
747
|
+
<h2>Verified canonical cell decompositions<a class="headerlink" href="#verified-canonical-cell-decompositions" title="Link to this heading"></a></h2>
|
1163
748
|
<dl class="py function">
|
1164
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1165
|
-
<span class="sig-prename descclassname"><span class="pre">snappy.verify.
|
749
|
+
<dt class="sig sig-object py" id="snappy.verify.canonical.interval_checked_canonical_triangulation">
|
750
|
+
<span class="sig-prename descclassname"><span class="pre">snappy.verify.canonical.</span></span><span class="sig-name descname"><span class="pre">interval_checked_canonical_triangulation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">M</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bits_prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.canonical.interval_checked_canonical_triangulation" title="Link to this definition"></a></dt>
|
1166
751
|
<dd><p>Given a canonical triangulation of a cusped (possibly non-orientable)
|
1167
752
|
manifold M, return this triangulation if it has tetrahedral cells and can
|
1168
753
|
be verified using interval arithmetics with the optional, given precision.
|
@@ -1205,8 +790,8 @@ TiltInequalityNumericalVerifyError: Numerical verification that tilt is negative
|
|
1205
790
|
</dd></dl>
|
1206
791
|
|
1207
792
|
<dl class="py function">
|
1208
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1209
|
-
<span class="sig-prename descclassname"><span class="pre">snappy.verify.
|
793
|
+
<dt class="sig sig-object py" id="snappy.verify.canonical.exactly_checked_canonical_retriangulation">
|
794
|
+
<span class="sig-prename descclassname"><span class="pre">snappy.verify.canonical.</span></span><span class="sig-name descname"><span class="pre">exactly_checked_canonical_retriangulation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">M</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bits_prec</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">degree</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.canonical.exactly_checked_canonical_retriangulation" title="Link to this definition"></a></dt>
|
1210
795
|
<dd><p>Given a proto-canonical triangulation of a cusped (possibly non-orientable)
|
1211
796
|
manifold M, return its canonical retriangulation which is computed from
|
1212
797
|
exact shapes. The exact shapes are computed using snap (which uses the
|
@@ -1241,9 +826,9 @@ TiltProvenPositiveNumericalVerifyError: Numerical verification that tilt is nega
|
|
1241
826
|
</dd></dl>
|
1242
827
|
|
1243
828
|
</section>
|
1244
|
-
<section id="module-snappy.verify.
|
1245
|
-
<span id="exact-computations-for-cusp-cross-sections"></span><h2>Exact computations for cusp cross sections<a class="headerlink" href="#module-snappy.verify.
|
1246
|
-
<p>The
|
829
|
+
<section id="module-snappy.verify.square_extensions">
|
830
|
+
<span id="exact-computations-for-cusp-cross-sections"></span><h2>Exact computations for cusp cross sections<a class="headerlink" href="#module-snappy.verify.square_extensions" title="Link to this heading"></a></h2>
|
831
|
+
<p>The square_extensions module provides
|
1247
832
|
two special classes to give exact representations of the values
|
1248
833
|
involved when computing a cusp cross section.</p>
|
1249
834
|
<p>The method find_shapes_as_complex_sqrt_lin_combinations returns a list of
|
@@ -1257,8 +842,8 @@ square roots in N. To avoid computing in a massive tower of square extensions
|
|
1257
842
|
of N, we implement SqrtLinCombination here that provides a special
|
1258
843
|
implementation of the == operator.</p>
|
1259
844
|
<dl class="py function">
|
1260
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1261
|
-
<span class="sig-prename descclassname"><span class="pre">snappy.verify.
|
845
|
+
<dt class="sig sig-object py" id="snappy.verify.square_extensions.find_shapes_as_complex_sqrt_lin_combinations">
|
846
|
+
<span class="sig-prename descclassname"><span class="pre">snappy.verify.square_extensions.</span></span><span class="sig-name descname"><span class="pre">find_shapes_as_complex_sqrt_lin_combinations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">M</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">degree</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.square_extensions.find_shapes_as_complex_sqrt_lin_combinations" title="Link to this definition"></a></dt>
|
1262
847
|
<dd><p>Given a manifold M, use snap (which uses LLL-algorithm) with the given
|
1263
848
|
decimal precision and maximal degree to find exact values for the shapes’
|
1264
849
|
real and imaginary part. Return the shapes as list of
|
@@ -1273,8 +858,8 @@ ComplexSqrtLinCombination’s. Return None on failure.</p>
|
|
1273
858
|
</dd></dl>
|
1274
859
|
|
1275
860
|
<dl class="py class">
|
1276
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1277
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.
|
861
|
+
<dt class="sig sig-object py" id="snappy.verify.square_extensions.SqrtLinCombination">
|
862
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.square_extensions.</span></span><span class="sig-name descname"><span class="pre">SqrtLinCombination</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">d</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">{}</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">embed_cache</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.square_extensions.SqrtLinCombination" title="Link to this definition"></a></dt>
|
1278
863
|
<dd><p>A class representing a linear combination</p>
|
1279
864
|
<blockquote>
|
1280
865
|
<div><p>c_1 * sqrt(r_1) + c_2 * sqrt(r_2) + … + c_n * sqrt(r_n)</p>
|
@@ -1369,16 +954,16 @@ True
|
|
1369
954
|
</pre></div>
|
1370
955
|
</div>
|
1371
956
|
<dl class="py method">
|
1372
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1373
|
-
<span class="sig-name descname"><span class="pre">sign</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.
|
957
|
+
<dt class="sig sig-object py" id="snappy.verify.square_extensions.SqrtLinCombination.sign">
|
958
|
+
<span class="sig-name descname"><span class="pre">sign</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.square_extensions.SqrtLinCombination.sign" title="Link to this definition"></a></dt>
|
1374
959
|
<dd><p>Returns the +1, 0, -1 depending on whether the value is positive,
|
1375
960
|
zero or negative. For the zero case, exact arithmetic is used to
|
1376
961
|
certify. Otherwise, interval arithmetic is used.</p>
|
1377
962
|
</dd></dl>
|
1378
963
|
|
1379
964
|
<dl class="py method">
|
1380
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1381
|
-
<span class="sig-name descname"><span class="pre">sign_with_interval</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.
|
965
|
+
<dt class="sig sig-object py" id="snappy.verify.square_extensions.SqrtLinCombination.sign_with_interval">
|
966
|
+
<span class="sig-name descname"><span class="pre">sign_with_interval</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.square_extensions.SqrtLinCombination.sign_with_interval" title="Link to this definition"></a></dt>
|
1382
967
|
<dd><p>Similar to sign, but for the non-zero case, also return the interval
|
1383
968
|
certifying the sign - useful for debugging.</p>
|
1384
969
|
</dd></dl>
|
@@ -1386,20 +971,20 @@ certifying the sign - useful for debugging.</p>
|
|
1386
971
|
</dd></dl>
|
1387
972
|
|
1388
973
|
<dl class="py class">
|
1389
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1390
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.
|
974
|
+
<dt class="sig sig-object py" id="snappy.verify.square_extensions.ComplexSqrtLinCombination">
|
975
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.square_extensions.</span></span><span class="sig-name descname"><span class="pre">ComplexSqrtLinCombination</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">real</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imag</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">embed_cache</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.square_extensions.ComplexSqrtLinCombination" title="Link to this definition"></a></dt>
|
1391
976
|
<dd><p>A pair (real, imag) of SqrtLinCombinations representing the complex number
|
1392
977
|
real + imag * I. Supports <code class="docutils literal notranslate"><span class="pre">real()</span></code>, <code class="docutils literal notranslate"><span class="pre">imag()</span></code>, <code class="docutils literal notranslate"><span class="pre">+</span></code>, <code class="docutils literal notranslate"><span class="pre">-</span></code>, <code class="docutils literal notranslate"><span class="pre">*</span></code>, <code class="docutils literal notranslate"><span class="pre">/</span></code>,
|
1393
978
|
<code class="docutils literal notranslate"><span class="pre">abs</span></code>, <code class="docutils literal notranslate"><span class="pre">conjugate()</span></code> and <code class="docutils literal notranslate"><span class="pre">==</span></code>.</p>
|
1394
979
|
<dl class="py method">
|
1395
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1396
|
-
<span class="sig-name descname"><span class="pre">imag</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.
|
980
|
+
<dt class="sig sig-object py" id="snappy.verify.square_extensions.ComplexSqrtLinCombination.imag">
|
981
|
+
<span class="sig-name descname"><span class="pre">imag</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.square_extensions.ComplexSqrtLinCombination.imag" title="Link to this definition"></a></dt>
|
1397
982
|
<dd><p>Imaginary part.</p>
|
1398
983
|
</dd></dl>
|
1399
984
|
|
1400
985
|
<dl class="py method">
|
1401
|
-
<dt class="sig sig-object py" id="snappy.verify.
|
1402
|
-
<span class="sig-name descname"><span class="pre">real</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.
|
986
|
+
<dt class="sig sig-object py" id="snappy.verify.square_extensions.ComplexSqrtLinCombination.real">
|
987
|
+
<span class="sig-name descname"><span class="pre">real</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.square_extensions.ComplexSqrtLinCombination.real" title="Link to this definition"></a></dt>
|
1403
988
|
<dd><p>Real part.</p>
|
1404
989
|
</dd></dl>
|
1405
990
|
|
@@ -1407,7 +992,7 @@ real + imag * I. Supports <code class="docutils literal notranslate"><span class
|
|
1407
992
|
|
1408
993
|
</section>
|
1409
994
|
<section id="module-snappy.verify.exceptions">
|
1410
|
-
<span id="exceptions"></span><h2>Exceptions<a class="headerlink" href="#module-snappy.verify.exceptions" title="
|
995
|
+
<span id="exceptions"></span><h2>Exceptions<a class="headerlink" href="#module-snappy.verify.exceptions" title="Link to this heading"></a></h2>
|
1411
996
|
<p>All final exceptions are deriving from two base classes:</p>
|
1412
997
|
<ul class="simple">
|
1413
998
|
<li><p>a subclass of VerifyErrorBase to indicate whether a numerical or exact
|
@@ -1450,11 +1035,6 @@ raised.</p>
|
|
1450
1035
|
<li><p>CuspEquationLogLiftNumericalVerifyError</p></li>
|
1451
1036
|
</ul>
|
1452
1037
|
</li>
|
1453
|
-
<li><p>CuspDevelopmentType</p>
|
1454
|
-
<ul>
|
1455
|
-
<li><p>CuspDevelopmentTypeExactVerifyError</p></li>
|
1456
|
-
</ul>
|
1457
|
-
</li>
|
1458
1038
|
</ul>
|
1459
1039
|
</li>
|
1460
1040
|
<li><p>TiltType</p>
|
@@ -1472,125 +1052,88 @@ raised.</p>
|
|
1472
1052
|
<li><p>ShapePositiveImaginaryPartNumericalVerifyError</p></li>
|
1473
1053
|
</ul>
|
1474
1054
|
</li>
|
1475
|
-
<li><p>ConsistencyWithSnapPeaType</p>
|
1476
|
-
<ul>
|
1477
|
-
<li><p>ConsistencyWithSnapPeaNumericalVerifyError</p></li>
|
1478
1055
|
</ul>
|
1479
1056
|
</li>
|
1480
1057
|
</ul>
|
1481
|
-
</li>
|
1482
|
-
</ul>
|
1483
|
-
<dl class="py exception">
|
1484
|
-
<dt class="sig sig-object py" id="snappy.verify.exceptions.ConsistencyWithSnapPeaNumericalVerifyError">
|
1485
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ConsistencyWithSnapPeaNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">snappea_value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.ConsistencyWithSnapPeaNumericalVerifyError" title="Permalink to this definition"></a></dt>
|
1486
|
-
<dd><p>Exception raised when there is a significant numerical difference
|
1487
|
-
between the values computed by the SnapPea kernel and by this module
|
1488
|
-
for a given quantity.</p>
|
1489
|
-
</dd></dl>
|
1490
|
-
|
1491
|
-
<dl class="py class">
|
1492
|
-
<dt class="sig sig-object py" id="snappy.verify.exceptions.ConsistencyWithSnapPeaType">
|
1493
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ConsistencyWithSnapPeaType</span></span><a class="headerlink" href="#snappy.verify.exceptions.ConsistencyWithSnapPeaType" title="Permalink to this definition"></a></dt>
|
1494
|
-
<dd><p>A base class for exceptions raised when there is a difference
|
1495
|
-
between the values computed by the SnapPea kernel and by this module
|
1496
|
-
for a given quantity.</p>
|
1497
|
-
</dd></dl>
|
1498
|
-
|
1499
1058
|
<dl class="py class">
|
1500
1059
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.CuspConsistencyType">
|
1501
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspConsistencyType</span></span><a class="headerlink" href="#snappy.verify.exceptions.CuspConsistencyType" title="
|
1060
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspConsistencyType</span></span><a class="headerlink" href="#snappy.verify.exceptions.CuspConsistencyType" title="Link to this definition"></a></dt>
|
1502
1061
|
<dd><p>A base class indicating that verificatin of an equation involving a cusp
|
1503
1062
|
failed.</p>
|
1504
1063
|
</dd></dl>
|
1505
1064
|
|
1506
|
-
<dl class="py exception">
|
1507
|
-
<dt class="sig sig-object py" id="snappy.verify.exceptions.CuspDevelopmentExactVerifyError">
|
1508
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspDevelopmentExactVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value2</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.CuspDevelopmentExactVerifyError" title="Permalink to this definition"></a></dt>
|
1509
|
-
<dd><p>Raised when finding a consistent assignment of side lengths to the
|
1510
|
-
Euclidean Horotriangles to form a Euclidean Horotorus for a cusp failed
|
1511
|
-
using exact arithmetic.</p>
|
1512
|
-
</dd></dl>
|
1513
|
-
|
1514
|
-
<dl class="py class">
|
1515
|
-
<dt class="sig sig-object py" id="snappy.verify.exceptions.CuspDevelopmentType">
|
1516
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspDevelopmentType</span></span><a class="headerlink" href="#snappy.verify.exceptions.CuspDevelopmentType" title="Permalink to this definition"></a></dt>
|
1517
|
-
<dd><p>A base class indicating that there was a failure to find a consistent
|
1518
|
-
assignment of side lengths to the Euclidean Horotriangles to form a
|
1519
|
-
Euclidean Horotorus for a cusp.</p>
|
1520
|
-
</dd></dl>
|
1521
|
-
|
1522
1065
|
<dl class="py exception">
|
1523
1066
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.CuspEquationExactVerifyError">
|
1524
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspEquationExactVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expected_value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.CuspEquationExactVerifyError" title="
|
1067
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspEquationExactVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expected_value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.CuspEquationExactVerifyError" title="Link to this definition"></a></dt>
|
1525
1068
|
<dd><p>Exception for failed verification of a polynomial cusp gluing equation
|
1526
1069
|
using exact arithmetics.</p>
|
1527
1070
|
</dd></dl>
|
1528
1071
|
|
1529
1072
|
<dl class="py exception">
|
1530
1073
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.CuspEquationLogLiftNumericalVerifyError">
|
1531
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspEquationLogLiftNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expected_value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.CuspEquationLogLiftNumericalVerifyError" title="
|
1074
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspEquationLogLiftNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expected_value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.CuspEquationLogLiftNumericalVerifyError" title="Link to this definition"></a></dt>
|
1532
1075
|
<dd><p>Exception for failed numerical verification that a logarithmic cusp
|
1533
1076
|
equation has error bound by epsilon.</p>
|
1534
1077
|
</dd></dl>
|
1535
1078
|
|
1536
1079
|
<dl class="py class">
|
1537
1080
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.CuspEquationType">
|
1538
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspEquationType</span></span><a class="headerlink" href="#snappy.verify.exceptions.CuspEquationType" title="
|
1081
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">CuspEquationType</span></span><a class="headerlink" href="#snappy.verify.exceptions.CuspEquationType" title="Link to this definition"></a></dt>
|
1539
1082
|
<dd><p>A base class indicating that a cusp gluing equation (involving the
|
1540
1083
|
shapes) failed.</p>
|
1541
1084
|
</dd></dl>
|
1542
1085
|
|
1543
1086
|
<dl class="py exception">
|
1544
1087
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.EdgeEquationExactVerifyError">
|
1545
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EdgeEquationExactVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.EdgeEquationExactVerifyError" title="
|
1088
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EdgeEquationExactVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.EdgeEquationExactVerifyError" title="Link to this definition"></a></dt>
|
1546
1089
|
<dd><p>Exception for failed verification of a polynomial edge equation
|
1547
1090
|
using exact arithmetics.</p>
|
1548
1091
|
</dd></dl>
|
1549
1092
|
|
1550
1093
|
<dl class="py exception">
|
1551
1094
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.EdgeEquationLogLiftNumericalVerifyError">
|
1552
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EdgeEquationLogLiftNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.EdgeEquationLogLiftNumericalVerifyError" title="
|
1095
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EdgeEquationLogLiftNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.EdgeEquationLogLiftNumericalVerifyError" title="Link to this definition"></a></dt>
|
1553
1096
|
<dd><p>Exception for failed numerical verification that a logarithmic edge
|
1554
1097
|
equation has error bound by epsilon.</p>
|
1555
1098
|
</dd></dl>
|
1556
1099
|
|
1557
1100
|
<dl class="py class">
|
1558
1101
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.EdgeEquationType">
|
1559
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EdgeEquationType</span></span><a class="headerlink" href="#snappy.verify.exceptions.EdgeEquationType" title="
|
1102
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EdgeEquationType</span></span><a class="headerlink" href="#snappy.verify.exceptions.EdgeEquationType" title="Link to this definition"></a></dt>
|
1560
1103
|
<dd><p>A base class indicating that an edge equation could not be verified.</p>
|
1561
1104
|
</dd></dl>
|
1562
1105
|
|
1563
1106
|
<dl class="py class">
|
1564
1107
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.EquationType">
|
1565
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EquationType</span></span><a class="headerlink" href="#snappy.verify.exceptions.EquationType" title="
|
1108
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">EquationType</span></span><a class="headerlink" href="#snappy.verify.exceptions.EquationType" title="Link to this definition"></a></dt>
|
1566
1109
|
<dd><p>A base class to derive subclasses which indicate what kind of
|
1567
1110
|
equation failed to be verified.</p>
|
1568
1111
|
</dd></dl>
|
1569
1112
|
|
1570
1113
|
<dl class="py exception">
|
1571
1114
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.ExactVerifyError">
|
1572
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ExactVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.ExactVerifyError" title="
|
1115
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ExactVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.ExactVerifyError" title="Link to this definition"></a></dt>
|
1573
1116
|
<dd><p>The base for all exceptions resulting from a failed verification of an
|
1574
1117
|
equation using exact arithmetics.</p>
|
1575
1118
|
</dd></dl>
|
1576
1119
|
|
1577
1120
|
<dl class="py exception">
|
1578
1121
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.InequalityNumericalVerifyError">
|
1579
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">InequalityNumericalVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.InequalityNumericalVerifyError" title="
|
1122
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">InequalityNumericalVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.InequalityNumericalVerifyError" title="Link to this definition"></a></dt>
|
1580
1123
|
<dd><p>The base for all exceptions resulting from a failed numerical
|
1581
1124
|
verification of an inequality (typically by interval arithmetics).</p>
|
1582
1125
|
</dd></dl>
|
1583
1126
|
|
1584
1127
|
<dl class="py exception">
|
1585
1128
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.IsZeroExactVerifyError">
|
1586
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">IsZeroExactVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.IsZeroExactVerifyError" title="
|
1129
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">IsZeroExactVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.IsZeroExactVerifyError" title="Link to this definition"></a></dt>
|
1587
1130
|
<dd><p>The base for all exceptions resulting from verifying that a desired
|
1588
1131
|
quantity is zero using exact arithmetics.</p>
|
1589
1132
|
</dd></dl>
|
1590
1133
|
|
1591
1134
|
<dl class="py exception">
|
1592
1135
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.LogLiftNumericalVerifyError">
|
1593
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">LogLiftNumericalVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.LogLiftNumericalVerifyError" title="
|
1136
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">LogLiftNumericalVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.LogLiftNumericalVerifyError" title="Link to this definition"></a></dt>
|
1594
1137
|
<dd><p>To verify a logarithmic gluing equation, the verify module will usually
|
1595
1138
|
first verify the corresponding polynomial gluing equation.
|
1596
1139
|
This means that the logarithmic gluing equation will be fulfilled up
|
@@ -1605,7 +1148,7 @@ failed.</p>
|
|
1605
1148
|
|
1606
1149
|
<dl class="py exception">
|
1607
1150
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.NumericalVerifyError">
|
1608
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">NumericalVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.NumericalVerifyError" title="
|
1151
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">NumericalVerifyError</span></span><a class="headerlink" href="#snappy.verify.exceptions.NumericalVerifyError" title="Link to this definition"></a></dt>
|
1609
1152
|
<dd><p>The base for all exceptions resulting from a failed numerical
|
1610
1153
|
verification of an equality (using some epsilon) or inequality
|
1611
1154
|
(typically by interval arithmetics).</p>
|
@@ -1613,31 +1156,31 @@ verification of an equality (using some epsilon) or inequality
|
|
1613
1156
|
|
1614
1157
|
<dl class="py exception">
|
1615
1158
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.ShapePositiveImaginaryPartNumericalVerifyError">
|
1616
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ShapePositiveImaginaryPartNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.ShapePositiveImaginaryPartNumericalVerifyError" title="
|
1159
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ShapePositiveImaginaryPartNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.ShapePositiveImaginaryPartNumericalVerifyError" title="Link to this definition"></a></dt>
|
1617
1160
|
<dd><p>Failed numerical verification of a shape having positive imaginary part.</p>
|
1618
1161
|
</dd></dl>
|
1619
1162
|
|
1620
1163
|
<dl class="py class">
|
1621
1164
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.ShapeType">
|
1622
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ShapeType</span></span><a class="headerlink" href="#snappy.verify.exceptions.ShapeType" title="
|
1165
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">ShapeType</span></span><a class="headerlink" href="#snappy.verify.exceptions.ShapeType" title="Link to this definition"></a></dt>
|
1623
1166
|
<dd><p>Base class for failed verification of legal shapes.</p>
|
1624
1167
|
</dd></dl>
|
1625
1168
|
|
1626
1169
|
<dl class="py exception">
|
1627
1170
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.TiltInequalityNumericalVerifyError">
|
1628
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltInequalityNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.TiltInequalityNumericalVerifyError" title="
|
1171
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltInequalityNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.TiltInequalityNumericalVerifyError" title="Link to this definition"></a></dt>
|
1629
1172
|
<dd><p>Numerically verifying that a tilt is negative has failed.</p>
|
1630
1173
|
</dd></dl>
|
1631
1174
|
|
1632
1175
|
<dl class="py exception">
|
1633
1176
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.TiltIsZeroExactVerifyError">
|
1634
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltIsZeroExactVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.TiltIsZeroExactVerifyError" title="
|
1177
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltIsZeroExactVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.TiltIsZeroExactVerifyError" title="Link to this definition"></a></dt>
|
1635
1178
|
<dd><p>Verifying that a tilt is zero has failed using exact arithmetic.</p>
|
1636
1179
|
</dd></dl>
|
1637
1180
|
|
1638
1181
|
<dl class="py exception">
|
1639
1182
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.TiltProvenPositiveNumericalVerifyError">
|
1640
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltProvenPositiveNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.TiltProvenPositiveNumericalVerifyError" title="
|
1183
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltProvenPositiveNumericalVerifyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.verify.exceptions.TiltProvenPositiveNumericalVerifyError" title="Link to this definition"></a></dt>
|
1641
1184
|
<dd><p>Numerically verifying that a tilt is negative has not only failed, we
|
1642
1185
|
proved that the tilt is positive and thus that this cannot be a
|
1643
1186
|
proto-canonical triangulation.</p>
|
@@ -1645,13 +1188,13 @@ proto-canonical triangulation.</p>
|
|
1645
1188
|
|
1646
1189
|
<dl class="py class">
|
1647
1190
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.TiltType">
|
1648
|
-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltType</span></span><a class="headerlink" href="#snappy.verify.exceptions.TiltType" title="
|
1191
|
+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">TiltType</span></span><a class="headerlink" href="#snappy.verify.exceptions.TiltType" title="Link to this definition"></a></dt>
|
1649
1192
|
<dd><p>A base class relating to tilts.</p>
|
1650
1193
|
</dd></dl>
|
1651
1194
|
|
1652
1195
|
<dl class="py exception">
|
1653
1196
|
<dt class="sig sig-object py" id="snappy.verify.exceptions.VerifyErrorBase">
|
1654
|
-
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">VerifyErrorBase</span></span><a class="headerlink" href="#snappy.verify.exceptions.VerifyErrorBase" title="
|
1197
|
+
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.verify.exceptions.</span></span><span class="sig-name descname"><span class="pre">VerifyErrorBase</span></span><a class="headerlink" href="#snappy.verify.exceptions.VerifyErrorBase" title="Link to this definition"></a></dt>
|
1655
1198
|
<dd><p>The base for all exceptions related to verification.</p>
|
1656
1199
|
</dd></dl>
|
1657
1200
|
|
@@ -1662,14 +1205,14 @@ proto-canonical triangulation.</p>
|
|
1662
1205
|
</div>
|
1663
1206
|
</div>
|
1664
1207
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
1665
|
-
<a href="
|
1208
|
+
<a href="verify.html" class="btn btn-neutral float-left" title="Verified computations" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
1666
1209
|
<a href="other.html" class="btn btn-neutral float-right" title="Other components" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
1667
1210
|
</div>
|
1668
1211
|
|
1669
1212
|
<hr/>
|
1670
1213
|
|
1671
1214
|
<div role="contentinfo">
|
1672
|
-
<p>© Copyright 2009-
|
1215
|
+
<p>© Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
|
1673
1216
|
</div>
|
1674
1217
|
|
1675
1218
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|