snappy 3.1.1__cp38-cp38-win_amd64.whl → 3.2__cp38-cp38-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- snappy/CyOpenGL.cp38-win_amd64.pyd +0 -0
- snappy/SnapPy.cp38-win_amd64.pyd +0 -0
- snappy/SnapPyHP.cp38-win_amd64.pyd +0 -0
- snappy/__init__.py +299 -402
- snappy/app.py +70 -20
- snappy/browser.py +18 -17
- snappy/canonical.py +249 -0
- snappy/{verify/cusp_shapes.py → cusps/__init__.py} +8 -18
- snappy/cusps/cusp_area_matrix.py +101 -0
- snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +23 -39
- snappy/cusps/maximal_cusp_area_matrix.py +136 -0
- snappy/cusps/test.py +21 -0
- snappy/cusps/trig_cusp_area_matrix.py +63 -0
- snappy/database.py +10 -9
- snappy/decorated_isosig.py +337 -114
- snappy/dev/extended_ptolemy/complexVolumesClosed.py +40 -7
- snappy/dev/extended_ptolemy/extended.py +3 -3
- snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
- snappy/dev/vericlosed/oneVertexTruncatedComplex.py +1 -1
- snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
- snappy/doc/_images/m125_paper_plane.jpg +0 -0
- snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
- snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
- snappy/doc/_sources/additional_classes.rst.txt +40 -40
- snappy/doc/_sources/bugs.rst.txt +14 -14
- snappy/doc/_sources/censuses.rst.txt +51 -51
- snappy/doc/_sources/credits.rst.txt +75 -75
- snappy/doc/_sources/development.rst.txt +259 -239
- snappy/doc/_sources/index.rst.txt +182 -115
- snappy/doc/_sources/installing.rst.txt +247 -264
- snappy/doc/_sources/manifold.rst.txt +6 -6
- snappy/doc/_sources/manifoldhp.rst.txt +46 -46
- snappy/doc/_sources/news.rst.txt +355 -283
- snappy/doc/_sources/other.rst.txt +25 -25
- snappy/doc/_sources/platonic_census.rst.txt +20 -20
- snappy/doc/_sources/plink.rst.txt +102 -102
- snappy/doc/_sources/ptolemy.rst.txt +66 -66
- snappy/doc/_sources/ptolemy_classes.rst.txt +42 -42
- snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -297
- snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -363
- snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -301
- snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -61
- snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -105
- snappy/doc/_sources/screenshots.rst.txt +21 -21
- snappy/doc/_sources/snap.rst.txt +87 -87
- snappy/doc/_sources/snappy.rst.txt +28 -28
- snappy/doc/_sources/spherogram.rst.txt +103 -103
- snappy/doc/_sources/todo.rst.txt +47 -47
- snappy/doc/_sources/triangulation.rst.txt +11 -11
- snappy/doc/_sources/tutorial.rst.txt +49 -49
- snappy/doc/_sources/verify.rst.txt +210 -150
- snappy/doc/_sources/verify_internals.rst.txt +79 -90
- snappy/doc/_static/basic.css +924 -902
- snappy/doc/_static/css/badge_only.css +1 -1
- snappy/doc/_static/css/theme.css +1 -1
- snappy/doc/_static/doctools.js +1 -1
- snappy/doc/_static/documentation_options.js +12 -13
- snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
- snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- snappy/doc/_static/js/versions.js +228 -0
- snappy/doc/_static/language_data.js +199 -199
- snappy/doc/_static/pygments.css +74 -73
- snappy/doc/_static/searchtools.js +125 -71
- snappy/doc/_static/snappy_furo.css +33 -33
- snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -42
- snappy/doc/_static/sphinx_highlight.js +13 -3
- snappy/doc/additional_classes.html +1499 -1330
- snappy/doc/bugs.html +131 -134
- snappy/doc/censuses.html +426 -445
- snappy/doc/credits.html +180 -183
- snappy/doc/development.html +383 -363
- snappy/doc/genindex.html +1330 -1409
- snappy/doc/index.html +261 -206
- snappy/doc/installing.html +345 -363
- snappy/doc/manifold.html +3451 -2839
- snappy/doc/manifoldhp.html +179 -182
- snappy/doc/news.html +387 -329
- snappy/doc/objects.inv +0 -0
- snappy/doc/other.html +160 -162
- snappy/doc/platonic_census.html +374 -377
- snappy/doc/plink.html +209 -212
- snappy/doc/ptolemy.html +253 -255
- snappy/doc/ptolemy_classes.html +1143 -1146
- snappy/doc/ptolemy_examples1.html +408 -410
- snappy/doc/ptolemy_examples2.html +470 -473
- snappy/doc/ptolemy_examples3.html +413 -416
- snappy/doc/ptolemy_examples4.html +194 -197
- snappy/doc/ptolemy_prelim.html +247 -250
- snappy/doc/py-modindex.html +164 -167
- snappy/doc/screenshots.html +140 -142
- snappy/doc/search.html +134 -137
- snappy/doc/searchindex.js +1 -1
- snappy/doc/snap.html +201 -204
- snappy/doc/snappy.html +180 -182
- snappy/doc/spherogram.html +1210 -1213
- snappy/doc/todo.html +165 -168
- snappy/doc/triangulation.html +1583 -1474
- snappy/doc/tutorial.html +158 -161
- snappy/doc/verify.html +329 -275
- snappy/doc/verify_internals.html +1234 -1691
- snappy/drilling/__init__.py +153 -235
- snappy/drilling/barycentric.py +103 -0
- snappy/drilling/constants.py +0 -2
- snappy/drilling/crush.py +56 -130
- snappy/drilling/cusps.py +12 -6
- snappy/drilling/debug.py +2 -1
- snappy/drilling/exceptions.py +7 -40
- snappy/drilling/moves.py +302 -243
- snappy/drilling/perturb.py +63 -37
- snappy/drilling/shorten.py +36 -0
- snappy/drilling/subdivide.py +0 -5
- snappy/drilling/test.py +23 -0
- snappy/drilling/test_cases.py +126 -0
- snappy/drilling/tracing.py +9 -37
- snappy/exceptions.py +18 -5
- snappy/exterior_to_link/barycentric_geometry.py +2 -4
- snappy/exterior_to_link/main.py +8 -7
- snappy/exterior_to_link/mcomplex_with_link.py +2 -2
- snappy/exterior_to_link/rational_linear_algebra.py +1 -1
- snappy/exterior_to_link/rational_linear_algebra_wrapped.py +1 -1
- snappy/exterior_to_link/test.py +21 -33
- snappy/geometric_structure/__init__.py +212 -0
- snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
- snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
- snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
- snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
- snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
- snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
- snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
- snappy/geometric_structure/geodesic/__init__.py +0 -0
- snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
- snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
- snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
- snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
- snappy/geometric_structure/geodesic/constants.py +6 -0
- snappy/geometric_structure/geodesic/exceptions.py +22 -0
- snappy/{drilling → geometric_structure/geodesic}/fixed_points.py +34 -9
- snappy/{drilling/geodesic_info.py → geometric_structure/geodesic/geodesic_start_point_info.py} +139 -180
- snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
- snappy/geometric_structure/geodesic/line.py +30 -0
- snappy/geometric_structure/geodesic/multiplicity.py +127 -0
- snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
- snappy/geometric_structure/test.py +22 -0
- snappy/gui.py +23 -13
- snappy/horoviewer.py +7 -7
- snappy/hyperboloid/__init__.py +96 -31
- snappy/hyperboloid/distances.py +245 -0
- snappy/hyperboloid/horoball.py +19 -0
- snappy/hyperboloid/line.py +35 -0
- snappy/hyperboloid/point.py +9 -0
- snappy/hyperboloid/triangle.py +29 -0
- snappy/isometry_signature.py +382 -0
- snappy/len_spec/__init__.py +596 -0
- snappy/len_spec/geodesic_info.py +110 -0
- snappy/len_spec/geodesic_key_info_dict.py +117 -0
- snappy/len_spec/geodesic_piece.py +143 -0
- snappy/len_spec/geometric_structure.py +182 -0
- snappy/len_spec/geometry.py +80 -0
- snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
- snappy/len_spec/spine.py +206 -0
- snappy/len_spec/test.py +24 -0
- snappy/len_spec/test_cases.py +69 -0
- snappy/len_spec/tile.py +275 -0
- snappy/len_spec/word.py +86 -0
- snappy/math_basics.py +39 -13
- snappy/matrix.py +52 -9
- snappy/number.py +12 -6
- snappy/numeric_output_checker.py +2 -3
- snappy/pari.py +8 -4
- snappy/phone_home.py +2 -1
- snappy/polyviewer.py +8 -8
- snappy/ptolemy/__init__.py +1 -1
- snappy/ptolemy/component.py +2 -2
- snappy/ptolemy/coordinates.py +25 -25
- snappy/ptolemy/findLoops.py +9 -9
- snappy/ptolemy/manifoldMethods.py +27 -29
- snappy/ptolemy/polynomial.py +50 -57
- snappy/ptolemy/processFileBase.py +60 -0
- snappy/ptolemy/ptolemyVariety.py +109 -41
- snappy/ptolemy/reginaWrapper.py +4 -4
- snappy/ptolemy/rur.py +1 -1
- snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +9 -9
- snappy/ptolemy/test.py +99 -54
- snappy/ptolemy/utilities.py +1 -1
- snappy/raytracing/__init__.py +64 -0
- snappy/raytracing/additional_horospheres.py +64 -0
- snappy/raytracing/additional_len_spec_choices.py +63 -0
- snappy/raytracing/cohomology_fractal.py +0 -3
- snappy/raytracing/eyeball.py +123 -0
- snappy/raytracing/finite_raytracing_data.py +17 -17
- snappy/raytracing/finite_viewer.py +15 -15
- snappy/raytracing/geodesic_tube_info.py +93 -63
- snappy/raytracing/geodesics.py +94 -64
- snappy/raytracing/geodesics_window.py +56 -34
- snappy/raytracing/gui_utilities.py +21 -6
- snappy/raytracing/hyperboloid_navigation.py +29 -4
- snappy/raytracing/hyperboloid_utilities.py +73 -73
- snappy/raytracing/ideal_raytracing_data.py +121 -91
- snappy/raytracing/inside_viewer.py +199 -66
- snappy/raytracing/pack.py +22 -0
- snappy/raytracing/raytracing_data.py +37 -25
- snappy/raytracing/raytracing_view.py +70 -65
- snappy/raytracing/shaders/Eye.png +0 -0
- snappy/raytracing/shaders/NonGeometric.png +0 -0
- snappy/raytracing/shaders/__init__.py +39 -3
- snappy/raytracing/shaders/fragment.glsl +451 -133
- snappy/raytracing/test.py +29 -0
- snappy/raytracing/tooltip.py +146 -0
- snappy/raytracing/upper_halfspace_utilities.py +42 -9
- snappy/sage_helper.py +67 -134
- snappy/settings.py +90 -77
- snappy/shell.py +2 -0
- snappy/snap/character_varieties.py +2 -2
- snappy/snap/find_field.py +4 -3
- snappy/snap/fundamental_polyhedron.py +2 -2
- snappy/snap/kernel_structures.py +5 -1
- snappy/snap/nsagetools.py +9 -8
- snappy/snap/peripheral/dual_cellulation.py +4 -3
- snappy/snap/peripheral/peripheral.py +2 -2
- snappy/snap/peripheral/surface.py +5 -5
- snappy/snap/peripheral/test.py +1 -1
- snappy/snap/polished_reps.py +8 -8
- snappy/snap/slice_obs_HKL.py +16 -14
- snappy/snap/t3mlite/arrow.py +3 -3
- snappy/snap/t3mlite/edge.py +3 -3
- snappy/snap/t3mlite/homology.py +2 -2
- snappy/snap/t3mlite/mcomplex.py +3 -3
- snappy/snap/t3mlite/simplex.py +12 -0
- snappy/snap/t3mlite/spun.py +18 -17
- snappy/snap/t3mlite/test_vs_regina.py +4 -4
- snappy/snap/test.py +37 -53
- snappy/snap/utilities.py +4 -5
- snappy/test.py +121 -138
- snappy/test_cases.py +263 -0
- snappy/testing.py +131 -0
- snappy/tiling/__init__.py +2 -0
- snappy/tiling/canonical_key_dict.py +59 -0
- snappy/tiling/dict_based_set.py +79 -0
- snappy/tiling/floor.py +49 -0
- snappy/tiling/hyperboloid_dict.py +54 -0
- snappy/tiling/iter_utils.py +78 -0
- snappy/tiling/lifted_tetrahedron.py +22 -0
- snappy/tiling/lifted_tetrahedron_set.py +54 -0
- snappy/tiling/real_hash_dict.py +164 -0
- snappy/tiling/test.py +23 -0
- snappy/tiling/tile.py +215 -0
- snappy/tiling/triangle.py +33 -0
- snappy/tkterminal.py +113 -84
- snappy/twister/main.py +1 -7
- snappy/twister/twister_core.cp38-win_amd64.pyd +0 -0
- snappy/upper_halfspace/__init__.py +78 -17
- snappy/verify/__init__.py +3 -7
- snappy/verify/{verifyCanonical.py → canonical.py} +78 -70
- snappy/verify/complex_volume/adjust_torsion.py +1 -2
- snappy/verify/complex_volume/closed.py +13 -13
- snappy/verify/complex_volume/cusped.py +6 -6
- snappy/verify/complex_volume/extended_bloch.py +5 -8
- snappy/verify/{cuspTranslations.py → cusp_translations.py} +1 -1
- snappy/verify/edge_equations.py +80 -0
- snappy/verify/exceptions.py +0 -55
- snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +3 -3
- snappy/verify/interval_newton_shapes_engine.py +7 -5
- snappy/verify/interval_tree.py +5 -5
- snappy/verify/krawczyk_shapes_engine.py +17 -18
- snappy/verify/maximal_cusp_area_matrix/__init__.py +7 -74
- snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +3 -4
- snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +1 -1
- snappy/verify/{realAlgebra.py → real_algebra.py} +1 -1
- snappy/verify/shapes.py +5 -3
- snappy/verify/short_slopes.py +39 -41
- snappy/verify/{squareExtensions.py → square_extensions.py} +14 -11
- snappy/verify/test.py +57 -60
- snappy/verify/upper_halfspace/extended_matrix.py +1 -1
- snappy/verify/upper_halfspace/finite_point.py +3 -4
- snappy/verify/upper_halfspace/ideal_point.py +9 -9
- snappy/verify/volume.py +2 -2
- snappy/version.py +2 -2
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/METADATA +14 -10
- snappy-3.2.dist-info/RECORD +503 -0
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
- snappy/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/__pycache__/browser.cpython-38.pyc +0 -0
- snappy/__pycache__/cache.cpython-38.pyc +0 -0
- snappy/__pycache__/database.cpython-38.pyc +0 -0
- snappy/__pycache__/db_utilities.cpython-38.pyc +0 -0
- snappy/__pycache__/decorated_isosig.cpython-38.pyc +0 -0
- snappy/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/__pycache__/export_stl.cpython-38.pyc +0 -0
- snappy/__pycache__/filedialog.cpython-38.pyc +0 -0
- snappy/__pycache__/gui.cpython-38.pyc +0 -0
- snappy/__pycache__/horoviewer.cpython-38.pyc +0 -0
- snappy/__pycache__/math_basics.cpython-38.pyc +0 -0
- snappy/__pycache__/matrix.cpython-38.pyc +0 -0
- snappy/__pycache__/number.cpython-38.pyc +0 -0
- snappy/__pycache__/numeric_output_checker.cpython-38.pyc +0 -0
- snappy/__pycache__/pari.cpython-38.pyc +0 -0
- snappy/__pycache__/polyviewer.cpython-38.pyc +0 -0
- snappy/__pycache__/sage_helper.cpython-38.pyc +0 -0
- snappy/__pycache__/version.cpython-38.pyc +0 -0
- snappy/doc/_sources/verify_canon.rst.txt +0 -90
- snappy/doc/_static/jquery-3.6.0.js +0 -10881
- snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
- snappy/doc/_static/js/html5shiv.min.js +0 -4
- snappy/doc/_static/underscore-1.13.1.js +0 -2042
- snappy/doc/_static/underscore.js +0 -6
- snappy/doc/verify_canon.html +0 -304
- snappy/drilling/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/constants.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/crush.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/cusps.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/debug.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/epsilons.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/fixed_points.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_info.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geodesic_tube.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/geometric_structure.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/line.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/moves.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/peripheral_curves.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/perturb.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/quotient_space.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/spatial_dict.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/subdivide.cpython-38.pyc +0 -0
- snappy/drilling/__pycache__/tracing.cpython-38.pyc +0 -0
- snappy/drilling/geodesic_tube.py +0 -441
- snappy/drilling/geometric_structure.py +0 -366
- snappy/drilling/line.py +0 -122
- snappy/drilling/quotient_space.py +0 -94
- snappy/drilling/spatial_dict.py +0 -128
- snappy/exterior_to_link/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/hyp_utils.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/link_projection.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/main.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/pl_utils.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/put_in_S3.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-38.pyc +0 -0
- snappy/exterior_to_link/__pycache__/stored_moves.cpython-38.pyc +0 -0
- snappy/hyperboloid/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/manifolds/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/component.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/coordinates.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/fieldExtensions.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/findLoops.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/homology.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/manifoldMethods.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/matrix.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/polynomial.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processComponents.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileBase.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processFileDispatch.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processMagmaFile.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/processRurFile.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVariety.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/rur.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
- snappy/ptolemy/__pycache__/utilities.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/character_varieties.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/fundamental_polyhedron.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/interval_reps.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/kernel_structures.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/mcomplex_base.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/nsagetools.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/polished_reps.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/shapes.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/slice_obs_HKL.cpython-38.pyc +0 -0
- snappy/snap/__pycache__/utilities.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/link.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/peripheral.cpython-38.pyc +0 -0
- snappy/snap/peripheral/__pycache__/surface.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/arrow.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/corner.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/edge.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/face.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/files.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/homology.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/linalg.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/mcomplex.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/perm4.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/simplex.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/spun.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/surface.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-38.pyc +0 -0
- snappy/snap/t3mlite/__pycache__/vertex.cpython-38.pyc +0 -0
- snappy/togl/__init__.py +0 -3
- snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
- snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/darwin-tk8.7/Togl2.1/LICENSE +0 -28
- snappy/togl/darwin-tk8.7/Togl2.1/libTogl2.1.dylib +0 -0
- snappy/togl/darwin-tk8.7/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
- snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
- snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
- snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
- snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
- snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
- snappy/twister/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/twister/__pycache__/main.cpython-38.pyc +0 -0
- snappy/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/upper_halfspace/__pycache__/ideal_point.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cuspCrossSection.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cuspTranslations.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cusp_areas.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/cusp_shapes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/exceptions.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/interval_tree.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/realAlgebra.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/shapes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/short_slopes.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/squareExtensions.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/verifyCanonical.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/verifyHyperbolicity.cpython-38.pyc +0 -0
- snappy/verify/__pycache__/volume.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/closed.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/cusped.cpython-38.pyc +0 -0
- snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-38.pyc +0 -0
- snappy/verify/cuspCrossSection.py +0 -1422
- snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-38.pyc +0 -0
- snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-38.pyc +0 -0
- snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-38.pyc +0 -0
- snappy-3.1.1.dist-info/RECORD +0 -575
- {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
"""
|
2
|
-
The
|
2
|
+
The square_extensions module provides
|
3
3
|
two special classes to give exact representations of the values
|
4
4
|
involved when computing a cusp cross section.
|
5
5
|
|
@@ -39,7 +39,7 @@ if _within_sage:
|
|
39
39
|
|
40
40
|
from ..snap import find_field
|
41
41
|
|
42
|
-
from .
|
42
|
+
from .real_algebra import field_containing_real_and_imaginary_part_of_number_field
|
43
43
|
|
44
44
|
|
45
45
|
def eval_number_field_elt(elt, root):
|
@@ -75,7 +75,7 @@ def eval_number_field_elt(elt, root):
|
|
75
75
|
# _field_containing_real_and_imaginary_part_of_algebraic_number_LLL.
|
76
76
|
# This was still very slow and failed on t11669 and 9 manifolds with 9 tetrahedra.
|
77
77
|
#
|
78
|
-
# The fastest implementation so far is in
|
78
|
+
# The fastest implementation so far is in real_algebra. The implementation there
|
79
79
|
# turns the one complex equation p(z) = 0 defining the number field into two
|
80
80
|
# real equations for the real and imaginary part of the complex equation and
|
81
81
|
# then uses the resultant to find exact solutions.
|
@@ -272,6 +272,9 @@ class SqrtLinCombination():
|
|
272
272
|
# Set embed cache, see _get_interval_embedding_from_cache for details
|
273
273
|
self._embed_cache = embed_cache
|
274
274
|
|
275
|
+
def parent(self):
|
276
|
+
return SqrtLinCombination
|
277
|
+
|
275
278
|
def __add__(self, other):
|
276
279
|
# Try to convert other term to SqrtLinCombination if necessary
|
277
280
|
if not isinstance(other, SqrtLinCombination):
|
@@ -291,7 +294,7 @@ class SqrtLinCombination():
|
|
291
294
|
def __neg__(self):
|
292
295
|
# Negate
|
293
296
|
return SqrtLinCombination(
|
294
|
-
d=
|
297
|
+
d={ k: -v for k, v in self._dict.items() },
|
295
298
|
embed_cache=self._embed_cache)
|
296
299
|
|
297
300
|
def __sub__(self, other):
|
@@ -701,8 +704,8 @@ class _FactorizedSqrtLinCombination():
|
|
701
704
|
else:
|
702
705
|
return frozenset([k])
|
703
706
|
|
704
|
-
return _FactorizedSqrtLinCombination(
|
705
|
-
|
707
|
+
return _FactorizedSqrtLinCombination({
|
708
|
+
to_set(k): v for k, v in l._dict.items()},
|
706
709
|
embed_cache=l._embed_cache)
|
707
710
|
|
708
711
|
def __add__(self, other):
|
@@ -718,7 +721,7 @@ class _FactorizedSqrtLinCombination():
|
|
718
721
|
|
719
722
|
def __neg__(self):
|
720
723
|
return _FactorizedSqrtLinCombination(
|
721
|
-
|
724
|
+
{k: -v for k, v in self._dict.items()},
|
722
725
|
embed_cache=self._embed_cache)
|
723
726
|
|
724
727
|
def __sub__(self, other):
|
@@ -767,17 +770,17 @@ class _FactorizedSqrtLinCombination():
|
|
767
770
|
operator.and_, self._dict.keys())
|
768
771
|
|
769
772
|
# Factor them out
|
770
|
-
d =
|
773
|
+
d = {k - common_terms: v for k, v in self._dict.items()}
|
771
774
|
|
772
775
|
# Pick one r_{i,j}
|
773
776
|
term = _firstfirst(d.keys())
|
774
777
|
|
775
778
|
# Split the summands into "left" and "right"
|
776
779
|
left = _FactorizedSqrtLinCombination(
|
777
|
-
|
780
|
+
{ k: v for k, v in d.items() if term in k },
|
778
781
|
embed_cache=self._embed_cache)
|
779
782
|
right = _FactorizedSqrtLinCombination(
|
780
|
-
|
783
|
+
{ k: v for k, v in d.items() if term not in k},
|
781
784
|
embed_cache=self._embed_cache)
|
782
785
|
|
783
786
|
# Check left^2 - right^2 == 0
|
@@ -864,7 +867,7 @@ def _filter_zero(d):
|
|
864
867
|
"""
|
865
868
|
Given a dict, filter out all items where the value is 0.
|
866
869
|
"""
|
867
|
-
return
|
870
|
+
return {k: v for k, v in d.items() if v != 0}
|
868
871
|
|
869
872
|
|
870
873
|
def _convert_to_allowed_type(number):
|
snappy/verify/test.py
CHANGED
@@ -1,35 +1,19 @@
|
|
1
|
-
from snappy import
|
2
|
-
|
3
|
-
from snappy.sage_helper import _within_sage, doctest_modules
|
4
|
-
import sys
|
5
|
-
import getopt
|
6
|
-
|
7
|
-
|
8
|
-
def check_certified_intervals():
|
9
|
-
for n in ['m009', 'm015', 't02333', 't02333(1,2)',
|
10
|
-
'm129(2,3)', 'm129(2,3)(3,4)']:
|
11
|
-
M = Manifold(n)
|
12
|
-
high_prec = M.tetrahedra_shapes('rect', bits_prec=1000)
|
13
|
-
|
14
|
-
intervals = M.tetrahedra_shapes('rect', bits_prec=100,
|
15
|
-
intervals=True)
|
16
|
-
|
17
|
-
for z, interval in zip(high_prec, intervals):
|
18
|
-
if not abs(interval.center() - z) < 1e-10:
|
19
|
-
raise Exception
|
20
|
-
|
21
|
-
if z not in interval:
|
22
|
-
raise Exception
|
1
|
+
from snappy import testing
|
2
|
+
import snappy
|
23
3
|
|
4
|
+
from snappy import verify
|
24
5
|
|
25
6
|
def generate_test_with_shapes_engine(module, engine):
|
26
|
-
def result(verbose):
|
27
|
-
globs = {'Manifold':Manifold}
|
7
|
+
def result(verbose, print_info=True):
|
8
|
+
globs = {'Manifold' : snappy.Manifold}
|
28
9
|
|
29
10
|
original = verify.CertifiedShapesEngine
|
30
11
|
verify.CertifiedShapesEngine = engine
|
31
12
|
|
32
|
-
r = doctest_modules([module],
|
13
|
+
r = testing.doctest_modules([ module ],
|
14
|
+
verbose=verbose,
|
15
|
+
print_info=print_info,
|
16
|
+
extraglobs=globs)
|
33
17
|
|
34
18
|
verify.CertifiedShapesEngine = original
|
35
19
|
|
@@ -39,43 +23,56 @@ def generate_test_with_shapes_engine(module, engine):
|
|
39
23
|
|
40
24
|
return result
|
41
25
|
|
26
|
+
modules = [
|
27
|
+
generate_test_with_shapes_engine(
|
28
|
+
verify.krawczyk_shapes_engine,
|
29
|
+
verify.KrawczykShapesEngine),
|
30
|
+
generate_test_with_shapes_engine(
|
31
|
+
verify.interval_newton_shapes_engine,
|
32
|
+
verify.IntervalNewtonShapesEngine),
|
33
|
+
generate_test_with_shapes_engine(
|
34
|
+
verify.hyperbolicity,
|
35
|
+
verify.KrawczykShapesEngine),
|
36
|
+
generate_test_with_shapes_engine(
|
37
|
+
verify.hyperbolicity,
|
38
|
+
verify.IntervalNewtonShapesEngine),
|
39
|
+
verify.canonical,
|
40
|
+
verify.interval_tree,
|
41
|
+
verify.volume,
|
42
|
+
verify.upper_halfspace.ideal_point,
|
43
|
+
verify.upper_halfspace.finite_point,
|
44
|
+
verify.upper_halfspace.extended_matrix,
|
45
|
+
verify.maximal_cusp_area_matrix,
|
46
|
+
verify.maximal_cusp_area_matrix.cusp_tiling_engine,
|
47
|
+
verify.maximal_cusp_area_matrix.cusp_translate_engine,
|
48
|
+
verify.square_extensions,
|
49
|
+
verify.real_algebra
|
50
|
+
]
|
42
51
|
|
43
52
|
def run_doctests(verbose=False, print_info=True):
|
44
|
-
globs = {'Manifold':Manifold}
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
verify.krawczyk_shapes_engine,
|
50
|
-
verify.KrawczykShapesEngine),
|
51
|
-
generate_test_with_shapes_engine(
|
52
|
-
verify.interval_newton_shapes_engine,
|
53
|
-
verify.IntervalNewtonShapesEngine),
|
54
|
-
verify.cuspCrossSection,
|
55
|
-
generate_test_with_shapes_engine(
|
56
|
-
verify.verifyHyperbolicity,
|
57
|
-
verify.KrawczykShapesEngine),
|
58
|
-
generate_test_with_shapes_engine(
|
59
|
-
verify.verifyHyperbolicity,
|
60
|
-
verify.IntervalNewtonShapesEngine),
|
61
|
-
verify.verifyCanonical,
|
62
|
-
verify.interval_tree,
|
63
|
-
volume,
|
64
|
-
cusp_areas,
|
65
|
-
cusp_shapes,
|
66
|
-
upper_halfspace.ideal_point,
|
67
|
-
upper_halfspace.finite_point,
|
68
|
-
upper_halfspace.extended_matrix,
|
69
|
-
verify.maximal_cusp_area_matrix,
|
70
|
-
verify.maximal_cusp_area_matrix.cusp_tiling_engine,
|
71
|
-
verify.maximal_cusp_area_matrix.cusp_translate_engine,
|
72
|
-
verify.squareExtensions,
|
73
|
-
verify.realAlgebra ],
|
74
|
-
extraglobs=globs,
|
75
|
-
verbose=verbose, print_info=print_info)
|
53
|
+
globs = {'Manifold' : snappy.Manifold}
|
54
|
+
return testing.doctest_modules(modules,
|
55
|
+
verbose=verbose,
|
56
|
+
print_info=print_info,
|
57
|
+
extraglobs=globs)
|
76
58
|
|
59
|
+
run_doctests.__name__ = verify.__name__
|
60
|
+
|
61
|
+
def check_certified_intervals():
|
62
|
+
for n in ['m009', 'm015', 't02333', 't02333(1,2)',
|
63
|
+
'm129(2,3)', 'm129(2,3)(3,4)']:
|
64
|
+
M = Manifold(n)
|
65
|
+
high_prec = M.tetrahedra_shapes('rect', bits_prec=1000)
|
66
|
+
|
67
|
+
intervals = M.tetrahedra_shapes('rect', bits_prec=100,
|
68
|
+
intervals=True)
|
69
|
+
|
70
|
+
for z, interval in zip(high_prec, intervals):
|
71
|
+
if not abs(interval.center() - z) < 1e-10:
|
72
|
+
raise Exception
|
73
|
+
|
74
|
+
if z not in interval:
|
75
|
+
raise Exception
|
77
76
|
|
78
77
|
if __name__ == '__main__':
|
79
|
-
|
80
|
-
verbose = len(optlist) > 0
|
81
|
-
run_doctests(verbose)
|
78
|
+
testing.run_doctests_as_main(run_doctests)
|
@@ -1,9 +1,8 @@
|
|
1
1
|
from ...sage_helper import _within_sage
|
2
2
|
|
3
3
|
if _within_sage:
|
4
|
-
import sage
|
5
|
-
from
|
6
|
-
from sage.rings.real_mpfi import is_RealIntervalFieldElement
|
4
|
+
import sage
|
5
|
+
from ...sage_helper import matrix, sqrt, is_RealIntervalFieldElement, Infinity
|
7
6
|
|
8
7
|
from .extended_matrix import ExtendedMatrix
|
9
8
|
|
@@ -169,7 +168,7 @@ class FinitePoint():
|
|
169
168
|
RIF = r.parent()
|
170
169
|
if _within_sage:
|
171
170
|
if is_RealIntervalFieldElement(r):
|
172
|
-
return r.intersection(RIF(1,
|
171
|
+
return r.intersection(RIF(1, Infinity))
|
173
172
|
if r < 1.0:
|
174
173
|
return RIF(1.0)
|
175
174
|
return r
|
@@ -17,8 +17,8 @@ and is different from the ``Infinity`` that comes from ``sage.all``.
|
|
17
17
|
from ...sage_helper import _within_sage
|
18
18
|
|
19
19
|
if _within_sage:
|
20
|
-
import
|
21
|
-
from
|
20
|
+
from ...sage_helper import I, matrix
|
21
|
+
from ...sage_helper import Infinity as sage_Infinity
|
22
22
|
|
23
23
|
from .finite_point import *
|
24
24
|
from .extended_matrix import *
|
@@ -169,7 +169,7 @@ def compute_inradius_and_incenter(idealPoints):
|
|
169
169
|
sage: z1 = CIF(0)
|
170
170
|
sage: z2 = CIF(1)
|
171
171
|
sage: z3 = CIF(1.2, 1.0)
|
172
|
-
sage: compute_inradius_and_incenter([z0, z1, z2, z3])
|
172
|
+
sage: compute_inradius_and_incenter([z0, z1, z2, z3]) # doctest: +NUMERIC12
|
173
173
|
(0.29186158033099?, FinitePoint(0.771123016231387? + 0.2791850380434060?*I, 0.94311979279000?))
|
174
174
|
"""
|
175
175
|
|
@@ -211,7 +211,7 @@ def Euclidean_height_of_hyperbolic_triangle(idealPoints):
|
|
211
211
|
for idealPoint in idealPoints:
|
212
212
|
if idealPoint != Infinity:
|
213
213
|
RIF = idealPoint.real().parent()
|
214
|
-
return RIF(
|
214
|
+
return RIF(sage_Infinity)
|
215
215
|
|
216
216
|
raise Exception("What?")
|
217
217
|
|
@@ -266,7 +266,7 @@ def _transform_points_to_make_first_one_infinity_and_inv_sl_matrix(idealPoints):
|
|
266
266
|
z = idealPoints[0]
|
267
267
|
CIF = z.parent()
|
268
268
|
gl_matrix = matrix(CIF, [[ 0, 1], [ 1, -z]])
|
269
|
-
sl_matrix = CIF(
|
269
|
+
sl_matrix = CIF(I) * gl_matrix
|
270
270
|
inv_sl_matrix = _adjoint2(sl_matrix)
|
271
271
|
|
272
272
|
# Apply it
|
@@ -352,6 +352,8 @@ def _compute_inradius_and_incenter_with_one_point_at_infinity(nonInfPoints):
|
|
352
352
|
# We use the geometric mean of the Euclidean heights of the lowest and
|
353
353
|
# highest point of the inscribed sphere
|
354
354
|
# sqrt( (h + r) * (h - r))
|
355
|
+
#
|
356
|
+
# height is also equal to (2 * length_product / length_total).sqrt()
|
355
357
|
height = ( eHeightSqr - inRadiusSqr ).sqrt()
|
356
358
|
|
357
359
|
# Taking the logarithm of the ratio of these two highest gives the
|
@@ -396,8 +398,7 @@ class _IdealPointTester():
|
|
396
398
|
"""
|
397
399
|
|
398
400
|
def matrices(self):
|
399
|
-
from
|
400
|
-
|
401
|
+
from ...sage_helper import RIF, CIF
|
401
402
|
return [
|
402
403
|
matrix.identity(CIF, 2),
|
403
404
|
matrix(
|
@@ -408,8 +409,7 @@ class _IdealPointTester():
|
|
408
409
|
[CIF(RIF(-0.3), RIF(1.1)), CIF(1)]]) ]
|
409
410
|
|
410
411
|
def run_tests(self):
|
411
|
-
from
|
412
|
-
|
412
|
+
from ...sage_helper import RIF, CIF
|
413
413
|
bias = RIF(1.5)
|
414
414
|
|
415
415
|
triangle = [ CIF(0), Infinity, CIF(1) ]
|
snappy/verify/volume.py
CHANGED
@@ -15,7 +15,7 @@ if _within_sage:
|
|
15
15
|
|
16
16
|
__all__ = ['compute_volume']
|
17
17
|
|
18
|
-
from . import
|
18
|
+
from . import hyperbolicity
|
19
19
|
|
20
20
|
# Sage's handling of pari has a bug when it comes to precision and the dilog.
|
21
21
|
# It computes the dilogarithm only to low precision even though higher precision
|
@@ -117,7 +117,7 @@ def compute_volume(manifold, verified, bits_prec=None):
|
|
117
117
|
|
118
118
|
if verified:
|
119
119
|
# If requested, check it is a valid hyperbolic structure
|
120
|
-
|
120
|
+
hyperbolicity.check_logarithmic_gluing_equations_and_positively_oriented_tets(
|
121
121
|
manifold, shape_intervals)
|
122
122
|
|
123
123
|
# Sum up the volumes of all the tetrahedra
|
snappy/version.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
version = '3.
|
2
|
-
release_date = '
|
1
|
+
version = '3.2'
|
2
|
+
release_date = 'January 2025'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: snappy
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.2
|
4
4
|
Summary: Studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures.
|
5
5
|
Home-page: http://snappy.computop.org
|
6
6
|
Author: Marc Culler and Nathan M. Dunfield
|
@@ -16,17 +16,21 @@ Classifier: Programming Language :: C++
|
|
16
16
|
Classifier: Programming Language :: Python
|
17
17
|
Classifier: Programming Language :: Cython
|
18
18
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
19
|
-
Requires-Python: >=3
|
19
|
+
Requires-Python: >=3.8
|
20
20
|
Description-Content-Type: text/x-rst
|
21
|
-
Requires-Dist:
|
22
|
-
Requires-Dist:
|
23
|
-
Requires-Dist:
|
24
|
-
Requires-Dist:
|
21
|
+
Requires-Dist: FXrays>=1.3
|
22
|
+
Requires-Dist: plink>=2.4.3
|
23
|
+
Requires-Dist: spherogram>=2.3
|
24
|
+
Requires-Dist: snappy-manifolds>=1.2.1
|
25
|
+
Requires-Dist: low-index>=1.2.1
|
26
|
+
Requires-Dist: tkinter-gl>=1.0
|
25
27
|
Requires-Dist: decorator
|
26
|
-
Requires-Dist:
|
27
|
-
Requires-Dist:
|
28
|
-
Requires-Dist:
|
29
|
-
Requires-Dist:
|
28
|
+
Requires-Dist: packaging
|
29
|
+
Requires-Dist: pypng
|
30
|
+
Requires-Dist: PyX
|
31
|
+
Requires-Dist: pickleshare
|
32
|
+
Requires-Dist: cypari>=2.3
|
33
|
+
Requires-Dist: ipython>=5.0
|
30
34
|
|
31
35
|
SnapPy
|
32
36
|
======
|