snappy 3.1__cp311-cp311-macosx_11_0_arm64.whl → 3.2__cp311-cp311-macosx_11_0_arm64.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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/credits.rst.txt +6 -1
- 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 +22 -22
- 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 +116 -86
- 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.dist-info → snappy-3.2.dist-info}/METADATA +26 -11
- snappy-3.2.dist-info/RECORD +503 -0
- {snappy-3.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
- {snappy-3.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.dist-info/RECORD +0 -585
- {snappy-3.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
@@ -1,23 +1,23 @@
|
|
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>Step-by-step examples: Part 1 — 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>Step-by-step examples: Part 1 — 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" />
|
@@ -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
|
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" />
|
@@ -110,9 +107,9 @@
|
|
110
107
|
<div itemprop="articleBody">
|
111
108
|
|
112
109
|
<section id="step-by-step-examples-part-1">
|
113
|
-
<h1>Step-by-step examples: Part 1<a class="headerlink" href="#step-by-step-examples-part-1" title="
|
110
|
+
<h1>Step-by-step examples: Part 1<a class="headerlink" href="#step-by-step-examples-part-1" title="Link to this heading"></a></h1>
|
114
111
|
<section id="the-ptolemy-variety-for-sl-n-c">
|
115
|
-
<span id="ptolemy-example-basic"></span><h2>The Ptolemy variety for SL(<em>N</em>, <strong>C</strong>)<a class="headerlink" href="#the-ptolemy-variety-for-sl-n-c" title="
|
112
|
+
<span id="ptolemy-example-basic"></span><h2>The Ptolemy variety for SL(<em>N</em>, <strong>C</strong>)<a class="headerlink" href="#the-ptolemy-variety-for-sl-n-c" title="Link to this heading"></a></h2>
|
116
113
|
<p>Given a SnapPy triangulation, we obtain the reduced Ptolemy variety to find
|
117
114
|
SL(2, <strong>C</strong>)-representations as follows:</p>
|
118
115
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
@@ -146,7 +143,7 @@ for the two tetrahedra in <code class="docutils literal notranslate"><span class
|
|
146
143
|
<p><strong>Remark:</strong> Similarly, we obtain four Ptolemy relations for each of the two tetrahedra in <code class="docutils literal notranslate"><span class="pre">m004</span></code> corresponding to the four subsimplices of a tetrahedron we get for <em>N</em>=3 (see Figure 2 of <a class="reference internal" href="ptolemy_prelim.html#gtz2011" id="id1"><span>[GTZ2011]</span></a>).</p>
|
147
144
|
</section>
|
148
145
|
<section id="using-auto-completion">
|
149
|
-
<h2>Using auto-completion<a class="headerlink" href="#using-auto-completion" title="
|
146
|
+
<h2>Using auto-completion<a class="headerlink" href="#using-auto-completion" title="Link to this heading"></a></h2>
|
150
147
|
<p>Let us assign a Ptolemy variety to <code class="docutils literal notranslate"><span class="pre">p</span></code> and then type <code class="docutils literal notranslate"><span class="pre">p.</span></code>:</p>
|
151
148
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">p</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
152
149
|
<span class="gp">>>> </span><span class="n">p</span><span class="o">.</span>
|
@@ -174,7 +171,7 @@ Preferred filename base for writing out this Ptolemy variety
|
|
174
171
|
<p>This is a general mechanism and works for all objects in SnapPy, sage or ipython.</p>
|
175
172
|
</section>
|
176
173
|
<section id="retrieving-exact-solutions-from-the-database">
|
177
|
-
<span id="ptolemy-example-retrieve-exact-solutions"></span><h2>Retrieving exact solutions from the database<a class="headerlink" href="#retrieving-exact-solutions-from-the-database" title="
|
174
|
+
<span id="ptolemy-example-retrieve-exact-solutions"></span><h2>Retrieving exact solutions from the database<a class="headerlink" href="#retrieving-exact-solutions-from-the-database" title="Link to this heading"></a></h2>
|
178
175
|
<p>Given a Ptolemy variety, we can access the database at <a class="reference external" href="http://ptolemy.unhyperbolic.org/">ptolemy.unhyperbolic.org</a> to retrieve solutions for it with <code class="docutils literal notranslate"><span class="pre">retrieve_solutions</span></code> (if this is not working, please check your Internet connection):</p>
|
179
176
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">p</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
180
177
|
<span class="gp">>>> </span><span class="n">sols</span><span class="o">=</span><span class="n">p</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()</span>
|
@@ -240,9 +237,9 @@ Preferred filename base for writing out this Ptolemy variety
|
|
240
237
|
</div>
|
241
238
|
</section>
|
242
239
|
<section id="compute-the-matrices-for-a-representation">
|
243
|
-
<span id="ptolemy-example-matrices"></span><h2>Compute the matrices for a representation<a class="headerlink" href="#compute-the-matrices-for-a-representation" title="
|
240
|
+
<span id="ptolemy-example-matrices"></span><h2>Compute the matrices for a representation<a class="headerlink" href="#compute-the-matrices-for-a-representation" title="Link to this heading"></a></h2>
|
244
241
|
<p><strong>Remark:</strong> Requires SnapPy 2.3 or later.</p>
|
245
|
-
<p>Given a solution as above, we can take a word in the fundamental group and get its image under the representation using <code class="docutils literal notranslate"><span class="pre">evaluate_word</span></code>. Here, we do it for the two generators:</p>
|
242
|
+
<p>Given a solution as above, we can take a word in the fundamental group and get its image under the representation using <a class="reference internal" href="ptolemy_classes.html#snappy.ptolemy.coordinates.PtolemyCoordinates.evaluate_word" title="snappy.ptolemy.coordinates.PtolemyCoordinates.evaluate_word"><code class="xref py py-meth docutils literal notranslate"><span class="pre">evaluate_word()</span></code></a>. Here, we do it for the two generators:</p>
|
246
243
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
247
244
|
<span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
|
248
245
|
<span class="gp">>>> </span><span class="n">sol</span><span class="o">.</span><span class="n">evaluate_word</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span>
|
@@ -252,13 +249,14 @@ Preferred filename base for writing out this Ptolemy variety
|
|
252
249
|
<span class="go">[Mod(-x, x^2 - x - 1), Mod(-1, x^2 - x - 1)]]</span>
|
253
250
|
</pre></div>
|
254
251
|
</div>
|
255
|
-
<p>By default, this word is with respect to the presentation of the fundamental group
|
256
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
|
252
|
+
<p>By default, this word is with respect to the unsimplified presentation of the fundamental group. Thus, we expect the identity matrix when we evaluate a relator (for PSL(<em>N</em>, <strong>C</strong>) the diagonal element will be an <em>N</em>-th root of unity):</p>
|
253
|
+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">(</span><span class="n">simplify_presentation</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
257
254
|
<span class="go">Generators:</span>
|
258
|
-
<span class="go"> a,b</span>
|
255
|
+
<span class="go"> a,b,c</span>
|
259
256
|
<span class="go">Relators:</span>
|
260
|
-
<span class="go">
|
261
|
-
<span class="
|
257
|
+
<span class="go"> BCaC</span>
|
258
|
+
<span class="go"> AbCbA</span>
|
259
|
+
<span class="gp">>>> </span><span class="n">sol</span><span class="o">.</span><span class="n">evaluate_word</span><span class="p">(</span><span class="s1">'BCaC'</span><span class="p">)</span>
|
262
260
|
<span class="go">[[Mod(1, x^2 - x - 1), 0], [0, Mod(1, x^2 - x - 1)]]</span>
|
263
261
|
</pre></div>
|
264
262
|
</div>
|
@@ -266,7 +264,7 @@ Preferred filename base for writing out this Ptolemy variety
|
|
266
264
|
<p><strong>Remark:</strong> The matrices are currently returned as a list of list of pari <code class="docutils literal notranslate"><span class="pre">POLMOD</span></code> objects. In the future, the ptolemy module should return the matrices as sage matrices over a <a class="reference external" href="http://doc.sagemath.org/html/en/reference/number_fields/sage/rings/number_field/number_field.html">sage NumberField</a>.</p>
|
267
265
|
</section>
|
268
266
|
<section id="compute-the-traces">
|
269
|
-
<span id="ptolemy-example-traces"></span><h2>Compute the traces<a class="headerlink" href="#compute-the-traces" title="
|
267
|
+
<span id="ptolemy-example-traces"></span><h2>Compute the traces<a class="headerlink" href="#compute-the-traces" title="Link to this heading"></a></h2>
|
270
268
|
<p><strong>Remark:</strong> Requires SnapPy 2.3.2 or later.</p>
|
271
269
|
<p>We can compute the traces of these matrices:</p>
|
272
270
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
@@ -285,7 +283,7 @@ Preferred filename base for writing out this Ptolemy variety
|
|
285
283
|
<a class="reference external" href="http://www.math.illinois.edu/GEAR/resources/Culler/Culler-lecture3-slides.pdf">Marc Culler’s slides</a>.</p>
|
286
284
|
</section>
|
287
285
|
<section id="compute-the-trace-field-for-a-psl-2-c-representation">
|
288
|
-
<span id="ptolemy-examples-trace-field"></span><h2>Compute the trace field for a PSL(<em>2</em>, <strong>C</strong>)-representation<a class="headerlink" href="#compute-the-trace-field-for-a-psl-2-c-representation" title="
|
286
|
+
<span id="ptolemy-examples-trace-field"></span><h2>Compute the trace field for a PSL(<em>2</em>, <strong>C</strong>)-representation<a class="headerlink" href="#compute-the-trace-field-for-a-psl-2-c-representation" title="Link to this heading"></a></h2>
|
289
287
|
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
290
288
|
<span class="gp">>>> </span><span class="n">sol</span><span class="o">.</span><span class="n">number_field</span><span class="p">()</span>
|
291
289
|
<span class="go">x^2 + x + 1</span>
|
@@ -294,7 +292,7 @@ Preferred filename base for writing out this Ptolemy variety
|
|
294
292
|
<p>This is the Ptolemy field which is equal to the trace field if <em>N</em>= 2 by results of <a class="reference internal" href="ptolemy_prelim.html#ggz2014" id="id2"><span>[GGZ2014]</span></a>.</p>
|
295
293
|
</section>
|
296
294
|
<section id="compute-the-volume">
|
297
|
-
<span id="ptolemy-example-volume"></span><h2>Compute the volume<a class="headerlink" href="#compute-the-volume" title="
|
295
|
+
<span id="ptolemy-example-volume"></span><h2>Compute the volume<a class="headerlink" href="#compute-the-volume" title="Link to this heading"></a></h2>
|
298
296
|
<p>We can also compute the volume of the representations:</p>
|
299
297
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
300
298
|
<span class="gp">>>> </span><span class="n">sol</span><span class="o">.</span><span class="n">volume_numerical</span><span class="p">()</span>
|
@@ -304,7 +302,7 @@ Preferred filename base for writing out this Ptolemy variety
|
|
304
302
|
<p>Recall that we had an algebraic solution in the number field with defining polynomial x<sup>2</sup>+x+1. This number field has two embeddings into <strong>C</strong>, yielding two representations. This is why the result is a list of two volumes. In this case, they are both zero up to numerical precision.</p>
|
305
303
|
</section>
|
306
304
|
<section id="increase-precision">
|
307
|
-
<span id="ptolemy-example-increase-precision"></span><h2>Increase precision<a class="headerlink" href="#increase-precision" title="
|
305
|
+
<span id="ptolemy-example-increase-precision"></span><h2>Increase precision<a class="headerlink" href="#increase-precision" title="Link to this heading"></a></h2>
|
308
306
|
<p>We can get higher precision be setting it in pari (in decimal digits):</p>
|
309
307
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m011"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
310
308
|
<span class="gp">>>> </span><span class="n">sol</span><span class="o">.</span><span class="n">volume_numerical</span><span class="p">()</span>
|
@@ -320,7 +318,7 @@ Preferred filename base for writing out this Ptolemy variety
|
|
320
318
|
<p><strong>Remark:</strong> This is not using interval arithmetics (although this is planned for the future). For now, the computed value of a quantity might differ from the real value by far more than the number of displayed digits suggests. To be confident about the result, we can increase the precision and see how many digits of the result are stabilizing.</p>
|
321
319
|
</section>
|
322
320
|
<section id="ptolemy-varieties-for-psl-n-c-representations">
|
323
|
-
<span id="ptolemy-example-obstruction-class"></span><h2>Ptolemy varieties for PSL(<em>N</em>, <strong>C</strong>)-representations<a class="headerlink" href="#ptolemy-varieties-for-psl-n-c-representations" title="
|
321
|
+
<span id="ptolemy-example-obstruction-class"></span><h2>Ptolemy varieties for PSL(<em>N</em>, <strong>C</strong>)-representations<a class="headerlink" href="#ptolemy-varieties-for-psl-n-c-representations" title="Link to this heading"></a></h2>
|
324
322
|
<p>The representations of <code class="docutils literal notranslate"><span class="pre">m003</span></code> we detected so far had trivial volume and thus cannot include the geometric representation. This is because the geometric representation is a boundary-unipotent PSL(2, <strong>C</strong>)-representation but not a <a class="reference internal" href="ptolemy_prelim.html#ptolemy-boundary-unipotent"><span class="std std-ref">boundary-unipotent SL(2, C)-representation</span></a> and we only detect the latter ones above.</p>
|
325
323
|
<p>We can obtain the Ptolemy varieties for all <a class="reference internal" href="ptolemy_prelim.html#obstruction-class"><span class="std std-ref">obstruction classes</span></a> to find the PSL(<em>N</em>, <strong>C</strong>)-representation that do not lift to boundary-unipotent SL(<em>N</em>, <strong>C</strong>)-representations as well:</p>
|
326
324
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
@@ -363,7 +361,7 @@ Here is python code to iterate over all obstruction classes:</p>
|
|
363
361
|
<p><strong>Remark</strong>: As we see, it is not necessary to use named arguments <code class="docutils literal notranslate"><span class="pre">N</span> <span class="pre">=</span> <span class="pre">2</span></code> and <code class="docutils literal notranslate"><span class="pre">obstruction_class</span> <span class="pre">=</span> <span class="pre">'all'</span></code> for faster typing. However, for better readability of our code, we recommend to include the names.</p>
|
364
362
|
</section>
|
365
363
|
<section id="a-short-cut-for-a-psl-n-c-ptolemy-variety">
|
366
|
-
<h2>A short cut for a PSL(<em>N</em>, <strong>C</strong>) Ptolemy variety<a class="headerlink" href="#a-short-cut-for-a-psl-n-c-ptolemy-variety" title="
|
364
|
+
<h2>A short cut for a PSL(<em>N</em>, <strong>C</strong>) Ptolemy variety<a class="headerlink" href="#a-short-cut-for-a-psl-n-c-ptolemy-variety" title="Link to this heading"></a></h2>
|
367
365
|
<p>We have seen that <code class="docutils literal notranslate"><span class="pre">M.ptolemy_variety(2,</span> <span class="pre">'all')</span></code> gives a Ptolemy variety for each obstruction class. We used <code class="docutils literal notranslate"><span class="pre">M.ptolemy_variety(2,</span> <span class="pre">'all')[3]</span></code> to pick one, here the fourth, of those varieties. A shorter form of doing this is:</p>
|
368
366
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m009"</span><span class="p">)</span>
|
369
367
|
<span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
@@ -388,7 +386,7 @@ Here is python code to iterate over all obstruction classes:</p>
|
|
388
386
|
<hr/>
|
389
387
|
|
390
388
|
<div role="contentinfo">
|
391
|
-
<p>© Copyright 2009-
|
389
|
+
<p>© Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
|
392
390
|
</div>
|
393
391
|
|
394
392
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
@@ -1,23 +1,23 @@
|
|
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>Step-by-step examples: Part 2 — 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>Step-by-step examples: Part 2 — 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" />
|
@@ -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
|
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" />
|
@@ -110,9 +107,9 @@
|
|
110
107
|
<div itemprop="articleBody">
|
111
108
|
|
112
109
|
<section id="step-by-step-examples-part-2">
|
113
|
-
<h1>Step-by-step examples: Part 2<a class="headerlink" href="#step-by-step-examples-part-2" title="
|
110
|
+
<h1>Step-by-step examples: Part 2<a class="headerlink" href="#step-by-step-examples-part-2" title="Link to this heading"></a></h1>
|
114
111
|
<section id="the-ptolemy-list-type">
|
115
|
-
<span id="ptolemy-example-smart-lists"></span><h2>The Ptolemy list type<a class="headerlink" href="#the-ptolemy-list-type" title="
|
112
|
+
<span id="ptolemy-example-smart-lists"></span><h2>The Ptolemy list type<a class="headerlink" href="#the-ptolemy-list-type" title="Link to this heading"></a></h2>
|
116
113
|
<p>Recall that <code class="docutils literal notranslate"><span class="pre">ptolemy_variety</span></code> with <code class="docutils literal notranslate"><span class="pre">obstruction_class='all'</span></code> returns a list of varieties, one for each obstruction class:</p>
|
117
114
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
118
115
|
<span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">obstruction_class</span> <span class="o">=</span> <span class="s1">'all'</span><span class="p">)</span>
|
@@ -155,7 +152,7 @@ the given arguments (here <code class="docutils literal notranslate"><span class
|
|
155
152
|
<p>Since <code class="docutils literal notranslate"><span class="pre">retrieve_solutions</span></code> itself actually returns a list, the result is a list of lists of solutions which are of type <code class="docutils literal notranslate"><span class="pre">PtolemyCoordinates</span></code>. The first level groups the solutions by obstruction class. The inner lists contain the different (non-Galois conjugate) solutions for each obstruction class (here, for <code class="docutils literal notranslate"><span class="pre">m003</span></code>, each inner lists contains only one element).</p>
|
156
153
|
</section>
|
157
154
|
<section id="using-the-ptolemy-list-type-recursively">
|
158
|
-
<h2>Using the Ptolemy list type recursively<a class="headerlink" href="#using-the-ptolemy-list-type-recursively" title="
|
155
|
+
<h2>Using the Ptolemy list type recursively<a class="headerlink" href="#using-the-ptolemy-list-type-recursively" title="Link to this heading"></a></h2>
|
159
156
|
<p>The list type described in the previous example works recursively. Recall that an algebraic solution to a Ptolemy variety (of type <code class="docutils literal notranslate"><span class="pre">PtolemyCoordinates</span></code>) has a method <code class="docutils literal notranslate"><span class="pre">volume_numerical</span></code> that returns a list of volumes:</p>
|
160
157
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
161
158
|
<span class="gp">>>> </span><span class="n">p</span><span class="o">=</span><span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
|
@@ -174,7 +171,7 @@ the given arguments (here <code class="docutils literal notranslate"><span class
|
|
174
171
|
<p><strong>Remark:</strong> Unfortunately, this is not compatible with tab-autocompletion, see <a class="reference internal" href="#ptolemy-example-missing-auto-completion"><span class="std std-ref">later</span></a>.</p>
|
175
172
|
</section>
|
176
173
|
<section id="a-comparison-of-m003-and-m004">
|
177
|
-
<h2>A comparison of <code class="docutils literal notranslate"><span class="pre">m003</span></code> and <code class="docutils literal notranslate"><span class="pre">m004</span></code><a class="headerlink" href="#a-comparison-of-m003-and-m004" title="
|
174
|
+
<h2>A comparison of <code class="docutils literal notranslate"><span class="pre">m003</span></code> and <code class="docutils literal notranslate"><span class="pre">m004</span></code><a class="headerlink" href="#a-comparison-of-m003-and-m004" title="Link to this heading"></a></h2>
|
178
175
|
<p>We can now compare the set of volumes of <code class="docutils literal notranslate"><span class="pre">m003</span></code> and <code class="docutils literal notranslate"><span class="pre">m004</span></code>:</p>
|
179
176
|
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">volume_numerical</span><span class="p">()</span>
|
180
177
|
<span class="go">[[[0.E-19, 1.88267370443418 E-14]], [[2.02988321281931, -2.02988321281931]]]</span>
|
@@ -185,7 +182,7 @@ the given arguments (here <code class="docutils literal notranslate"><span class
|
|
185
182
|
<p>We see that the two manifolds are distinguished by their volumes of boundary-unipotent representations: <code class="docutils literal notranslate"><span class="pre">m004</span></code> has no representation with trivial volume (this is not a proof as in theory, there could be such a representation which is not <a class="reference internal" href="ptolemy_prelim.html#ptolemy-generically-decorated"><span class="std std-ref">generically decorated</span></a> with respect to the given triangulation) and no representation that can be lifted to a boundary-unipotent SL(2, <strong>C</strong>)-representation.</p>
|
186
183
|
</section>
|
187
184
|
<section id="a-non-hyperbolic-example">
|
188
|
-
<h2>A non-hyperbolic example<a class="headerlink" href="#a-non-hyperbolic-example" title="
|
185
|
+
<h2>A non-hyperbolic example<a class="headerlink" href="#a-non-hyperbolic-example" title="Link to this heading"></a></h2>
|
189
186
|
<p>We can also compute the volumes for a manifold that might be non-hyperbolic, here the complement of the 5<sub>1</sub> knot:</p>
|
190
187
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"5_1"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">volume_numerical</span><span class="p">()</span>
|
191
188
|
<span class="go">[[], [[1.52310839130992 E-14, 0.E-37]]]</span>
|
@@ -195,7 +192,7 @@ the given arguments (here <code class="docutils literal notranslate"><span class
|
|
195
192
|
<p><strong>Remark:</strong> The ptolemy module does not (yet) support interval arithmetics, otherwise, this would be a proof that 5<sub>1</sub> is not hyperbolic.</p>
|
196
193
|
</section>
|
197
194
|
<section id="flattening-nested-structures">
|
198
|
-
<h2>Flattening nested structures<a class="headerlink" href="#flattening-nested-structures" title="
|
195
|
+
<h2>Flattening nested structures<a class="headerlink" href="#flattening-nested-structures" title="Link to this heading"></a></h2>
|
199
196
|
<p>If we want to loose some of the grouping, we can call <code class="docutils literal notranslate"><span class="pre">flatten</span></code> on the results. Here the grouping by obstruction class is lost:</p>
|
200
197
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">volume_numerical</span><span class="p">()</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
|
201
198
|
<span class="go">[[0.E-19, 1.88267370443418 E-14], [2.02988321281931, -2.02988321281931]]</span>
|
@@ -210,7 +207,7 @@ the given arguments (here <code class="docutils literal notranslate"><span class
|
|
210
207
|
<p><strong>Remark:</strong> We cannot <cite>overflatten</cite>. If we give an even larger argument to flatten, the result will just stay a flat list.</p>
|
211
208
|
</section>
|
212
209
|
<section id="lack-of-tab-autocompletion-for-nested-structures">
|
213
|
-
<span id="ptolemy-example-missing-auto-completion"></span><h2>Lack of tab-autocompletion for nested structures<a class="headerlink" href="#lack-of-tab-autocompletion-for-nested-structures" title="
|
210
|
+
<span id="ptolemy-example-missing-auto-completion"></span><h2>Lack of tab-autocompletion for nested structures<a class="headerlink" href="#lack-of-tab-autocompletion-for-nested-structures" title="Link to this heading"></a></h2>
|
214
211
|
<p>Unfortunately, the autocompletion does not list all the desired results when we have a nested structure. For example:</p>
|
215
212
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sols</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
216
213
|
<span class="gp">>>> </span><span class="n">sols</span><span class="o">.</span>
|
@@ -234,7 +231,7 @@ the given arguments (here <code class="docutils literal notranslate"><span class
|
|
234
231
|
<p>The overview diagram might also be helpful.</p>
|
235
232
|
</section>
|
236
233
|
<section id="converting-exact-solutions-into-numerical-solutions">
|
237
|
-
<h2>Converting exact solutions into numerical solutions<a class="headerlink" href="#converting-exact-solutions-into-numerical-solutions" title="
|
234
|
+
<h2>Converting exact solutions into numerical solutions<a class="headerlink" href="#converting-exact-solutions-into-numerical-solutions" title="Link to this heading"></a></h2>
|
238
235
|
<p>We can turn exact solutions into numerical solutions by calling <code class="docutils literal notranslate"><span class="pre">numerical</span></code>:</p>
|
239
236
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
|
240
237
|
<span class="gp">>>> </span><span class="n">sol</span>
|
@@ -268,7 +265,7 @@ the given arguments (here <code class="docutils literal notranslate"><span class
|
|
268
265
|
<p><strong>Remark:</strong> <code class="docutils literal notranslate"><span class="pre">CrossRatios</span></code> also support <code class="docutils literal notranslate"><span class="pre">numerical</span></code>.</p>
|
269
266
|
</section>
|
270
267
|
<section id="working-with-exact-vs-numerical-solutions">
|
271
|
-
<span id="ptolemy-example-numerical-matrix"></span><h2>Working with exact vs numerical solutions<a class="headerlink" href="#working-with-exact-vs-numerical-solutions" title="
|
268
|
+
<span id="ptolemy-example-numerical-matrix"></span><h2>Working with exact vs numerical solutions<a class="headerlink" href="#working-with-exact-vs-numerical-solutions" title="Link to this heading"></a></h2>
|
272
269
|
<p>Most methods such as <code class="docutils literal notranslate"><span class="pre">evaluate_word</span></code> or <code class="docutils literal notranslate"><span class="pre">cross_ratios</span></code> work just the same way on an exact solution:</p>
|
273
270
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">exact_sol</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m004"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
|
274
271
|
<span class="gp">>>> </span><span class="n">exact_sol</span>
|
@@ -313,7 +310,7 @@ of Galois conjugate numerical solutions first. <code class="docutils literal not
|
|
313
310
|
</div>
|
314
311
|
</section>
|
315
312
|
<section id="computing-numerical-solutions-directly">
|
316
|
-
<span id="ptolemy-example-retrieve-numerical-solutions"></span><h2>Computing numerical solutions directly<a class="headerlink" href="#computing-numerical-solutions-directly" title="
|
313
|
+
<span id="ptolemy-example-retrieve-numerical-solutions"></span><h2>Computing numerical solutions directly<a class="headerlink" href="#computing-numerical-solutions-directly" title="Link to this heading"></a></h2>
|
317
314
|
<p>We can also directly compute numerical solutions:</p>
|
318
315
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m004"</span><span class="p">)</span>
|
319
316
|
<span class="gp">>>> </span><span class="n">sols</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">numerical</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
|
@@ -341,7 +338,7 @@ of Galois conjugate numerical solutions first. <code class="docutils literal not
|
|
341
338
|
(because it can avoid computing the number field from the lexicographic Groebner basis, see later). For example, many PSL(3, <strong>C</strong>) examples only work when using <code class="docutils literal notranslate"><span class="pre">numerical</span> <span class="pre">=</span> <span class="pre">True</span></code>.</p>
|
342
339
|
</section>
|
343
340
|
<section id="computing-cross-ratios-from-ptolemy-coordinates">
|
344
|
-
<span id="ptolemy-example-cross-ratios"></span><h2>Computing cross ratios from Ptolemy coordinates<a class="headerlink" href="#computing-cross-ratios-from-ptolemy-coordinates" title="
|
341
|
+
<span id="ptolemy-example-cross-ratios"></span><h2>Computing cross ratios from Ptolemy coordinates<a class="headerlink" href="#computing-cross-ratios-from-ptolemy-coordinates" title="Link to this heading"></a></h2>
|
345
342
|
<p>Given exact or numerical solutions to the Ptolemy variety, we can also compute the cross ratios/shape parameters:</p>
|
346
343
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">sols</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m004"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">(</span><span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
347
344
|
<span class="gp">>>> </span><span class="n">zs</span><span class="o">=</span><span class="n">sols</span><span class="o">.</span><span class="n">cross_ratios</span><span class="p">()</span>
|
@@ -383,7 +380,7 @@ of Galois conjugate numerical solutions first. <code class="docutils literal not
|
|
383
380
|
<p>The result is of type <code class="docutils literal notranslate"><span class="pre">CrossRatios</span></code> and assigns z as well as z’=1/(1-z) and z’’=1-1/z a value.</p>
|
384
381
|
</section>
|
385
382
|
<section id="the-dimension-of-a-component">
|
386
|
-
<span id="ptolemy-non-zero-dim-comp"></span><h2>The dimension of a component<a class="headerlink" href="#the-dimension-of-a-component" title="
|
383
|
+
<span id="ptolemy-non-zero-dim-comp"></span><h2>The dimension of a component<a class="headerlink" href="#the-dimension-of-a-component" title="Link to this heading"></a></h2>
|
387
384
|
<p>A Ptolemy variety might have positively dimensional components (note that this might or might not be a positively dimensional family of representations, see <a class="reference internal" href="ptolemy_prelim.html#ptolemy-generically-decorated"><span class="std std-ref">here</span></a>). For example, the Ptolemy variety for <code class="docutils literal notranslate"><span class="pre">m371</span></code> and the trivial obstruction class has a 1-dimensional component. This is indicated by:</p>
|
388
385
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()</span>
|
389
386
|
<span class="go">[NonZeroDimensionalComponent(dimension = 1)]</span>
|
@@ -451,7 +448,7 @@ of Galois conjugate numerical solutions first. <code class="docutils literal not
|
|
451
448
|
<hr/>
|
452
449
|
|
453
450
|
<div role="contentinfo">
|
454
|
-
<p>© Copyright 2009-
|
451
|
+
<p>© Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
|
455
452
|
</div>
|
456
453
|
|
457
454
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
@@ -1,23 +1,23 @@
|
|
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>Step-by-step examples: Part 3 — 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>Step-by-step examples: Part 3 — 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" />
|
@@ -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
|
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" />
|
@@ -110,9 +107,9 @@
|
|
110
107
|
<div itemprop="articleBody">
|
111
108
|
|
112
109
|
<section id="step-by-step-examples-part-3">
|
113
|
-
<h1>Step-by-step examples: Part 3<a class="headerlink" href="#step-by-step-examples-part-3" title="
|
110
|
+
<h1>Step-by-step examples: Part 3<a class="headerlink" href="#step-by-step-examples-part-3" title="Link to this heading"></a></h1>
|
114
111
|
<section id="computing-solutions-with-magma-or-sage-vs-retrieving-solutions">
|
115
|
-
<span id="ptolemy-example-using-magma-sage"></span><h2>Computing solutions with magma or sage vs retrieving solutions<a class="headerlink" href="#computing-solutions-with-magma-or-sage-vs-retrieving-solutions" title="
|
112
|
+
<span id="ptolemy-example-using-magma-sage"></span><h2>Computing solutions with magma or sage vs retrieving solutions<a class="headerlink" href="#computing-solutions-with-magma-or-sage-vs-retrieving-solutions" title="Link to this heading"></a></h2>
|
116
113
|
<p>So far, we querried the database for solutions to a Ptolemy variety:</p>
|
117
114
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">p</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m011"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
118
115
|
<span class="gp">>>> </span><span class="n">p</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()</span>
|
@@ -173,7 +170,7 @@
|
|
173
170
|
<p><strong>Remark:</strong> If no engine is specified, it is assumed to be sage when used inside sage and magma instead.</p>
|
174
171
|
</section>
|
175
172
|
<section id="computing-the-complex-volume">
|
176
|
-
<span id="ptolemy-example-complex-volume"></span><h2>Computing the complex volume<a class="headerlink" href="#computing-the-complex-volume" title="
|
173
|
+
<span id="ptolemy-example-complex-volume"></span><h2>Computing the complex volume<a class="headerlink" href="#computing-the-complex-volume" title="Link to this heading"></a></h2>
|
177
174
|
<p>Similar to <code class="docutils literal notranslate"><span class="pre">volume_numerical</span></code>, we can compute the complex volume (volume + i Chern-Simons) for all representations (that are <a class="reference internal" href="ptolemy_prelim.html#ptolemy-generically-decorated"><span class="std std-ref">generically decorated</span></a>).</p>
|
178
175
|
<p>Here is an example computing the solutions to the Ptolemy variety ourselves:</p>
|
179
176
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m011"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">compute_solutions</span><span class="p">()</span><span class="o">.</span><span class="n">complex_volume_numerical</span><span class="p">()</span>
|
@@ -199,8 +196,8 @@
|
|
199
196
|
</div>
|
200
197
|
</section>
|
201
198
|
<section id="computing-the-matrices-for-a-different-presentation">
|
202
|
-
<span id="ptolemy-detailed-example-matrices"></span><h2>Computing the matrices for a different presentation<a class="headerlink" href="#computing-the-matrices-for-a-different-presentation" title="
|
203
|
-
<p>The <code class="docutils literal notranslate"><span class="pre">fundamental_group</span></code> method of a SnapPy triangulation can yield different presentations by supplying optional arguments such as <code class="docutils literal notranslate"><span class="pre">simplify_presentation</span></code> and <code class="docutils literal notranslate"><span class="pre">minimize_number_of_generators</span></code>. If we have a word in one of these presentations and want to evaluate its image under the representation, we need to supply the presentation as follows:</p>
|
199
|
+
<span id="ptolemy-detailed-example-matrices"></span><h2>Computing the matrices for a different presentation<a class="headerlink" href="#computing-the-matrices-for-a-different-presentation" title="Link to this heading"></a></h2>
|
200
|
+
<p>The <a class="reference internal" href="triangulation.html#snappy.Triangulation.fundamental_group" title="snappy.Triangulation.fundamental_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fundamental_group()</span></code></a> method of a SnapPy triangulation can yield different presentations by supplying optional arguments such as <code class="docutils literal notranslate"><span class="pre">simplify_presentation</span></code> and <code class="docutils literal notranslate"><span class="pre">minimize_number_of_generators</span></code>. If we have a word in one of these presentations and want to evaluate its image under the representation, we need to supply the presentation as follows:</p>
|
204
201
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
205
202
|
<span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
|
206
203
|
<span class="gp">>>> </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">(</span><span class="n">simplify_presentation</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
|
@@ -224,8 +221,8 @@
|
|
224
221
|
</div>
|
225
222
|
</section>
|
226
223
|
<section id="computing-the-images-of-the-peripheral-curves-for-a-representation">
|
227
|
-
<span id="ptolemy-example-boundary-holonomy"></span><h2>Computing the images of the peripheral curves for a representation<a class="headerlink" href="#computing-the-images-of-the-peripheral-curves-for-a-representation" title="
|
228
|
-
<p>The object returned by <code class="docutils literal notranslate"><span class="pre">fundamental_group</span></code> also contains words for the peripheral curves of a manifold. We can compute the corresponding matrices:</p>
|
224
|
+
<span id="ptolemy-example-boundary-holonomy"></span><h2>Computing the images of the peripheral curves for a representation<a class="headerlink" href="#computing-the-images-of-the-peripheral-curves-for-a-representation" title="Link to this heading"></a></h2>
|
225
|
+
<p>The object returned by <a class="reference internal" href="triangulation.html#snappy.Triangulation.fundamental_group" title="snappy.Triangulation.fundamental_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fundamental_group()</span></code></a> also contains words for the peripheral curves of a manifold. We can compute the corresponding matrices:</p>
|
229
226
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m003"</span><span class="p">)</span>
|
230
227
|
<span class="gp">>>> </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
|
231
228
|
<span class="gp">>>> </span><span class="n">sol</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
|
@@ -241,7 +238,7 @@
|
|
241
238
|
<p><strong>Remark:</strong> For each cusp, we can conjugate these matrices into <em>P</em> since the representation is <a class="reference internal" href="ptolemy_prelim.html#ptolemy-boundary-unipotent"><span class="std std-ref">boundary-unipotent</span></a>. We might implement a method returning a matrix in <em>P</em> for the longitude and meridian of a cusp in the future (simply by finding loops corresponding to a longitude and meridian as path of short edges in the truncated simplex in Figure 17 of <a class="reference internal" href="ptolemy_prelim.html#ggz2012" id="id1"><span>[GGZ2012]</span></a>).</p>
|
242
239
|
</section>
|
243
240
|
<section id="finding-a-witness-point-for-a-positively-dimensional-component-of-the-ptolemy-variety">
|
244
|
-
<span id="ptolemy-example-find-witness"></span><h2>Finding a witness point for a positively dimensional component of the Ptolemy variety<a class="headerlink" href="#finding-a-witness-point-for-a-positively-dimensional-component-of-the-ptolemy-variety" title="
|
241
|
+
<span id="ptolemy-example-find-witness"></span><h2>Finding a witness point for a positively dimensional component of the Ptolemy variety<a class="headerlink" href="#finding-a-witness-point-for-a-positively-dimensional-component-of-the-ptolemy-variety" title="Link to this heading"></a></h2>
|
245
242
|
<p>We already saw an <a class="reference internal" href="ptolemy_examples2.html#ptolemy-non-zero-dim-comp"><span class="std std-ref">example of a positively dimensional component</span></a>. By flattening, we obtain a list of all the components of the Ptolemy varieties for all obstruction classes:</p>
|
246
243
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span><span class="o">=</span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m371"</span><span class="p">)</span>
|
247
244
|
<span class="gp">>>> </span><span class="n">sols</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
|
@@ -280,7 +277,7 @@
|
|
280
277
|
<p>The different volumes in a line correspond to different Galois conjugates of the same <cite>algebraic</cite> witness point.</p>
|
281
278
|
</section>
|
282
279
|
<section id="finding-non-zero-dimensional-families-of-boundary-unipotent-representations">
|
283
|
-
<span id="ptolemy-example-non-zero-dim-rep"></span><h2>Finding non-zero dimensional families of boundary-unipotent representations<a class="headerlink" href="#finding-non-zero-dimensional-families-of-boundary-unipotent-representations" title="
|
280
|
+
<span id="ptolemy-example-non-zero-dim-rep"></span><h2>Finding non-zero dimensional families of boundary-unipotent representations<a class="headerlink" href="#finding-non-zero-dimensional-families-of-boundary-unipotent-representations" title="Link to this heading"></a></h2>
|
284
281
|
<p>We now revisit the <a class="reference internal" href="ptolemy_examples2.html#ptolemy-non-zero-dim-comp"><span class="std std-ref">1-dimensional component of the Ptolemy variety</span></a> and answer the question whether this yields a 1-dimensional family of representations or not. We pick a <a class="reference internal" href="#ptolemy-example-find-witness"><span class="std std-ref">witness point</span></a> for the component and check the <a class="reference internal" href="#ptolemy-example-boundary-holonomy"><span class="std std-ref">matrices for the peripheral curves</span></a>:</p>
|
285
282
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">"m371"</span><span class="p">)</span>
|
286
283
|
<span class="gp">>>> </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
|
@@ -326,7 +323,7 @@
|
|
326
323
|
<p><strong>Remark:</strong> The witness points are chosen so that they are not at the intersection of two positively dimensional components. This is for the following reason: it could happen that there is a 1-dimensional family of representations which contains points where the boundary holonomy becomes trivial. This yields a representation where the above matrices are trivial yet it is part of a 1-dimensional family of boundary-unipotent representations. In the ptolemy variety, however, this means that two non-zero dimensional components (one corresponding to a family of decorations, the other to a family of representations) intersect.</p>
|
327
324
|
</section>
|
328
325
|
<section id="representations-that-are-the-same-as-psl-2-c-representations">
|
329
|
-
<h2>Representations that are the same as PSL(2, <strong>C</strong>)-representations<a class="headerlink" href="#representations-that-are-the-same-as-psl-2-c-representations" title="
|
326
|
+
<h2>Representations that are the same as PSL(2, <strong>C</strong>)-representations<a class="headerlink" href="#representations-that-are-the-same-as-psl-2-c-representations" title="Link to this heading"></a></h2>
|
330
327
|
<p>Let us compare the volumes of <code class="docutils literal notranslate"><span class="pre">m009</span></code> and <code class="docutils literal notranslate"><span class="pre">m159</span></code>:</p>
|
331
328
|
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">Manifold</span><span class="p">(</span><span class="s2">"m009"</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'all'</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()</span><span class="o">.</span><span class="n">volume_numerical</span><span class="p">()</span>
|
332
329
|
<span class="go">[[],</span>
|
@@ -394,7 +391,7 @@
|
|
394
391
|
<hr/>
|
395
392
|
|
396
393
|
<div role="contentinfo">
|
397
|
-
<p>© Copyright 2009-
|
394
|
+
<p>© Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
|
398
395
|
</div>
|
399
396
|
|
400
397
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|