snappy 3.1.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.
Files changed (464) hide show
  1. snappy/CyOpenGL.cpython-311-darwin.so +0 -0
  2. snappy/SnapPy.cpython-311-darwin.so +0 -0
  3. snappy/SnapPyHP.cpython-311-darwin.so +0 -0
  4. snappy/__init__.py +299 -402
  5. snappy/app.py +70 -20
  6. snappy/browser.py +18 -17
  7. snappy/canonical.py +249 -0
  8. snappy/{verify/cusp_shapes.py → cusps/__init__.py} +8 -18
  9. snappy/cusps/cusp_area_matrix.py +101 -0
  10. snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +23 -39
  11. snappy/cusps/maximal_cusp_area_matrix.py +136 -0
  12. snappy/cusps/test.py +21 -0
  13. snappy/cusps/trig_cusp_area_matrix.py +63 -0
  14. snappy/database.py +10 -9
  15. snappy/decorated_isosig.py +337 -114
  16. snappy/dev/extended_ptolemy/complexVolumesClosed.py +40 -7
  17. snappy/dev/extended_ptolemy/extended.py +3 -3
  18. snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
  19. snappy/dev/vericlosed/oneVertexTruncatedComplex.py +1 -1
  20. snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
  21. snappy/doc/_images/m125_paper_plane.jpg +0 -0
  22. snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
  23. snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
  24. snappy/doc/_sources/development.rst.txt +66 -46
  25. snappy/doc/_sources/index.rst.txt +72 -5
  26. snappy/doc/_sources/installing.rst.txt +145 -162
  27. snappy/doc/_sources/news.rst.txt +73 -1
  28. snappy/doc/_sources/ptolemy_examples1.rst.txt +8 -7
  29. snappy/doc/_sources/ptolemy_examples3.rst.txt +2 -2
  30. snappy/doc/_sources/triangulation.rst.txt +2 -2
  31. snappy/doc/_sources/verify.rst.txt +89 -29
  32. snappy/doc/_sources/verify_internals.rst.txt +5 -16
  33. snappy/doc/_static/basic.css +23 -1
  34. snappy/doc/_static/css/badge_only.css +1 -1
  35. snappy/doc/_static/css/theme.css +1 -1
  36. snappy/doc/_static/doctools.js +1 -1
  37. snappy/doc/_static/documentation_options.js +2 -3
  38. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  39. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  40. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  41. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  42. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  43. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  44. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  45. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  46. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  47. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  48. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  49. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  50. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  51. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  52. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  53. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  54. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  55. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  56. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  57. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  58. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  59. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  60. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  61. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  62. snappy/doc/_static/js/versions.js +228 -0
  63. snappy/doc/_static/language_data.js +2 -2
  64. snappy/doc/_static/pygments.css +1 -0
  65. snappy/doc/_static/searchtools.js +125 -71
  66. snappy/doc/_static/sphinx_highlight.js +13 -3
  67. snappy/doc/additional_classes.html +291 -122
  68. snappy/doc/bugs.html +17 -20
  69. snappy/doc/censuses.html +34 -53
  70. snappy/doc/credits.html +18 -21
  71. snappy/doc/development.html +88 -68
  72. snappy/doc/genindex.html +66 -145
  73. snappy/doc/index.html +86 -31
  74. snappy/doc/installing.html +164 -182
  75. snappy/doc/manifold.html +1168 -556
  76. snappy/doc/manifoldhp.html +18 -21
  77. snappy/doc/news.html +91 -33
  78. snappy/doc/objects.inv +0 -0
  79. snappy/doc/other.html +20 -22
  80. snappy/doc/platonic_census.html +31 -34
  81. snappy/doc/plink.html +19 -22
  82. snappy/doc/ptolemy.html +20 -22
  83. snappy/doc/ptolemy_classes.html +102 -105
  84. snappy/doc/ptolemy_examples1.html +34 -36
  85. snappy/doc/ptolemy_examples2.html +28 -31
  86. snappy/doc/ptolemy_examples3.html +26 -29
  87. snappy/doc/ptolemy_examples4.html +20 -23
  88. snappy/doc/ptolemy_prelim.html +25 -28
  89. snappy/doc/py-modindex.html +16 -19
  90. snappy/doc/screenshots.html +22 -24
  91. snappy/doc/search.html +15 -18
  92. snappy/doc/searchindex.js +1 -1
  93. snappy/doc/snap.html +18 -21
  94. snappy/doc/snappy.html +18 -20
  95. snappy/doc/spherogram.html +84 -87
  96. snappy/doc/todo.html +17 -20
  97. snappy/doc/triangulation.html +324 -215
  98. snappy/doc/tutorial.html +17 -20
  99. snappy/doc/verify.html +100 -46
  100. snappy/doc/verify_internals.html +106 -563
  101. snappy/drilling/__init__.py +153 -235
  102. snappy/drilling/barycentric.py +103 -0
  103. snappy/drilling/constants.py +0 -2
  104. snappy/drilling/crush.py +56 -130
  105. snappy/drilling/cusps.py +12 -6
  106. snappy/drilling/debug.py +2 -1
  107. snappy/drilling/exceptions.py +7 -40
  108. snappy/drilling/moves.py +302 -243
  109. snappy/drilling/perturb.py +63 -37
  110. snappy/drilling/shorten.py +36 -0
  111. snappy/drilling/subdivide.py +0 -5
  112. snappy/drilling/test.py +23 -0
  113. snappy/drilling/test_cases.py +126 -0
  114. snappy/drilling/tracing.py +9 -37
  115. snappy/exceptions.py +18 -5
  116. snappy/exterior_to_link/barycentric_geometry.py +2 -4
  117. snappy/exterior_to_link/main.py +8 -7
  118. snappy/exterior_to_link/mcomplex_with_link.py +2 -2
  119. snappy/exterior_to_link/rational_linear_algebra.py +1 -1
  120. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +1 -1
  121. snappy/exterior_to_link/test.py +21 -33
  122. snappy/geometric_structure/__init__.py +212 -0
  123. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  124. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
  125. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
  126. snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
  127. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
  128. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
  129. snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
  130. snappy/geometric_structure/geodesic/__init__.py +0 -0
  131. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  132. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  133. snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
  134. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  135. snappy/geometric_structure/geodesic/constants.py +6 -0
  136. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  137. snappy/{drilling → geometric_structure/geodesic}/fixed_points.py +34 -9
  138. snappy/{drilling/geodesic_info.py → geometric_structure/geodesic/geodesic_start_point_info.py} +139 -180
  139. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  140. snappy/geometric_structure/geodesic/line.py +30 -0
  141. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  142. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
  143. snappy/geometric_structure/test.py +22 -0
  144. snappy/gui.py +23 -13
  145. snappy/horoviewer.py +7 -7
  146. snappy/hyperboloid/__init__.py +96 -31
  147. snappy/hyperboloid/distances.py +245 -0
  148. snappy/hyperboloid/horoball.py +19 -0
  149. snappy/hyperboloid/line.py +35 -0
  150. snappy/hyperboloid/point.py +9 -0
  151. snappy/hyperboloid/triangle.py +29 -0
  152. snappy/isometry_signature.py +382 -0
  153. snappy/len_spec/__init__.py +596 -0
  154. snappy/len_spec/geodesic_info.py +110 -0
  155. snappy/len_spec/geodesic_key_info_dict.py +117 -0
  156. snappy/len_spec/geodesic_piece.py +143 -0
  157. snappy/len_spec/geometric_structure.py +182 -0
  158. snappy/len_spec/geometry.py +80 -0
  159. snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
  160. snappy/len_spec/spine.py +206 -0
  161. snappy/len_spec/test.py +24 -0
  162. snappy/len_spec/test_cases.py +69 -0
  163. snappy/len_spec/tile.py +275 -0
  164. snappy/len_spec/word.py +86 -0
  165. snappy/math_basics.py +39 -13
  166. snappy/matrix.py +52 -9
  167. snappy/number.py +12 -6
  168. snappy/numeric_output_checker.py +2 -3
  169. snappy/pari.py +8 -4
  170. snappy/phone_home.py +2 -1
  171. snappy/polyviewer.py +8 -8
  172. snappy/ptolemy/__init__.py +1 -1
  173. snappy/ptolemy/component.py +2 -2
  174. snappy/ptolemy/coordinates.py +25 -25
  175. snappy/ptolemy/findLoops.py +9 -9
  176. snappy/ptolemy/manifoldMethods.py +27 -29
  177. snappy/ptolemy/polynomial.py +50 -57
  178. snappy/ptolemy/processFileBase.py +60 -0
  179. snappy/ptolemy/ptolemyVariety.py +109 -41
  180. snappy/ptolemy/reginaWrapper.py +4 -4
  181. snappy/ptolemy/rur.py +1 -1
  182. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +9 -9
  183. snappy/ptolemy/test.py +99 -54
  184. snappy/ptolemy/utilities.py +1 -1
  185. snappy/raytracing/__init__.py +64 -0
  186. snappy/raytracing/additional_horospheres.py +64 -0
  187. snappy/raytracing/additional_len_spec_choices.py +63 -0
  188. snappy/raytracing/cohomology_fractal.py +0 -3
  189. snappy/raytracing/eyeball.py +123 -0
  190. snappy/raytracing/finite_raytracing_data.py +17 -17
  191. snappy/raytracing/finite_viewer.py +15 -15
  192. snappy/raytracing/geodesic_tube_info.py +93 -63
  193. snappy/raytracing/geodesics.py +94 -64
  194. snappy/raytracing/geodesics_window.py +56 -34
  195. snappy/raytracing/gui_utilities.py +21 -6
  196. snappy/raytracing/hyperboloid_navigation.py +29 -4
  197. snappy/raytracing/hyperboloid_utilities.py +73 -73
  198. snappy/raytracing/ideal_raytracing_data.py +121 -91
  199. snappy/raytracing/inside_viewer.py +199 -66
  200. snappy/raytracing/pack.py +22 -0
  201. snappy/raytracing/raytracing_data.py +37 -25
  202. snappy/raytracing/raytracing_view.py +70 -65
  203. snappy/raytracing/shaders/Eye.png +0 -0
  204. snappy/raytracing/shaders/NonGeometric.png +0 -0
  205. snappy/raytracing/shaders/__init__.py +39 -3
  206. snappy/raytracing/shaders/fragment.glsl +451 -133
  207. snappy/raytracing/test.py +29 -0
  208. snappy/raytracing/tooltip.py +146 -0
  209. snappy/raytracing/upper_halfspace_utilities.py +42 -9
  210. snappy/sage_helper.py +67 -134
  211. snappy/settings.py +90 -77
  212. snappy/shell.py +2 -0
  213. snappy/snap/character_varieties.py +2 -2
  214. snappy/snap/find_field.py +4 -3
  215. snappy/snap/fundamental_polyhedron.py +2 -2
  216. snappy/snap/kernel_structures.py +5 -1
  217. snappy/snap/nsagetools.py +9 -8
  218. snappy/snap/peripheral/dual_cellulation.py +4 -3
  219. snappy/snap/peripheral/peripheral.py +2 -2
  220. snappy/snap/peripheral/surface.py +5 -5
  221. snappy/snap/peripheral/test.py +1 -1
  222. snappy/snap/polished_reps.py +8 -8
  223. snappy/snap/slice_obs_HKL.py +16 -14
  224. snappy/snap/t3mlite/arrow.py +3 -3
  225. snappy/snap/t3mlite/edge.py +3 -3
  226. snappy/snap/t3mlite/homology.py +2 -2
  227. snappy/snap/t3mlite/mcomplex.py +3 -3
  228. snappy/snap/t3mlite/simplex.py +12 -0
  229. snappy/snap/t3mlite/spun.py +18 -17
  230. snappy/snap/t3mlite/test_vs_regina.py +4 -4
  231. snappy/snap/test.py +37 -53
  232. snappy/snap/utilities.py +4 -5
  233. snappy/test.py +121 -138
  234. snappy/test_cases.py +263 -0
  235. snappy/testing.py +131 -0
  236. snappy/tiling/__init__.py +2 -0
  237. snappy/tiling/canonical_key_dict.py +59 -0
  238. snappy/tiling/dict_based_set.py +79 -0
  239. snappy/tiling/floor.py +49 -0
  240. snappy/tiling/hyperboloid_dict.py +54 -0
  241. snappy/tiling/iter_utils.py +78 -0
  242. snappy/tiling/lifted_tetrahedron.py +22 -0
  243. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  244. snappy/tiling/real_hash_dict.py +164 -0
  245. snappy/tiling/test.py +23 -0
  246. snappy/tiling/tile.py +215 -0
  247. snappy/tiling/triangle.py +33 -0
  248. snappy/tkterminal.py +113 -84
  249. snappy/twister/main.py +1 -7
  250. snappy/twister/twister_core.cpython-311-darwin.so +0 -0
  251. snappy/upper_halfspace/__init__.py +78 -17
  252. snappy/verify/__init__.py +3 -7
  253. snappy/verify/{verifyCanonical.py → canonical.py} +78 -70
  254. snappy/verify/complex_volume/adjust_torsion.py +1 -2
  255. snappy/verify/complex_volume/closed.py +13 -13
  256. snappy/verify/complex_volume/cusped.py +6 -6
  257. snappy/verify/complex_volume/extended_bloch.py +5 -8
  258. snappy/verify/{cuspTranslations.py → cusp_translations.py} +1 -1
  259. snappy/verify/edge_equations.py +80 -0
  260. snappy/verify/exceptions.py +0 -55
  261. snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +3 -3
  262. snappy/verify/interval_newton_shapes_engine.py +7 -5
  263. snappy/verify/interval_tree.py +5 -5
  264. snappy/verify/krawczyk_shapes_engine.py +17 -18
  265. snappy/verify/maximal_cusp_area_matrix/__init__.py +7 -74
  266. snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +3 -4
  267. snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +1 -1
  268. snappy/verify/{realAlgebra.py → real_algebra.py} +1 -1
  269. snappy/verify/shapes.py +5 -3
  270. snappy/verify/short_slopes.py +39 -41
  271. snappy/verify/{squareExtensions.py → square_extensions.py} +14 -11
  272. snappy/verify/test.py +57 -60
  273. snappy/verify/upper_halfspace/extended_matrix.py +1 -1
  274. snappy/verify/upper_halfspace/finite_point.py +3 -4
  275. snappy/verify/upper_halfspace/ideal_point.py +9 -9
  276. snappy/verify/volume.py +2 -2
  277. snappy/version.py +2 -2
  278. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/METADATA +26 -11
  279. snappy-3.2.dist-info/RECORD +503 -0
  280. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
  281. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
  282. snappy/__pycache__/__init__.cpython-311.pyc +0 -0
  283. snappy/__pycache__/browser.cpython-311.pyc +0 -0
  284. snappy/__pycache__/cache.cpython-311.pyc +0 -0
  285. snappy/__pycache__/database.cpython-311.pyc +0 -0
  286. snappy/__pycache__/db_utilities.cpython-311.pyc +0 -0
  287. snappy/__pycache__/decorated_isosig.cpython-311.pyc +0 -0
  288. snappy/__pycache__/exceptions.cpython-311.pyc +0 -0
  289. snappy/__pycache__/export_stl.cpython-311.pyc +0 -0
  290. snappy/__pycache__/filedialog.cpython-311.pyc +0 -0
  291. snappy/__pycache__/gui.cpython-311.pyc +0 -0
  292. snappy/__pycache__/horoviewer.cpython-311.pyc +0 -0
  293. snappy/__pycache__/infowindow.cpython-311.pyc +0 -0
  294. snappy/__pycache__/math_basics.cpython-311.pyc +0 -0
  295. snappy/__pycache__/matrix.cpython-311.pyc +0 -0
  296. snappy/__pycache__/number.cpython-311.pyc +0 -0
  297. snappy/__pycache__/numeric_output_checker.cpython-311.pyc +0 -0
  298. snappy/__pycache__/pari.cpython-311.pyc +0 -0
  299. snappy/__pycache__/polyviewer.cpython-311.pyc +0 -0
  300. snappy/__pycache__/sage_helper.cpython-311.pyc +0 -0
  301. snappy/__pycache__/version.cpython-311.pyc +0 -0
  302. snappy/doc/_sources/verify_canon.rst.txt +0 -90
  303. snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
  304. snappy/doc/_static/js/html5shiv.min.js +0 -4
  305. snappy/doc/verify_canon.html +0 -304
  306. snappy/drilling/__pycache__/__init__.cpython-311.pyc +0 -0
  307. snappy/drilling/__pycache__/constants.cpython-311.pyc +0 -0
  308. snappy/drilling/__pycache__/crush.cpython-311.pyc +0 -0
  309. snappy/drilling/__pycache__/cusps.cpython-311.pyc +0 -0
  310. snappy/drilling/__pycache__/debug.cpython-311.pyc +0 -0
  311. snappy/drilling/__pycache__/epsilons.cpython-311.pyc +0 -0
  312. snappy/drilling/__pycache__/exceptions.cpython-311.pyc +0 -0
  313. snappy/drilling/__pycache__/fixed_points.cpython-311.pyc +0 -0
  314. snappy/drilling/__pycache__/geodesic_info.cpython-311.pyc +0 -0
  315. snappy/drilling/__pycache__/geodesic_tube.cpython-311.pyc +0 -0
  316. snappy/drilling/__pycache__/geometric_structure.cpython-311.pyc +0 -0
  317. snappy/drilling/__pycache__/line.cpython-311.pyc +0 -0
  318. snappy/drilling/__pycache__/moves.cpython-311.pyc +0 -0
  319. snappy/drilling/__pycache__/peripheral_curves.cpython-311.pyc +0 -0
  320. snappy/drilling/__pycache__/perturb.cpython-311.pyc +0 -0
  321. snappy/drilling/__pycache__/quotient_space.cpython-311.pyc +0 -0
  322. snappy/drilling/__pycache__/spatial_dict.cpython-311.pyc +0 -0
  323. snappy/drilling/__pycache__/subdivide.cpython-311.pyc +0 -0
  324. snappy/drilling/__pycache__/tracing.cpython-311.pyc +0 -0
  325. snappy/drilling/geodesic_tube.py +0 -441
  326. snappy/drilling/geometric_structure.py +0 -366
  327. snappy/drilling/line.py +0 -122
  328. snappy/drilling/quotient_space.py +0 -94
  329. snappy/drilling/spatial_dict.py +0 -128
  330. snappy/exterior_to_link/__pycache__/__init__.cpython-311.pyc +0 -0
  331. snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-311.pyc +0 -0
  332. snappy/exterior_to_link/__pycache__/exceptions.cpython-311.pyc +0 -0
  333. snappy/exterior_to_link/__pycache__/hyp_utils.cpython-311.pyc +0 -0
  334. snappy/exterior_to_link/__pycache__/link_projection.cpython-311.pyc +0 -0
  335. snappy/exterior_to_link/__pycache__/main.cpython-311.pyc +0 -0
  336. snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-311.pyc +0 -0
  337. snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-311.pyc +0 -0
  338. snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-311.pyc +0 -0
  339. snappy/exterior_to_link/__pycache__/pl_utils.cpython-311.pyc +0 -0
  340. snappy/exterior_to_link/__pycache__/put_in_S3.cpython-311.pyc +0 -0
  341. snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-311.pyc +0 -0
  342. snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-311.pyc +0 -0
  343. snappy/exterior_to_link/__pycache__/stored_moves.cpython-311.pyc +0 -0
  344. snappy/hyperboloid/__pycache__/__init__.cpython-311.pyc +0 -0
  345. snappy/manifolds/__pycache__/__init__.cpython-311.pyc +0 -0
  346. snappy/ptolemy/__pycache__/__init__.cpython-311.pyc +0 -0
  347. snappy/ptolemy/__pycache__/component.cpython-311.pyc +0 -0
  348. snappy/ptolemy/__pycache__/coordinates.cpython-311.pyc +0 -0
  349. snappy/ptolemy/__pycache__/fieldExtensions.cpython-311.pyc +0 -0
  350. snappy/ptolemy/__pycache__/findLoops.cpython-311.pyc +0 -0
  351. snappy/ptolemy/__pycache__/homology.cpython-311.pyc +0 -0
  352. snappy/ptolemy/__pycache__/manifoldMethods.cpython-311.pyc +0 -0
  353. snappy/ptolemy/__pycache__/matrix.cpython-311.pyc +0 -0
  354. snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-311.pyc +0 -0
  355. snappy/ptolemy/__pycache__/polynomial.cpython-311.pyc +0 -0
  356. snappy/ptolemy/__pycache__/processComponents.cpython-311.pyc +0 -0
  357. snappy/ptolemy/__pycache__/processFileBase.cpython-311.pyc +0 -0
  358. snappy/ptolemy/__pycache__/processFileDispatch.cpython-311.pyc +0 -0
  359. snappy/ptolemy/__pycache__/processMagmaFile.cpython-311.pyc +0 -0
  360. snappy/ptolemy/__pycache__/processRurFile.cpython-311.pyc +0 -0
  361. snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-311.pyc +0 -0
  362. snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-311.pyc +0 -0
  363. snappy/ptolemy/__pycache__/ptolemyVariety.cpython-311.pyc +0 -0
  364. snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
  365. snappy/ptolemy/__pycache__/rur.cpython-311.pyc +0 -0
  366. snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
  367. snappy/ptolemy/__pycache__/utilities.cpython-311.pyc +0 -0
  368. snappy/raytracing/__pycache__/__init__.cpython-311.pyc +0 -0
  369. snappy/raytracing/__pycache__/finite_raytracing_data.cpython-311.pyc +0 -0
  370. snappy/raytracing/__pycache__/gui_utilities.cpython-311.pyc +0 -0
  371. snappy/raytracing/__pycache__/hyperboloid_navigation.cpython-311.pyc +0 -0
  372. snappy/raytracing/__pycache__/hyperboloid_utilities.cpython-311.pyc +0 -0
  373. snappy/raytracing/__pycache__/ideal_raytracing_data.cpython-311.pyc +0 -0
  374. snappy/raytracing/__pycache__/inside_viewer.cpython-311.pyc +0 -0
  375. snappy/raytracing/__pycache__/raytracing_data.cpython-311.pyc +0 -0
  376. snappy/raytracing/__pycache__/raytracing_view.cpython-311.pyc +0 -0
  377. snappy/raytracing/__pycache__/upper_halfspace_utilities.cpython-311.pyc +0 -0
  378. snappy/raytracing/__pycache__/view_scale_controller.cpython-311.pyc +0 -0
  379. snappy/raytracing/zoom_slider/__pycache__/__init__.cpython-311.pyc +0 -0
  380. snappy/snap/__pycache__/__init__.cpython-311.pyc +0 -0
  381. snappy/snap/__pycache__/character_varieties.cpython-311.pyc +0 -0
  382. snappy/snap/__pycache__/fundamental_polyhedron.cpython-311.pyc +0 -0
  383. snappy/snap/__pycache__/interval_reps.cpython-311.pyc +0 -0
  384. snappy/snap/__pycache__/kernel_structures.cpython-311.pyc +0 -0
  385. snappy/snap/__pycache__/mcomplex_base.cpython-311.pyc +0 -0
  386. snappy/snap/__pycache__/nsagetools.cpython-311.pyc +0 -0
  387. snappy/snap/__pycache__/polished_reps.cpython-311.pyc +0 -0
  388. snappy/snap/__pycache__/shapes.cpython-311.pyc +0 -0
  389. snappy/snap/__pycache__/slice_obs_HKL.cpython-311.pyc +0 -0
  390. snappy/snap/__pycache__/utilities.cpython-311.pyc +0 -0
  391. snappy/snap/peripheral/__pycache__/__init__.cpython-311.pyc +0 -0
  392. snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-311.pyc +0 -0
  393. snappy/snap/peripheral/__pycache__/link.cpython-311.pyc +0 -0
  394. snappy/snap/peripheral/__pycache__/peripheral.cpython-311.pyc +0 -0
  395. snappy/snap/peripheral/__pycache__/surface.cpython-311.pyc +0 -0
  396. snappy/snap/t3mlite/__pycache__/__init__.cpython-311.pyc +0 -0
  397. snappy/snap/t3mlite/__pycache__/arrow.cpython-311.pyc +0 -0
  398. snappy/snap/t3mlite/__pycache__/corner.cpython-311.pyc +0 -0
  399. snappy/snap/t3mlite/__pycache__/edge.cpython-311.pyc +0 -0
  400. snappy/snap/t3mlite/__pycache__/face.cpython-311.pyc +0 -0
  401. snappy/snap/t3mlite/__pycache__/files.cpython-311.pyc +0 -0
  402. snappy/snap/t3mlite/__pycache__/homology.cpython-311.pyc +0 -0
  403. snappy/snap/t3mlite/__pycache__/linalg.cpython-311.pyc +0 -0
  404. snappy/snap/t3mlite/__pycache__/mcomplex.cpython-311.pyc +0 -0
  405. snappy/snap/t3mlite/__pycache__/perm4.cpython-311.pyc +0 -0
  406. snappy/snap/t3mlite/__pycache__/simplex.cpython-311.pyc +0 -0
  407. snappy/snap/t3mlite/__pycache__/spun.cpython-311.pyc +0 -0
  408. snappy/snap/t3mlite/__pycache__/surface.cpython-311.pyc +0 -0
  409. snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-311.pyc +0 -0
  410. snappy/snap/t3mlite/__pycache__/vertex.cpython-311.pyc +0 -0
  411. snappy/togl/__init__.py +0 -3
  412. snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
  413. snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
  414. snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  415. snappy/togl/darwin-tk8.7/Togl2.1/LICENSE +0 -28
  416. snappy/togl/darwin-tk8.7/Togl2.1/libTogl2.1.dylib +0 -0
  417. snappy/togl/darwin-tk8.7/Togl2.1/pkgIndex.tcl +0 -5
  418. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  419. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
  420. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  421. snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
  422. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
  423. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
  424. snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  425. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  426. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
  427. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
  428. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  429. snappy/twister/__pycache__/__init__.cpython-311.pyc +0 -0
  430. snappy/twister/__pycache__/main.cpython-311.pyc +0 -0
  431. snappy/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
  432. snappy/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
  433. snappy/verify/__pycache__/__init__.cpython-311.pyc +0 -0
  434. snappy/verify/__pycache__/cuspCrossSection.cpython-311.pyc +0 -0
  435. snappy/verify/__pycache__/cuspTranslations.cpython-311.pyc +0 -0
  436. snappy/verify/__pycache__/cusp_areas.cpython-311.pyc +0 -0
  437. snappy/verify/__pycache__/cusp_shapes.cpython-311.pyc +0 -0
  438. snappy/verify/__pycache__/exceptions.cpython-311.pyc +0 -0
  439. snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-311.pyc +0 -0
  440. snappy/verify/__pycache__/interval_tree.cpython-311.pyc +0 -0
  441. snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-311.pyc +0 -0
  442. snappy/verify/__pycache__/realAlgebra.cpython-311.pyc +0 -0
  443. snappy/verify/__pycache__/shapes.cpython-311.pyc +0 -0
  444. snappy/verify/__pycache__/short_slopes.cpython-311.pyc +0 -0
  445. snappy/verify/__pycache__/squareExtensions.cpython-311.pyc +0 -0
  446. snappy/verify/__pycache__/verifyCanonical.cpython-311.pyc +0 -0
  447. snappy/verify/__pycache__/verifyHyperbolicity.cpython-311.pyc +0 -0
  448. snappy/verify/__pycache__/volume.cpython-311.pyc +0 -0
  449. snappy/verify/complex_volume/__pycache__/__init__.cpython-311.pyc +0 -0
  450. snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-311.pyc +0 -0
  451. snappy/verify/complex_volume/__pycache__/closed.cpython-311.pyc +0 -0
  452. snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-311.pyc +0 -0
  453. snappy/verify/complex_volume/__pycache__/cusped.cpython-311.pyc +0 -0
  454. snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-311.pyc +0 -0
  455. snappy/verify/cuspCrossSection.py +0 -1422
  456. snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-311.pyc +0 -0
  457. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-311.pyc +0 -0
  458. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-311.pyc +0 -0
  459. snappy/verify/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
  460. snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-311.pyc +0 -0
  461. snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-311.pyc +0 -0
  462. snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
  463. snappy-3.1.1.dist-info/RECORD +0 -585
  464. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
@@ -41,9 +41,9 @@ def restore_forbidden(var_str):
41
41
  def ideal_to_file(ideal, filename):
42
42
  outfile = open(filename, 'w')
43
43
  polys = ideal.gens()
44
- outfile.write('%d\n' % len(polys))
44
+ outfile.write(r'%d\n' % len(polys))
45
45
  for p in polys:
46
- outfile.write(' ' + remove_forbidden(repr(p)) + ';\n')
46
+ outfile.write(' ' + remove_forbidden(repr(p)) + r';\n')
47
47
  outfile.close()
48
48
 
49
49
  def parse_file(filename, prec=53):
@@ -55,14 +55,14 @@ def parse_file(filename, prec=53):
55
55
  data = data.split('THE SOLUTIONS')[-1]
56
56
  data = re.subn('[*]{3,}', '', data)[0]
57
57
  ans = []
58
- solutions = re.findall('(solution \d+ : \s* start residual .*?) ==', data, re.DOTALL)
58
+ solutions = re.findall(r'(solution \d+ : \s* start residual .*?) ==', data, re.DOTALL)
59
59
  for sol in solutions:
60
60
  kind = sol.split('=')[-1].strip()
61
61
  if kind == 'no solution':
62
62
  continue
63
- mult = int(re.search('^m : (\d+)', sol, re.MULTILINE).group(1))
64
- err = float(re.search('== err :\s+(.*?)\s+= ', sol).group(1))
65
- coors = re.findall('^ (.*) :\s+(\S*)\s+(\S*)', sol, re.MULTILINE)
63
+ mult = int(re.search(r'^m : (\d+)', sol, re.MULTILINE).group(1))
64
+ err = float(re.search(r'== err :\s+(.*?)\s+= ', sol).group(1))
65
+ coors = re.findall(r'^ (.*) :\s+(\S*)\s+(\S*)', sol, re.MULTILINE)
66
66
  if kind.startswith('real'):
67
67
  coors = {restore_forbidden(var):RR(real) for var, real, imag in coors}
68
68
  ans.append({'kind':'real', 'mult':mult, 'err':err, 'coors':coors})
@@ -70,8 +70,8 @@ def parse_file(filename, prec=53):
70
70
  coors = {restore_forbidden(var):CC(RR(real), RR(imag)) for var, real, imag in coors}
71
71
  ans.append({'kind':'complex', 'mult':mult, 'err':err, 'coors':coors})
72
72
 
73
- num_real = int(re.search('Number of real solutions\s+:\s(.*).', data).group(1))
74
- num_complex = int(re.search('Number of complex solutions\s+:\s(.*).', data).group(1))
73
+ num_real = int(re.search(r'Number of real solutions\s+:\s(.*).', data).group(1))
74
+ num_complex = int(re.search(r'Number of complex solutions\s+:\s(.*).', data).group(1))
75
75
  kinds = [sol['kind'] for sol in ans]
76
76
  assert kinds.count('real') == num_real
77
77
  assert kinds.count('complex') == num_complex
@@ -185,9 +185,9 @@ def direct_hack(backend, ideal, **kwargs):
185
185
  polys = [repr(eqn) for eqn in ideal.gens()]
186
186
 
187
187
  data = {'backend':backend, 'vars':vars, 'polys':polys, 'kwargs':kwargs}
188
- problem_data = json.dumps(data).encode('base64').replace('\n', '')
188
+ problem_data = json.dumps(data).encode('base64').replace(r'\n', '')
189
189
  ans_data = os.popen('sage -python ' + __file__ + ' ' + problem_data).read()
190
- ans_data = re.sub('PHCv.*? released .*? works!\n', '', ans_data)
190
+ ans_data = re.sub(r'PHCv.*? released .*? works!\n', '', ans_data)
191
191
  if len(ans_data):
192
192
  ans = json.loads(ans_data)
193
193
  for sol in ans:
@@ -5,7 +5,7 @@ from truncatedComplex import *
5
5
  class OneVertexTruncatedComplex(TruncatedComplex):
6
6
 
7
7
  def __init__(self, hyperbolic_structure):
8
- super(OneVertexTruncatedComplex, self).__init__(
8
+ super().__init__(
9
9
  hyperbolic_structure.mcomplex)
10
10
 
11
11
  self.hyperbolic_structure = hyperbolic_structure
Binary file
@@ -17,11 +17,11 @@ macOS
17
17
 
18
18
  Here is how to get a clean development setup under macOS.
19
19
 
20
- - Install the latest Python 3.8 from Python.org using the `Mac
20
+ - Install the latest Python 3.13 from Python.org using the `Mac
21
21
  Installer Disk Image <http://www.python.org/download/>`_. Set your
22
22
  path so that "python3" is::
23
23
 
24
- /Library/Frameworks/Python.framework/Versions/3.8/bin/python3
24
+ /Library/Frameworks/Python.framework/Versions/3.13/bin/python3
25
25
 
26
26
  - Use `pip <https://pip.pypa.io/en/latest/index.html>`_ to install the
27
27
  following packages::
@@ -47,8 +47,8 @@ Here is how to get a clean development setup under macOS.
47
47
  python3 setup.py pip_install
48
48
  python3 -m plink.app # Link editor appears!
49
49
 
50
- This last command runs the script "plink/app.py"; the real code for
51
- the link editor is in "plink/__init__.py".
50
+ This last command runs the script ``plink/app.py``; the real code for
51
+ the link editor is in ``plink/__init__.py``.
52
52
 
53
53
  - Build and install Spherogram::
54
54
 
@@ -74,17 +74,13 @@ Here is how to get a clean development setup under macOS.
74
74
 
75
75
  Some major parts of the SnapPy codebase are:
76
76
 
77
- - "SnapPy.pyx", "SnapPycore.pxi", "SnapPy.pxi": The Cython interface
77
+ - ``SnapPy.pyx``, ``SnapPycore.pxi``, ``SnapPy.pxi``: The Cython interface
78
78
  to the SnapPea kernel
79
- - "opengl/CyOpenGL*.pyx": The Cython interface to OpenGL*
80
- - "snappy/app.py": The core GUI code
81
- - "snappy/polyviewer.py": The GUI code for Dirichlet domains
82
- - "snappy/horoviewer.py": The GUI code for horoball pictures
83
- - "snappy/database.py": Interacts with the sqlite3 manifold database
84
-
85
- In addition, Jeff's old prototype for a Tk-based UI can be found in
86
- "misc/JeffsOldUI/SnapPeaGUI.py"; just run Python on this file to try it
87
- out, after installing `PythonMegaWidgets <http://pmw.sf.net>`_.
79
+ - ``opengl/CyOpenGL*.pyx``: The Cython interface to OpenGL*
80
+ - ``snappy/app.py``: The core GUI code
81
+ - ``snappy/polyviewer.py``: The GUI code for Dirichlet domains
82
+ - ``snappy/horoviewer.py``: The GUI code for horoball pictures
83
+ - ``snappy/database.py``: Interacts with the sqlite3 manifold database
88
84
 
89
85
 
90
86
  Windows
@@ -95,12 +91,13 @@ setting up a development environment using the (free) MSVC
95
91
  compiler. To build the CyPari subcomponent, which few will want or
96
92
  need to do, one must install additional tools.
97
93
 
98
- - Install `Python 3.7 <https://www.python.org/downloads/windows/>`_,
99
- specifically the 32 bit version (Windows x86 not Windows x86-64).
94
+ - Install `Python 3.13.1
95
+ <https://www.python.org/downloads/windows/>`_, specifically the
96
+ default 64-bit version (the file name will end in ``amd64.exe``).
100
97
  These instructions assume it has been installed in the directory
101
- ``C:\Python37`` which is not the default.
98
+ ``C:\Python313`` which is not the default.
102
99
 
103
- - With Python 3.7.4, you need the MSVC command line tools. You can
100
+ - With Python 3.13.1, you need the MSVC command line tools. You can
104
101
  get them by using Microsoft's free `Build Tools for Visual Studio 2019
105
102
  <https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16>`_
106
103
  installer and selecting the "C++ command line tools" and installing
@@ -112,14 +109,12 @@ need to do, one must install additional tools.
112
109
  `Inno Setup <http://www.jrsoftware.org/isdl.php>`_, specifically the
113
110
  unicode version; tested with version 5.5.9.
114
111
 
115
- - Install whichever version of `MSYS2 <http://msys2.github.io>`_ is
116
- appropriate for your version Windows. Most commonly, you will have
117
- a 64-bit Windows and hence want the "x86_64" installer; for
118
- concreteness the rest of these instructions assume this. (Technical
119
- note: even if you want to build 32-bit binaries, if your Windows is
120
- 64-bit you want the x86_64 installer.) Follow the instructions on
121
- the webpage to update everything to the very latest MSYS2
122
- (``pacman -Sy pacman; pacman -Syu; pacman -Su`` etc.).
112
+ - Install `MSYS2 <http://msys2.github.io>`_ as appropriate for your
113
+ version Windows. Follow the instructions on the webpage to update
114
+ everything to the very latest MSYS2 (``pacman -Sy pacman; pacman
115
+ -Syu; pacman -Su`` etc.). You should also install the ucrt toolchain::
116
+
117
+ pacman -S mingw-w64-ucrt-x86_64-toolchain
123
118
 
124
119
  - Make a shortcut to ``c:\msys64\msys2.exe`` as you will be using it all
125
120
  the time; alternatively, pin ``mys2.exe`` to your taskbar.
@@ -137,7 +132,7 @@ need to do, one must install additional tools.
137
132
  as well as work around some stupid bug, by making the end of your
138
133
  "~/.bash_profile" file to read::
139
134
 
140
- PATH=/c/Python37:/c/Python37/Scripts:$PATH
135
+ PATH=/c/Python313:/c/Python313/Scripts:$PATH
141
136
  PATH=$PATH:'/c/Program Files (x86)/Inno Setup 5'
142
137
  export PATH
143
138
  alias emacs="/mingw64/bin/emacs"
@@ -152,7 +147,7 @@ need to do, one must install additional tools.
152
147
 
153
148
  python --version
154
149
 
155
- You should see something like ``Python 3.7.4``.
150
+ You should see something like ``Python 3.13.1``.
156
151
 
157
152
  - Use pip to install some basic tools::
158
153
 
@@ -212,28 +207,53 @@ need to do, one must install additional tools.
212
207
  mklink /D Downloads "C:\Users\Nathan Dunfield\Downloads"
213
208
 
214
209
 
215
- - To build CyPari, first install the 32-bit gcc compiler::
210
+ Linux
211
+ -----
216
212
 
217
- pacman -S mingw-w64-i686-gcc
213
+ Things you'll need:
218
214
 
219
- Then open a *MinGW32 terminal window*, which is **different** than a
220
- MSYS2 terminal, and can be started via `c:\msys64\mingw32.exe`.
221
- This will put the 32-bit gcc in your path and set the correct
222
- "uname". Now do::
215
+ - Python 3 with Tkinter: You'll need to have `Python
216
+ <http://python.org>`_ (version 3.9 or newer) and `Tk
217
+ <http://tcl.tk>`_ (at least version 8.5) with `Tkinter
218
+ <http://wiki.python.org/moin/TkInter>`_ to connect them, including
219
+ the header files. For instance, on Debian or Ubuntu, install the
220
+ packages "python3-tk", "python3-pip", and "python3-dev". On Fedora,
221
+ you'll want e.g. "python3-tkinter", "python3-pip", and
222
+ "python3-devel", and "python3-wheel".
223
223
 
224
- git clone https://github.com/3-manifolds/CyPari.git
225
- cd CyPari
226
- sh build_pari.sh
227
- python setup.py build --compiler=mingw32
228
- python setup.py install
229
- python -m cypari.test # About 30 tests will fail.
224
+ - Test that Python is in order by installing PLink from source::
230
225
 
231
- Warning: CyPari will not build if there are spaces in the path to
232
- the CyPari directory.
226
+ python3 -m pip install --user plink
227
+ python3 -m plink.app # Should start the link editor!
233
228
 
229
+ .. _openglmesa:
234
230
 
235
- Linux
236
- -----
231
+ - Support for OpenGL (3D graphics): This is built in on OS X and the
232
+ most installations of Fedora and Ubuntu. But you'll need the `MESA
233
+ <http://www.mesa3d.org/>`_ header files "gl.h" and "glu.h" to compile
234
+ SnapPy. On Debian and Ubuntu, install "libglu1-mesa-dev"; On Fedora install
235
+ "mesa-libGLU-devel".
236
+
237
+ - `Cython <http://cython.org>`_, which you can install via::
238
+
239
+ python3 -m pip install --user cython
240
+
241
+ - The gcc C++ compiler, g++.
242
+
243
+ - Fetch the latest development versions of the source straight from
244
+ the repository::
237
245
 
238
- See the :ref:`installation instructions on generic Unix
239
- <installing:Generic Unix>` for how to build SnapPy from source.
246
+ git clone https://github.com/3-manifolds/PLink.git
247
+ git clone https://github.com/3-manifolds/Spherogram.git
248
+ git clone https://github.com/3-manifolds/Snappy.git
249
+
250
+ - Build the components, from easiest to hardest, and then test::
251
+
252
+ cd PLink
253
+ python setup.py pip_install
254
+ cd ../Spherogram
255
+ python setup.py pip_install
256
+ cd ../SnapPy
257
+ python setup.py pip_install
258
+ cd ..
259
+ python -m SnapPy.test
@@ -27,7 +27,78 @@ it, and watch the :doc:`tutorial<tutorial>`.
27
27
  News
28
28
  ====
29
29
 
30
- * Version 3.1 (May 2023):
30
+ * Version 3.2 (January 2025):
31
+
32
+ - An alternative implementation of the length spectrum. It supports verified
33
+ computations and is significantly faster in some cases. See
34
+ :meth:`length_spectrum_alt <snappy.Manifold.length_spectrum_alt>`
35
+ and
36
+ :meth:`length_spectrum_alt_gen <snappy.Manifold.length_spectrum_alt_gen>`.
37
+
38
+ - :meth:`isometry_signature <snappy.Manifold.isometry_signature>` now also
39
+ works for closed manifolds.
40
+
41
+ - A paper plane or eye ball in the
42
+ :meth:`inside_view <snappy.Manifold.inside_view>` showing the position
43
+ and bearing of the user in the hyperbolic manifold. By default, we now show
44
+ the paper plane instead of the edges of the triangulation so that the view
45
+ is intrinsic to the manifold. The geodesics window now also features a
46
+ button to put the camera onto a geodesic. Here are some examples:
47
+
48
+ .. list-table::
49
+ :width: 100%
50
+ :class: borderless
51
+
52
+ * - .. image:: images/o9_00000_systole_paper_plane.jpg
53
+ :width: 90%
54
+ :align: center
55
+ :alt: Paper plane near shortest geodesic of o9_00000
56
+ - .. image:: images/o9_00000_systole_paper_plane_closer.jpg
57
+ :width: 90%
58
+ :align: center
59
+ :alt: Paper plane very near shortest geodesic of o9_00000
60
+ - .. image:: images/m004_paper_plane_on_systole.jpg
61
+ :width: 90%
62
+ :align: center
63
+ :alt: Paper plane on shortest geodesic of m004
64
+ - .. image:: images/m125_paper_plane.jpg
65
+ :width: 90%
66
+ :align: center
67
+ :alt: Paper plane coming out of a cusp of m125
68
+
69
+ - A faster and more robust algorithm to the compute maximal cusp area matrix.
70
+ The new algorithm is now the default for
71
+ :meth:`~snappy.Manifold.cusp_area_matrix`,
72
+ :meth:`~snappy.Manifold.cusp_areas`,
73
+ :meth:`~snappy.Manifold.short_slopes` and
74
+ :meth:`~snappy.Manifold.cusp_translations`.
75
+
76
+ - New options ``ignore_curves`` and ``ignore_filling_orientations``
77
+ for :meth:`~snappy.Triangulation.triangulation_isosig`. Also
78
+ fixing a subtle bug where the filling coefficients returned by
79
+ :meth:`triangulation_isosig <snappy.Triangulation.triangulation_isosig>` were
80
+ not canonical when ``ignore_curve_orientations = True``.
81
+
82
+ - :meth:`~snappy.Manifold.canonical_retriangulation`
83
+ and
84
+ :meth:`~snappy.Manifold.isometry_signature` fail with
85
+ exceptions rather than silently returning ``None``. In particular, it now
86
+ safe to compare isometry signatures (without further checks) to determine
87
+ whether M and N are isometric hyperbolic manifolds::
88
+
89
+ >>> M.isometry_signature(verified=True) == N.isometry_signature(verified=True)
90
+
91
+ - Bug fix to :meth:`slice_obstruction_HKL
92
+ <snappy.Manifold.slice_obstruction_HKL>`: earlier versions
93
+ incorrectly allowed looking at mod 2 homology of the branched
94
+ cover, where the theory does not directly apply.
95
+
96
+ - New self-contained SnapPy application for Linux.
97
+
98
+ - Support for Python 3.13 and SageMath 10.5.
99
+
100
+
101
+ * Versions 3.1 (May 2023) and 3.1.1 (June 2023):
31
102
 
32
103
  - A method :meth:`exterior_to_link <snappy.Manifold.exterior_to_link>`
33
104
  for going from a link exterior to a link diagram taken from
@@ -65,10 +136,6 @@ News
65
136
 
66
137
  - Modernized styling of the documentation.
67
138
 
68
- * Version 3.0.3 (December 2021):
69
-
70
- - Runs natively on Macs with Apple Silicon processors (M1, M2, and variants).
71
-
72
139
  * :doc:`Complete version history <news>`.
73
140
 
74
141
  Documentation