snappy 3.3__cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.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.
Files changed (541) hide show
  1. snappy/CyOpenGL.cpython-310-aarch64-linux-gnu.so +0 -0
  2. snappy/SnapPy.cpython-310-aarch64-linux-gnu.so +0 -0
  3. snappy/SnapPy.ico +0 -0
  4. snappy/SnapPy.png +0 -0
  5. snappy/SnapPyHP.cpython-310-aarch64-linux-gnu.so +0 -0
  6. snappy/__init__.py +534 -0
  7. snappy/app.py +604 -0
  8. snappy/app_menus.py +372 -0
  9. snappy/browser.py +998 -0
  10. snappy/cache.py +25 -0
  11. snappy/canonical.py +249 -0
  12. snappy/cusps/__init__.py +280 -0
  13. snappy/cusps/cusp_area_matrix.py +98 -0
  14. snappy/cusps/cusp_areas_from_matrix.py +96 -0
  15. snappy/cusps/maximal_cusp_area_matrix.py +136 -0
  16. snappy/cusps/short_slopes_for_cusp.py +217 -0
  17. snappy/cusps/test.py +22 -0
  18. snappy/cusps/trig_cusp_area_matrix.py +63 -0
  19. snappy/database.py +454 -0
  20. snappy/db_utilities.py +79 -0
  21. snappy/decorated_isosig.py +717 -0
  22. snappy/dev/__init__.py +0 -0
  23. snappy/dev/extended_ptolemy/__init__.py +8 -0
  24. snappy/dev/extended_ptolemy/closed.py +106 -0
  25. snappy/dev/extended_ptolemy/complexVolumesClosed.py +149 -0
  26. snappy/dev/extended_ptolemy/direct.py +42 -0
  27. snappy/dev/extended_ptolemy/extended.py +406 -0
  28. snappy/dev/extended_ptolemy/giac_helper.py +43 -0
  29. snappy/dev/extended_ptolemy/giac_rur.py +129 -0
  30. snappy/dev/extended_ptolemy/gluing.py +46 -0
  31. snappy/dev/extended_ptolemy/phc_wrapper.py +220 -0
  32. snappy/dev/extended_ptolemy/printMatrices.py +70 -0
  33. snappy/dev/vericlosed/__init__.py +1 -0
  34. snappy/dev/vericlosed/computeApproxHyperbolicStructureNew.py +159 -0
  35. snappy/dev/vericlosed/computeApproxHyperbolicStructureOrb.py +90 -0
  36. snappy/dev/vericlosed/computeVerifiedHyperbolicStructure.py +111 -0
  37. snappy/dev/vericlosed/gimbalLoopFinder.py +130 -0
  38. snappy/dev/vericlosed/hyperbolicStructure.py +313 -0
  39. snappy/dev/vericlosed/krawczykCertifiedEdgeLengthsEngine.py +165 -0
  40. snappy/dev/vericlosed/oneVertexTruncatedComplex.py +122 -0
  41. snappy/dev/vericlosed/orb/__init__.py +1 -0
  42. snappy/dev/vericlosed/orb/orb_solution_for_snappea_finite_triangulation_mac +0 -0
  43. snappy/dev/vericlosed/parseVertexGramMatrixFile.py +47 -0
  44. snappy/dev/vericlosed/polishApproxHyperbolicStructure.py +61 -0
  45. snappy/dev/vericlosed/test.py +54 -0
  46. snappy/dev/vericlosed/truncatedComplex.py +176 -0
  47. snappy/dev/vericlosed/verificationError.py +58 -0
  48. snappy/dev/vericlosed/verifyHyperbolicStructureEngine.py +177 -0
  49. snappy/doc/_images/SnapPy-196.png +0 -0
  50. snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
  51. snappy/doc/_images/m125_paper_plane.jpg +0 -0
  52. snappy/doc/_images/mac.png +0 -0
  53. snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
  54. snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
  55. snappy/doc/_images/plink-action.png +0 -0
  56. snappy/doc/_images/ubuntu.png +0 -0
  57. snappy/doc/_images/win7.png +0 -0
  58. snappy/doc/_sources/additional_classes.rst.txt +40 -0
  59. snappy/doc/_sources/bugs.rst.txt +14 -0
  60. snappy/doc/_sources/censuses.rst.txt +52 -0
  61. snappy/doc/_sources/credits.rst.txt +81 -0
  62. snappy/doc/_sources/development.rst.txt +261 -0
  63. snappy/doc/_sources/index.rst.txt +215 -0
  64. snappy/doc/_sources/installing.rst.txt +249 -0
  65. snappy/doc/_sources/manifold.rst.txt +6 -0
  66. snappy/doc/_sources/manifoldhp.rst.txt +46 -0
  67. snappy/doc/_sources/news.rst.txt +425 -0
  68. snappy/doc/_sources/other.rst.txt +25 -0
  69. snappy/doc/_sources/platonic_census.rst.txt +20 -0
  70. snappy/doc/_sources/plink.rst.txt +102 -0
  71. snappy/doc/_sources/ptolemy.rst.txt +66 -0
  72. snappy/doc/_sources/ptolemy_classes.rst.txt +42 -0
  73. snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -0
  74. snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -0
  75. snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -0
  76. snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -0
  77. snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -0
  78. snappy/doc/_sources/screenshots.rst.txt +21 -0
  79. snappy/doc/_sources/snap.rst.txt +87 -0
  80. snappy/doc/_sources/snappy.rst.txt +28 -0
  81. snappy/doc/_sources/spherogram.rst.txt +103 -0
  82. snappy/doc/_sources/todo.rst.txt +47 -0
  83. snappy/doc/_sources/triangulation.rst.txt +11 -0
  84. snappy/doc/_sources/tutorial.rst.txt +49 -0
  85. snappy/doc/_sources/verify.rst.txt +210 -0
  86. snappy/doc/_sources/verify_internals.rst.txt +79 -0
  87. snappy/doc/_static/SnapPy-horizontal-128.png +0 -0
  88. snappy/doc/_static/SnapPy.ico +0 -0
  89. snappy/doc/_static/_sphinx_javascript_frameworks_compat.js +123 -0
  90. snappy/doc/_static/basic.css +906 -0
  91. snappy/doc/_static/css/badge_only.css +1 -0
  92. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  93. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  94. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  95. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  96. snappy/doc/_static/css/fonts/fontawesome-webfont.eot +0 -0
  97. snappy/doc/_static/css/fonts/fontawesome-webfont.svg +2671 -0
  98. snappy/doc/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  99. snappy/doc/_static/css/fonts/fontawesome-webfont.woff +0 -0
  100. snappy/doc/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  101. snappy/doc/_static/css/fonts/lato-bold-italic.woff +0 -0
  102. snappy/doc/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  103. snappy/doc/_static/css/fonts/lato-bold.woff +0 -0
  104. snappy/doc/_static/css/fonts/lato-bold.woff2 +0 -0
  105. snappy/doc/_static/css/fonts/lato-normal-italic.woff +0 -0
  106. snappy/doc/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  107. snappy/doc/_static/css/fonts/lato-normal.woff +0 -0
  108. snappy/doc/_static/css/fonts/lato-normal.woff2 +0 -0
  109. snappy/doc/_static/css/theme.css +4 -0
  110. snappy/doc/_static/doctools.js +149 -0
  111. snappy/doc/_static/documentation_options.js +13 -0
  112. snappy/doc/_static/file.png +0 -0
  113. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  114. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  115. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  116. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  117. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  118. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  119. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  120. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  121. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  122. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  123. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  124. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  125. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  126. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  127. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  128. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  129. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  130. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  131. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  132. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  133. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  134. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  135. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  136. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  137. snappy/doc/_static/jquery.js +2 -0
  138. snappy/doc/_static/js/badge_only.js +1 -0
  139. snappy/doc/_static/js/theme.js +1 -0
  140. snappy/doc/_static/js/versions.js +228 -0
  141. snappy/doc/_static/language_data.js +192 -0
  142. snappy/doc/_static/minus.png +0 -0
  143. snappy/doc/_static/plus.png +0 -0
  144. snappy/doc/_static/pygments.css +75 -0
  145. snappy/doc/_static/searchtools.js +635 -0
  146. snappy/doc/_static/snappy_furo.css +33 -0
  147. snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -0
  148. snappy/doc/_static/sphinx_highlight.js +154 -0
  149. snappy/doc/additional_classes.html +1500 -0
  150. snappy/doc/bugs.html +132 -0
  151. snappy/doc/censuses.html +453 -0
  152. snappy/doc/credits.html +184 -0
  153. snappy/doc/development.html +385 -0
  154. snappy/doc/doc-latest/additional_classes.html +1500 -0
  155. snappy/doc/doc-latest/bugs.html +132 -0
  156. snappy/doc/doc-latest/censuses.html +453 -0
  157. snappy/doc/doc-latest/credits.html +184 -0
  158. snappy/doc/doc-latest/development.html +385 -0
  159. snappy/doc/doc-latest/genindex.html +1349 -0
  160. snappy/doc/doc-latest/index.html +287 -0
  161. snappy/doc/doc-latest/installing.html +346 -0
  162. snappy/doc/doc-latest/manifold.html +3632 -0
  163. snappy/doc/doc-latest/manifoldhp.html +180 -0
  164. snappy/doc/doc-latest/news.html +438 -0
  165. snappy/doc/doc-latest/objects.inv +0 -0
  166. snappy/doc/doc-latest/other.html +160 -0
  167. snappy/doc/doc-latest/platonic_census.html +376 -0
  168. snappy/doc/doc-latest/plink.html +210 -0
  169. snappy/doc/doc-latest/ptolemy.html +253 -0
  170. snappy/doc/doc-latest/ptolemy_classes.html +1144 -0
  171. snappy/doc/doc-latest/ptolemy_examples1.html +409 -0
  172. snappy/doc/doc-latest/ptolemy_examples2.html +471 -0
  173. snappy/doc/doc-latest/ptolemy_examples3.html +414 -0
  174. snappy/doc/doc-latest/ptolemy_examples4.html +195 -0
  175. snappy/doc/doc-latest/ptolemy_prelim.html +248 -0
  176. snappy/doc/doc-latest/py-modindex.html +165 -0
  177. snappy/doc/doc-latest/screenshots.html +141 -0
  178. snappy/doc/doc-latest/search.html +135 -0
  179. snappy/doc/doc-latest/searchindex.js +1 -0
  180. snappy/doc/doc-latest/snap.html +202 -0
  181. snappy/doc/doc-latest/snappy.html +181 -0
  182. snappy/doc/doc-latest/spherogram.html +1346 -0
  183. snappy/doc/doc-latest/todo.html +166 -0
  184. snappy/doc/doc-latest/triangulation.html +1676 -0
  185. snappy/doc/doc-latest/tutorial.html +159 -0
  186. snappy/doc/doc-latest/verify.html +330 -0
  187. snappy/doc/doc-latest/verify_internals.html +1235 -0
  188. snappy/doc/genindex.html +1349 -0
  189. snappy/doc/index.html +287 -0
  190. snappy/doc/installing.html +346 -0
  191. snappy/doc/manifold.html +3632 -0
  192. snappy/doc/manifoldhp.html +180 -0
  193. snappy/doc/news.html +438 -0
  194. snappy/doc/objects.inv +0 -0
  195. snappy/doc/other.html +160 -0
  196. snappy/doc/platonic_census.html +376 -0
  197. snappy/doc/plink.html +210 -0
  198. snappy/doc/ptolemy.html +253 -0
  199. snappy/doc/ptolemy_classes.html +1144 -0
  200. snappy/doc/ptolemy_examples1.html +409 -0
  201. snappy/doc/ptolemy_examples2.html +471 -0
  202. snappy/doc/ptolemy_examples3.html +414 -0
  203. snappy/doc/ptolemy_examples4.html +195 -0
  204. snappy/doc/ptolemy_prelim.html +248 -0
  205. snappy/doc/py-modindex.html +165 -0
  206. snappy/doc/screenshots.html +141 -0
  207. snappy/doc/search.html +135 -0
  208. snappy/doc/searchindex.js +1 -0
  209. snappy/doc/snap.html +202 -0
  210. snappy/doc/snappy.html +181 -0
  211. snappy/doc/spherogram.html +1346 -0
  212. snappy/doc/todo.html +166 -0
  213. snappy/doc/triangulation.html +1676 -0
  214. snappy/doc/tutorial.html +159 -0
  215. snappy/doc/verify.html +330 -0
  216. snappy/doc/verify_internals.html +1235 -0
  217. snappy/drilling/__init__.py +456 -0
  218. snappy/drilling/barycentric.py +103 -0
  219. snappy/drilling/constants.py +5 -0
  220. snappy/drilling/crush.py +270 -0
  221. snappy/drilling/cusps.py +125 -0
  222. snappy/drilling/debug.py +242 -0
  223. snappy/drilling/epsilons.py +6 -0
  224. snappy/drilling/exceptions.py +55 -0
  225. snappy/drilling/moves.py +620 -0
  226. snappy/drilling/peripheral_curves.py +210 -0
  227. snappy/drilling/perturb.py +188 -0
  228. snappy/drilling/shorten.py +36 -0
  229. snappy/drilling/subdivide.py +274 -0
  230. snappy/drilling/test.py +23 -0
  231. snappy/drilling/test_cases.py +132 -0
  232. snappy/drilling/tracing.py +351 -0
  233. snappy/exceptions.py +26 -0
  234. snappy/export_stl.py +120 -0
  235. snappy/exterior_to_link/__init__.py +2 -0
  236. snappy/exterior_to_link/barycentric_geometry.py +463 -0
  237. snappy/exterior_to_link/exceptions.py +6 -0
  238. snappy/exterior_to_link/geodesic_map.json +14408 -0
  239. snappy/exterior_to_link/hyp_utils.py +112 -0
  240. snappy/exterior_to_link/link_projection.py +323 -0
  241. snappy/exterior_to_link/main.py +198 -0
  242. snappy/exterior_to_link/mcomplex_with_expansion.py +261 -0
  243. snappy/exterior_to_link/mcomplex_with_link.py +687 -0
  244. snappy/exterior_to_link/mcomplex_with_memory.py +162 -0
  245. snappy/exterior_to_link/pl_utils.py +491 -0
  246. snappy/exterior_to_link/put_in_S3.py +156 -0
  247. snappy/exterior_to_link/rational_linear_algebra.py +130 -0
  248. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +135 -0
  249. snappy/exterior_to_link/simplify_to_base_tri.py +114 -0
  250. snappy/exterior_to_link/stored_moves.py +475 -0
  251. snappy/exterior_to_link/test.py +31 -0
  252. snappy/filedialog.py +28 -0
  253. snappy/geometric_structure/__init__.py +212 -0
  254. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  255. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +691 -0
  256. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +480 -0
  257. snappy/geometric_structure/cusp_neighborhood/exceptions.py +41 -0
  258. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +294 -0
  259. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +156 -0
  260. snappy/geometric_structure/cusp_neighborhood/vertices.py +35 -0
  261. snappy/geometric_structure/geodesic/__init__.py +0 -0
  262. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  263. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  264. snappy/geometric_structure/geodesic/canonical_representatives.py +52 -0
  265. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  266. snappy/geometric_structure/geodesic/constants.py +6 -0
  267. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  268. snappy/geometric_structure/geodesic/fixed_points.py +106 -0
  269. snappy/geometric_structure/geodesic/geodesic_start_point_info.py +435 -0
  270. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  271. snappy/geometric_structure/geodesic/line.py +30 -0
  272. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  273. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +128 -0
  274. snappy/geometric_structure/test.py +22 -0
  275. snappy/gui.py +121 -0
  276. snappy/horoviewer.py +443 -0
  277. snappy/hyperboloid/__init__.py +212 -0
  278. snappy/hyperboloid/distances.py +259 -0
  279. snappy/hyperboloid/horoball.py +19 -0
  280. snappy/hyperboloid/line.py +35 -0
  281. snappy/hyperboloid/point.py +9 -0
  282. snappy/hyperboloid/triangle.py +29 -0
  283. snappy/info_icon.gif +0 -0
  284. snappy/infowindow.py +65 -0
  285. snappy/isometry_signature.py +389 -0
  286. snappy/len_spec/__init__.py +609 -0
  287. snappy/len_spec/geodesic_info.py +129 -0
  288. snappy/len_spec/geodesic_key_info_dict.py +116 -0
  289. snappy/len_spec/geodesic_piece.py +146 -0
  290. snappy/len_spec/geometric_structure.py +182 -0
  291. snappy/len_spec/geometry.py +136 -0
  292. snappy/len_spec/length_spectrum_geodesic_info.py +185 -0
  293. snappy/len_spec/spine.py +128 -0
  294. snappy/len_spec/test.py +24 -0
  295. snappy/len_spec/test_cases.py +69 -0
  296. snappy/len_spec/tile.py +276 -0
  297. snappy/len_spec/word.py +86 -0
  298. snappy/manifolds/HTWKnots/alternating.gz +0 -0
  299. snappy/manifolds/HTWKnots/nonalternating.gz +0 -0
  300. snappy/manifolds/__init__.py +3 -0
  301. snappy/margulis/__init__.py +332 -0
  302. snappy/margulis/cusp_neighborhood_neighborhood.py +66 -0
  303. snappy/margulis/geodesic_neighborhood.py +152 -0
  304. snappy/margulis/margulis_info.py +21 -0
  305. snappy/margulis/mu_from_neighborhood_pair.py +175 -0
  306. snappy/margulis/neighborhood.py +29 -0
  307. snappy/margulis/test.py +22 -0
  308. snappy/math_basics.py +187 -0
  309. snappy/matrix.py +525 -0
  310. snappy/number.py +657 -0
  311. snappy/numeric_output_checker.py +345 -0
  312. snappy/pari.py +41 -0
  313. snappy/phone_home.py +57 -0
  314. snappy/polyviewer.py +259 -0
  315. snappy/ptolemy/__init__.py +17 -0
  316. snappy/ptolemy/component.py +103 -0
  317. snappy/ptolemy/coordinates.py +2290 -0
  318. snappy/ptolemy/fieldExtensions.py +153 -0
  319. snappy/ptolemy/findLoops.py +473 -0
  320. snappy/ptolemy/geometricRep.py +59 -0
  321. snappy/ptolemy/homology.py +165 -0
  322. snappy/ptolemy/magma/default.magma_template +229 -0
  323. snappy/ptolemy/magma/radicalsOfPrimaryDecomposition.magma_template +79 -0
  324. snappy/ptolemy/manifoldMethods.py +395 -0
  325. snappy/ptolemy/matrix.py +350 -0
  326. snappy/ptolemy/numericalSolutionsToGroebnerBasis.py +113 -0
  327. snappy/ptolemy/polynomial.py +856 -0
  328. snappy/ptolemy/processComponents.py +173 -0
  329. snappy/ptolemy/processFileBase.py +247 -0
  330. snappy/ptolemy/processFileDispatch.py +46 -0
  331. snappy/ptolemy/processMagmaFile.py +392 -0
  332. snappy/ptolemy/processRurFile.py +150 -0
  333. snappy/ptolemy/ptolemyGeneralizedObstructionClass.py +102 -0
  334. snappy/ptolemy/ptolemyObstructionClass.py +64 -0
  335. snappy/ptolemy/ptolemyVariety.py +995 -0
  336. snappy/ptolemy/ptolemyVarietyPrimeIdealGroebnerBasis.py +140 -0
  337. snappy/ptolemy/reginaWrapper.py +698 -0
  338. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c0.magma_out.bz2 +0 -0
  339. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c1.magma_out.bz2 +0 -0
  340. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c2.magma_out.bz2 +0 -0
  341. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c3.magma_out.bz2 +0 -0
  342. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c4.magma_out.bz2 +0 -0
  343. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c5.magma_out.bz2 +0 -0
  344. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c6.magma_out.bz2 +0 -0
  345. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c7.magma_out.bz2 +0 -0
  346. snappy/ptolemy/regina_testing_files_generalized/m003__sl3_c0.magma_out.bz2 +0 -0
  347. snappy/ptolemy/regina_testing_files_generalized/m003__sl3_c1.magma_out.bz2 +0 -0
  348. snappy/ptolemy/regina_testing_files_generalized/m015__sl2_c0.magma_out.bz2 +0 -0
  349. snappy/ptolemy/regina_testing_files_generalized/m015__sl2_c1.magma_out.bz2 +0 -0
  350. snappy/ptolemy/regina_testing_files_generalized/m015__sl3_c0.magma_out.bz2 +0 -0
  351. snappy/ptolemy/regina_testing_files_generalized/m015__sl3_c1.magma_out.bz2 +0 -0
  352. snappy/ptolemy/rur.py +545 -0
  353. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +277 -0
  354. snappy/ptolemy/test.py +1126 -0
  355. snappy/ptolemy/testing_files/3_1__sl2_c0.magma_out.bz2 +0 -0
  356. snappy/ptolemy/testing_files/3_1__sl2_c1.magma_out.bz2 +0 -0
  357. snappy/ptolemy/testing_files/4_1__sl2_c0.magma_out.bz2 +0 -0
  358. snappy/ptolemy/testing_files/4_1__sl2_c1.magma_out.bz2 +0 -0
  359. snappy/ptolemy/testing_files/4_1__sl3_c0.magma_out.bz2 +0 -0
  360. snappy/ptolemy/testing_files/4_1__sl4_c0.magma_out.bz2 +0 -0
  361. snappy/ptolemy/testing_files/4_1__sl4_c1.magma_out.bz2 +0 -0
  362. snappy/ptolemy/testing_files/5_2__sl2_c0.magma_out.bz2 +0 -0
  363. snappy/ptolemy/testing_files/5_2__sl2_c1.magma_out.bz2 +0 -0
  364. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c0.magma_out.bz2 +0 -0
  365. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c1.magma_out.bz2 +0 -0
  366. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c2.magma_out.bz2 +0 -0
  367. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c3.magma_out.bz2 +0 -0
  368. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c4.magma_out.bz2 +0 -0
  369. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c5.magma_out.bz2 +0 -0
  370. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c6.magma_out.bz2 +0 -0
  371. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c7.magma_out.bz2 +0 -0
  372. snappy/ptolemy/testing_files/data/pgl2/OrientableCuspedCensus/03_tetrahedra/m019__sl2_c0.magma_out +95 -0
  373. snappy/ptolemy/testing_files/data/pgl2/OrientableCuspedCensus/03_tetrahedra/m019__sl2_c1.magma_out +95 -0
  374. snappy/ptolemy/testing_files/m015__sl3_c0.magma_out.bz2 +0 -0
  375. snappy/ptolemy/testing_files/m135__sl2_c0.magma_out.bz2 +0 -0
  376. snappy/ptolemy/testing_files/m135__sl2_c1.magma_out.bz2 +0 -0
  377. snappy/ptolemy/testing_files/m135__sl2_c2.magma_out.bz2 +0 -0
  378. snappy/ptolemy/testing_files/m135__sl2_c3.magma_out.bz2 +0 -0
  379. snappy/ptolemy/testing_files/m135__sl2_c4.magma_out.bz2 +0 -0
  380. snappy/ptolemy/testing_files/m135__sl2_c5.magma_out.bz2 +0 -0
  381. snappy/ptolemy/testing_files/m135__sl2_c6.magma_out.bz2 +0 -0
  382. snappy/ptolemy/testing_files/m135__sl2_c7.magma_out.bz2 +0 -0
  383. snappy/ptolemy/testing_files/s000__sl2_c0.magma_out.bz2 +0 -0
  384. snappy/ptolemy/testing_files/s000__sl2_c1.magma_out.bz2 +0 -0
  385. snappy/ptolemy/testing_files/t00000__sl2_c0.magma_out.bz2 +0 -0
  386. snappy/ptolemy/testing_files/t00000__sl2_c1.magma_out.bz2 +0 -0
  387. snappy/ptolemy/testing_files/v0000__sl2_c0.magma_out.bz2 +0 -0
  388. snappy/ptolemy/testing_files/v0000__sl2_c1.magma_out.bz2 +0 -0
  389. snappy/ptolemy/testing_files/v0000__sl2_c2.magma_out.bz2 +0 -0
  390. snappy/ptolemy/testing_files/v0000__sl2_c3.magma_out.bz2 +0 -0
  391. snappy/ptolemy/testing_files_generalized/m003__sl2_c0.magma_out.bz2 +0 -0
  392. snappy/ptolemy/testing_files_generalized/m003__sl2_c1.magma_out.bz2 +0 -0
  393. snappy/ptolemy/testing_files_generalized/m003__sl3_c0.magma_out.bz2 +0 -0
  394. snappy/ptolemy/testing_files_generalized/m003__sl3_c1.magma_out.bz2 +0 -0
  395. snappy/ptolemy/testing_files_generalized/m004__sl2_c0.magma_out.bz2 +0 -0
  396. snappy/ptolemy/testing_files_generalized/m004__sl2_c1.magma_out.bz2 +0 -0
  397. snappy/ptolemy/testing_files_generalized/m015__sl2_c1.magma_out.bz2 +0 -0
  398. snappy/ptolemy/testing_files_generalized/m015__sl3_c0.magma_out.bz2 +0 -0
  399. snappy/ptolemy/testing_files_rur/m052__sl3_c0.rur.bz2 +0 -0
  400. snappy/ptolemy/utilities.py +236 -0
  401. snappy/raytracing/__init__.py +64 -0
  402. snappy/raytracing/additional_horospheres.py +64 -0
  403. snappy/raytracing/additional_len_spec_choices.py +63 -0
  404. snappy/raytracing/cohomology_fractal.py +197 -0
  405. snappy/raytracing/eyeball.py +124 -0
  406. snappy/raytracing/finite_raytracing_data.py +237 -0
  407. snappy/raytracing/finite_viewer.py +590 -0
  408. snappy/raytracing/geodesic_tube_info.py +174 -0
  409. snappy/raytracing/geodesics.py +246 -0
  410. snappy/raytracing/geodesics_window.py +258 -0
  411. snappy/raytracing/gui_utilities.py +293 -0
  412. snappy/raytracing/hyperboloid_navigation.py +556 -0
  413. snappy/raytracing/hyperboloid_utilities.py +234 -0
  414. snappy/raytracing/ideal_raytracing_data.py +592 -0
  415. snappy/raytracing/inside_viewer.py +974 -0
  416. snappy/raytracing/pack.py +22 -0
  417. snappy/raytracing/raytracing_data.py +126 -0
  418. snappy/raytracing/raytracing_view.py +454 -0
  419. snappy/raytracing/shaders/Eye.png +0 -0
  420. snappy/raytracing/shaders/NonGeometric.png +0 -0
  421. snappy/raytracing/shaders/__init__.py +101 -0
  422. snappy/raytracing/shaders/fragment.glsl +1744 -0
  423. snappy/raytracing/test.py +29 -0
  424. snappy/raytracing/tooltip.py +146 -0
  425. snappy/raytracing/upper_halfspace_utilities.py +98 -0
  426. snappy/raytracing/view_scale_controller.py +98 -0
  427. snappy/raytracing/zoom_slider/__init__.py +263 -0
  428. snappy/raytracing/zoom_slider/inward.png +0 -0
  429. snappy/raytracing/zoom_slider/inward18.png +0 -0
  430. snappy/raytracing/zoom_slider/outward.png +0 -0
  431. snappy/raytracing/zoom_slider/outward18.png +0 -0
  432. snappy/raytracing/zoom_slider/test.py +20 -0
  433. snappy/sage_helper.py +119 -0
  434. snappy/settings.py +407 -0
  435. snappy/shell.py +53 -0
  436. snappy/snap/__init__.py +117 -0
  437. snappy/snap/character_varieties.py +375 -0
  438. snappy/snap/find_field.py +372 -0
  439. snappy/snap/fox_milnor.py +271 -0
  440. snappy/snap/fundamental_polyhedron.py +569 -0
  441. snappy/snap/generators.py +39 -0
  442. snappy/snap/interval_reps.py +81 -0
  443. snappy/snap/kernel_structures.py +128 -0
  444. snappy/snap/mcomplex_base.py +18 -0
  445. snappy/snap/nsagetools.py +716 -0
  446. snappy/snap/peripheral/__init__.py +1 -0
  447. snappy/snap/peripheral/dual_cellulation.py +219 -0
  448. snappy/snap/peripheral/link.py +127 -0
  449. snappy/snap/peripheral/peripheral.py +159 -0
  450. snappy/snap/peripheral/surface.py +522 -0
  451. snappy/snap/peripheral/test.py +35 -0
  452. snappy/snap/polished_reps.py +335 -0
  453. snappy/snap/shapes.py +152 -0
  454. snappy/snap/slice_obs_HKL/__init__.py +194 -0
  455. snappy/snap/slice_obs_HKL/basics.py +236 -0
  456. snappy/snap/slice_obs_HKL/direct.py +217 -0
  457. snappy/snap/slice_obs_HKL/poly_norm.py +212 -0
  458. snappy/snap/slice_obs_HKL/rep_theory.py +424 -0
  459. snappy/snap/t3mlite/__init__.py +2 -0
  460. snappy/snap/t3mlite/arrow.py +243 -0
  461. snappy/snap/t3mlite/corner.py +22 -0
  462. snappy/snap/t3mlite/edge.py +172 -0
  463. snappy/snap/t3mlite/face.py +37 -0
  464. snappy/snap/t3mlite/files.py +211 -0
  465. snappy/snap/t3mlite/homology.py +53 -0
  466. snappy/snap/t3mlite/linalg.py +419 -0
  467. snappy/snap/t3mlite/mcomplex.py +1499 -0
  468. snappy/snap/t3mlite/perm4.py +320 -0
  469. snappy/snap/t3mlite/setup.py +12 -0
  470. snappy/snap/t3mlite/simplex.py +199 -0
  471. snappy/snap/t3mlite/spun.py +297 -0
  472. snappy/snap/t3mlite/surface.py +519 -0
  473. snappy/snap/t3mlite/test.py +20 -0
  474. snappy/snap/t3mlite/test_vs_regina.py +86 -0
  475. snappy/snap/t3mlite/tetrahedron.py +109 -0
  476. snappy/snap/t3mlite/vertex.py +42 -0
  477. snappy/snap/test.py +139 -0
  478. snappy/snap/utilities.py +288 -0
  479. snappy/test.py +213 -0
  480. snappy/test_cases.py +263 -0
  481. snappy/testing.py +131 -0
  482. snappy/tiling/__init__.py +2 -0
  483. snappy/tiling/dict_based_set.py +79 -0
  484. snappy/tiling/floor.py +49 -0
  485. snappy/tiling/hyperboloid_dict.py +54 -0
  486. snappy/tiling/iter_utils.py +78 -0
  487. snappy/tiling/lifted_tetrahedron.py +22 -0
  488. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  489. snappy/tiling/quotient_dict.py +70 -0
  490. snappy/tiling/real_hash_dict.py +164 -0
  491. snappy/tiling/test.py +23 -0
  492. snappy/tiling/tile.py +224 -0
  493. snappy/tiling/triangle.py +33 -0
  494. snappy/tkterminal.py +920 -0
  495. snappy/twister/__init__.py +20 -0
  496. snappy/twister/main.py +646 -0
  497. snappy/twister/surfaces/S_0_1 +3 -0
  498. snappy/twister/surfaces/S_0_2 +3 -0
  499. snappy/twister/surfaces/S_0_4 +7 -0
  500. snappy/twister/surfaces/S_0_4_Lantern +8 -0
  501. snappy/twister/surfaces/S_1 +3 -0
  502. snappy/twister/surfaces/S_1_1 +4 -0
  503. snappy/twister/surfaces/S_1_2 +5 -0
  504. snappy/twister/surfaces/S_1_2_5 +6 -0
  505. snappy/twister/surfaces/S_2 +6 -0
  506. snappy/twister/surfaces/S_2_1 +8 -0
  507. snappy/twister/surfaces/S_2_heeg +10 -0
  508. snappy/twister/surfaces/S_3 +8 -0
  509. snappy/twister/surfaces/S_3_1 +10 -0
  510. snappy/twister/surfaces/S_4_1 +12 -0
  511. snappy/twister/surfaces/S_5_1 +14 -0
  512. snappy/twister/surfaces/heeg_fig8 +9 -0
  513. snappy/twister/twister_core.cpython-310-aarch64-linux-gnu.so +0 -0
  514. snappy/upper_halfspace/__init__.py +146 -0
  515. snappy/upper_halfspace/ideal_point.py +29 -0
  516. snappy/verify/__init__.py +13 -0
  517. snappy/verify/canonical.py +542 -0
  518. snappy/verify/complex_volume/__init__.py +18 -0
  519. snappy/verify/complex_volume/adjust_torsion.py +86 -0
  520. snappy/verify/complex_volume/closed.py +168 -0
  521. snappy/verify/complex_volume/compute_ptolemys.py +90 -0
  522. snappy/verify/complex_volume/cusped.py +56 -0
  523. snappy/verify/complex_volume/extended_bloch.py +201 -0
  524. snappy/verify/cusp_translations.py +85 -0
  525. snappy/verify/edge_equations.py +80 -0
  526. snappy/verify/exceptions.py +254 -0
  527. snappy/verify/hyperbolicity.py +224 -0
  528. snappy/verify/interval_newton_shapes_engine.py +523 -0
  529. snappy/verify/interval_tree.py +400 -0
  530. snappy/verify/krawczyk_shapes_engine.py +518 -0
  531. snappy/verify/real_algebra.py +286 -0
  532. snappy/verify/shapes.py +25 -0
  533. snappy/verify/square_extensions.py +1005 -0
  534. snappy/verify/test.py +72 -0
  535. snappy/verify/volume.py +128 -0
  536. snappy/version.py +2 -0
  537. snappy-3.3.dist-info/METADATA +58 -0
  538. snappy-3.3.dist-info/RECORD +541 -0
  539. snappy-3.3.dist-info/WHEEL +6 -0
  540. snappy-3.3.dist-info/entry_points.txt +2 -0
  541. snappy-3.3.dist-info/top_level.txt +28 -0
@@ -0,0 +1,425 @@
1
+ .. SnapPy news
2
+
3
+ ====
4
+ News
5
+ ====
6
+
7
+ * Version 3.3 (January 2026):
8
+
9
+ - :class:`Link <spherogram.Link>` now supports band moves and can
10
+ search for ribbon disks and ribbon concordances. See
11
+ :meth:`ribbon_concordant_links
12
+ <spherogram.Link.ribbon_concordant_links>` and :meth:`add_band
13
+ <spherogram.Link.add_band>`. From `[DG]
14
+ <https://arXiv.org/abs/2512.21825>`_.
15
+
16
+ - New census :class:`RibbonLinks <snappy.RibbonLinks>`. From `[DG]
17
+ <https://arXiv.org/abs/2512.21825>`_.
18
+
19
+ - Additional slice obstructions added to
20
+ :meth:`slice_obstruction_HKL
21
+ <snappy.Triangulation.slice_obstruction_HKL>`.
22
+ From `[DG] <https://arXiv.org/abs/2512.21825>`_.
23
+
24
+ - The Fox-Milnor slice obstruction is now available as
25
+ :meth:`fox_milnor_test <snappy.Triangulation.fox_milnor_test>`.
26
+ From `[DG] <https://arXiv.org/abs/2512.21825>`_.
27
+
28
+ - The census :class:`OrientableCuspedCensus
29
+ <snappy.OrientableCuspedCensus>` has been extended to 10 ideal
30
+ tetrahedra by `[Li] <https://arXiv.org/abs/2512.02142>`_,
31
+ adding 150,000 new manifolds.
32
+
33
+ - Margulis number can now be computed with
34
+ :meth:`margulis <snappy.Manifold.margulis>`.
35
+
36
+ - The upper bounds on the bridge number of a link from `[BKVV2020]
37
+ <https://dx.doi.org/10.4310/CAG.2020.v28.n2.a2>`_ and `[BKP2025]
38
+ <https://arxiv.org/abs/2504.10517>`_ are available as
39
+ :meth:`bridge_upper_bound <spherogram.Link.bridge_upper_bound>`.
40
+
41
+ - :meth:`triangulation_isosig <snappy.Manifold.triangulation_isosig>` now
42
+ preserves the orientation of the core curve rather than the Dehn-filling
43
+ curve - thus, preserving the (unoriented) spun-triangulation structure.
44
+ This only changes the result when ``ignore_curves=True`` (and
45
+ ``ignore_orientation`` and ``ignore_filling_orientations`` have their
46
+ default values).
47
+
48
+ - Fixing a bug in
49
+ :meth:`length_spectrum_alt <snappy.Manifold.length_spectrum_alt>`
50
+ and
51
+ :meth:`length_spectrum_alt_gen <snappy.Manifold.length_spectrum_alt_gen>`.
52
+ The estimate for the upper bound of the global spine radius was not
53
+ correct in all cases. Note that we expect this bug to be very hard to hit
54
+ and do not have a single example where the result of these methods was
55
+ wrong.
56
+
57
+ - :meth:`length_spectrum_alt <snappy.Manifold.length_spectrum_alt>` can be
58
+ given ``count`` and ``max_len`` at the same time. In that case, it stops
59
+ when enough geodesics have been listed to ensure that they include the
60
+ ``count`` shortest geodesics or that they include all geodesics shorter
61
+ than ``max_len``.
62
+
63
+ - Acceleration to
64
+ :meth:`length_spectrum_alt <snappy.Manifold.length_spectrum_alt>` when
65
+ the next geodesic has large gap to the last geodesic in the result.
66
+ It uses the new ``include_intermediates=True`` flag of
67
+ :meth:`length_spectrum_alt_gen <snappy.Manifold.length_spectrum_alt_gen>`.
68
+
69
+ - Computing maximal cusp areas in an unbiased way uses a simpler algorithm
70
+ which also returns tighter intervals for verified computations.
71
+ This affects :meth:`cusp_areas <snappy.Manifold.cusp_areas>` and related
72
+ methods.
73
+
74
+ - Support for Python 3.14 and SageMath 10.8.
75
+
76
+
77
+
78
+ * Version 3.2 (January 2025):
79
+
80
+ - An alternative implementation of the length spectrum. It supports verified
81
+ computations and is significantly faster in some cases. See
82
+ :meth:`length_spectrum_alt <snappy.Manifold.length_spectrum_alt>`
83
+ and
84
+ :meth:`length_spectrum_alt_gen <snappy.Manifold.length_spectrum_alt_gen>`.
85
+
86
+ - :meth:`isometry_signature <snappy.Manifold.isometry_signature>` now also
87
+ works for closed manifolds.
88
+
89
+ - A paper plane or eye ball in the
90
+ :meth:`inside_view <snappy.Manifold.inside_view>` showing the position
91
+ and bearing of the user in the hyperbolic manifold. By default, we now show
92
+ the paper plane instead of the edges of the triangulation so that the view
93
+ is intrinsic to the manifold. The geodesics window now also features a
94
+ button to put the camera onto a geodesic. Here are some examples:
95
+
96
+ .. list-table::
97
+ :width: 100%
98
+ :class: borderless
99
+
100
+ * - .. image:: images/o9_00000_systole_paper_plane.jpg
101
+ :width: 90%
102
+ :align: center
103
+ :alt: Paper plane near shortest geodesic of o9_00000
104
+ - .. image:: images/o9_00000_systole_paper_plane_closer.jpg
105
+ :width: 90%
106
+ :align: center
107
+ :alt: Paper plane very near shortest geodesic of o9_00000
108
+ - .. image:: images/m004_paper_plane_on_systole.jpg
109
+ :width: 90%
110
+ :align: center
111
+ :alt: Paper plane on shortest geodesic of m004
112
+ - .. image:: images/m125_paper_plane.jpg
113
+ :width: 90%
114
+ :align: center
115
+ :alt: Paper plane coming out of a cusp of m125
116
+
117
+ - A faster and more robust algorithm to the compute maximal cusp area matrix.
118
+ The new algorithm is now the default for
119
+ :meth:`~snappy.Manifold.cusp_area_matrix`,
120
+ :meth:`~snappy.Manifold.cusp_areas`,
121
+ :meth:`~snappy.Manifold.short_slopes` and
122
+ :meth:`~snappy.Manifold.cusp_translations`.
123
+
124
+ - New options ``ignore_curves`` and ``ignore_filling_orientations``
125
+ for :meth:`~snappy.Triangulation.triangulation_isosig`. Also
126
+ fixing a subtle bug where the filling coefficients returned by
127
+ :meth:`triangulation_isosig <snappy.Triangulation.triangulation_isosig>` were
128
+ not canonical when ``ignore_curve_orientations = True``.
129
+
130
+ - :meth:`~snappy.Manifold.canonical_retriangulation`
131
+ and
132
+ :meth:`~snappy.Manifold.isometry_signature` fail with
133
+ exceptions rather than silently returning ``None``. In particular, it now
134
+ safe to compare isometry signatures (without further checks) to determine
135
+ whether M and N are isometric hyperbolic manifolds::
136
+
137
+ >>> M.isometry_signature(verified=True) == N.isometry_signature(verified=True)
138
+
139
+ - Bug fix to :meth:`slice_obstruction_HKL
140
+ <snappy.Manifold.slice_obstruction_HKL>`: earlier versions
141
+ incorrectly allowed looking at mod 2 homology of the branched
142
+ cover, where the theory does not directly apply.
143
+
144
+ - New self-contained SnapPy application for Linux.
145
+
146
+ - Support for Python 3.13 and SageMath 10.5.
147
+
148
+
149
+ * Versions 3.1 (May 2023) and 3.1.1 (June 2023):
150
+
151
+ - A method :meth:`exterior_to_link <snappy.Manifold.exterior_to_link>`
152
+ for going from a link exterior to a link diagram taken from
153
+ `Dunfield-Obeidin-Rudd <https://arxiv.org/abs/2112.03251>`_.
154
+
155
+ - Covers now computed by the stand-alone `low_index
156
+ <https://pypi.org/project/low-index/>`_ module, which uses
157
+ multiple processor cores and is typically much faster than the old
158
+ code. In some cases, it is dramatically faster than even GAP or
159
+ Magma.
160
+
161
+ - Added geodesics to the :meth:`inside_view
162
+ <snappy.Manifold.inside_view>`.
163
+
164
+ - Added drilling any simple geodesic with :meth:`drill_word
165
+ <snappy.Manifold.drill_word>` and :meth:`drill_words
166
+ <snappy.Manifold.drill_words>`, not just those that are
167
+ :meth:`combinatorially simple <snappy.Manifold.dual_curves>`.
168
+
169
+ - Added `ignore_orientation` flag to :meth:`triangulation_isosig
170
+ <snappy.Triangulation.triangulation_isosig>`.
171
+
172
+ - Added `include_words` flag to :meth:`length_spectrum
173
+ <snappy.Manifold.length_spectrum>` for getting the word
174
+ corresponding to a geodesic which can be given to
175
+ :meth:`drill_word <snappy.Manifold.drill_word>`.
176
+
177
+ - Support for Python 3.11 and SageMath 10.0.
178
+
179
+ - Modernized styling of the documentation.
180
+
181
+ * Version 3.0.3 (December 2021):
182
+
183
+ - Runs natively on Macs with Apple Silicon processors (M1, M2, and variants).
184
+
185
+ * Version 3.0.2 (November 2021):
186
+
187
+ - Support for SageMath 9.4 and 9.5, Python 3.10, and macOS Monterey.
188
+
189
+ * Version 3.0 (April 2021): New features include:
190
+
191
+ - Incorporates Zoltán Szabó's `program
192
+ <https://web.math.princeton.edu/~szabo/HFKcalc.html>`_ for
193
+ computing Knot Floer homology, see :meth:`knot_floer_homology
194
+ <spherogram.Link.knot_floer_homology>`. This can compute the
195
+ Seifert genus of a 25 crossing knot in mere seconds!
196
+
197
+ - Topological slice obstructions of Herald-Kirk-Livingston, see
198
+ :meth:`slice_obstruction_HKL <snappy.Manifold.slice_obstruction_HKL>`.
199
+
200
+ - Faster "local" algorithm for :meth:`jones_polynomial
201
+ <spherogram.Link.jones_polynomial>`.
202
+
203
+ - `Cohomology fractals <https://arxiv.org/abs/2010.05840>`_ added to
204
+ :meth:`inside_view <snappy.Manifold.inside_view>`.
205
+
206
+ - Convention changes: Sign of knot signature (now positive knots have
207
+ negative signatures), choice of braid generators (now positive
208
+ generators give positive crossings).
209
+
210
+ - Updates to methods :meth:`cusp_translations
211
+ <snappy.Manifold.cusp_translations>`, :meth:`cusp_areas
212
+ <snappy.Manifold.cusp_areas>`, :meth:`short_slopes
213
+ <snappy.Manifold.short_slopes>`. Also :meth:`Link <spherogram.Link>`
214
+ now accepts DT codes.
215
+
216
+ - Support for SageMath 9.3, Python 3.9, and macOS Big Sur.
217
+
218
+ - macOS app now code-signed and notarized.
219
+
220
+ - SnapPy now requires Python 3.6 or newer.
221
+
222
+ * Version 2.8 (June 2020): New features include:
223
+
224
+ - Raytraced interior views of a hyperbolic 3-manifold via the
225
+ :meth:`inside_view <snappy.Manifold.inside_view>` method, see also
226
+ `images <https://im.icerm.brown.edu/portfolio/snappy-views/>`_ and
227
+ `demo video <https://youtu.be/CAERhmUCkRs>`_.
228
+
229
+ - :doc:`verify`: Several new features:
230
+
231
+ * Complex volume (and thus the Chern-Simons invariant) for both
232
+ cusped and closed manifolds, see
233
+ :meth:`complex_volume <snappy.Manifold.complex_volume>`.
234
+
235
+ * Disjoint cusp neighborhoods by the method :meth:`cusp_areas
236
+ <snappy.Manifold.cusp_areas>` which uses
237
+ :meth:`cusp_area_matrix <snappy.Manifold.cusp_area_matrix>`.
238
+
239
+ * Cusp shapes (see :meth:`cusp_info <snappy.Manifold.cusp_info>`).
240
+
241
+ * Finding all :meth:`short_slopes <snappy.Manifold.short_slopes>`
242
+ in disjoint embedded cusp neighborhoods.
243
+
244
+ - The census :class:`HTLinkExteriors <snappy.HTLinkExteriors>` has
245
+ been extended to 15 crossing knots (contributed by Malik
246
+ Obeidin).
247
+
248
+ - The census :class:`CensusKnots <snappy.CensusKnots>` has been
249
+ extended to triangulations with 9 ideal tetrahedra.
250
+
251
+ - Support for SageMath 9.0 and macOS Catalina.
252
+
253
+ - Development moved to `GitHub <https://github.com/3-manifolds>`_.
254
+
255
+ * Version 2.7 (July 2019): New features include:
256
+
257
+ - Python 3 is now recommended over Python 2 on all platforms; the
258
+ default Mac and Windows apps use Python 3 rather than
259
+ Python 2. The only difference most users will notice is that one
260
+ must type ``print(blah)`` instead of ``print blah``.
261
+
262
+ - `Verified computations <verify.html>`_: performance improvements
263
+ by switching to the Krawczyk test.
264
+
265
+ - Support for SageMath 8.8.
266
+
267
+ - Installation instructions extensively updated.
268
+
269
+ - GUI improvements, especially on macOS. These include improved
270
+ support for dark mode and tabs on macOS Mojave and preliminary
271
+ support for macOS Catalina.
272
+
273
+ * Version 2.6.1 (August 2018): New features include:
274
+
275
+ - Support for SageMath 8.3, Python 3.7, and macOS Mojave.
276
+
277
+ - Computing `ideals defining SL(2, C) character varieties.
278
+ <additional_classes.html#snappy.HolonomyGroup.character_variety_vars_and_polys>`_
279
+ Contributed by Jean-Philippe Burelle, based on `this paper
280
+ <https://arxiv.org/abs/1703.08241>`_.
281
+
282
+ - Many bug fixes.
283
+
284
+ * Version 2.6 (Nov 2017): New features include:
285
+
286
+ - Support for macOS High Sierra, SageMath 8.1, and Windows systems
287
+ using non-Latin alphabets.
288
+
289
+ - Many bug fixes, including improved Python 3 support.
290
+
291
+ * Version 2.5 (Feb 2017): New features include:
292
+
293
+ - Rigorous computation of `hyperbolic volume
294
+ <manifold.html#snappy.Manifold.volume>`_.
295
+
296
+ - STL export of Dirichlet domains for 3D printing, contributed by
297
+ Jose Sanchez.
298
+
299
+ - Support for Python 3, SageMath 7.5, 7.6, and 8.0, and many more
300
+ versions of Python on Windows.
301
+
302
+ - Much improved infrastructure for testing and distributing SnapPy.
303
+
304
+ * Version 2.4 (May 2016): New features include:
305
+
306
+ - Added `census of Platonic manifolds <platonic_census.html>`_.
307
+
308
+ - Rigorous computation of `cusp translations <manifold.html#snappy.Manifold.cusp_translations>`_.
309
+
310
+ - Added decorations to `triangulation isomorphism signatures
311
+ <manifold.html#snappy.Manifold.triangulation_isosig>`_ for
312
+ encoding peripheral curves.
313
+
314
+ - Faster verification of non-tetrahedral canonical cell decompositions.
315
+
316
+ - Improvements to the `link and planar diagram component
317
+ <spherogram.html>`_, mostly contributed by Malik Obeidin, include:
318
+
319
+ * Bar-Natan's super-fast `tangle-based algorithm
320
+ <http://www.math.toronto.edu/drorbn/Talks/Aarhus-1507/>`_ for
321
+ computing the Alexander polynomial.
322
+
323
+ * Can now compute the `Seifert matrix
324
+ <spherogram.html#spherogram.Link.seifert_matrix>`_ and express a
325
+ link as a `braid closure <spherogram.html#spherogram.Link.braid_word>`_.
326
+
327
+ * Conversion to/from `SageMath links and braids
328
+ <spherogram.html#spherogram.Link.sage_link>`_.
329
+
330
+ * Many under-the-hood improvements.
331
+
332
+ - New Windows installer.
333
+
334
+ * Version 2.3 (March 2015): New features include:
335
+
336
+ - Major improvements to the `link and planar diagram component
337
+ <spherogram.html>`_, including link simplification, random links,
338
+ and better documentation.
339
+
340
+ - Basic support for `spun normal surfaces
341
+ <manifold.html#snappy.Manifold.normal_boundary_slopes>`_.
342
+
343
+ - New extra features when used inside of Sage:
344
+
345
+ * HIKMOT-style `rigorous verification of hyperbolic structures
346
+ <verify.html>`_,
347
+ contributed by Matthias Goerner.
348
+
349
+ * Many `basic knot/link invariants
350
+ <spherogram.html#the-link-class>`_, contributed by Robert
351
+ Lipschitz and Jennet Dickinson.
352
+
353
+ * Sage-specific functions are now more easily accessible as
354
+ methods of Manifold and better documented.
355
+
356
+ * Improved number field recognition, thanks to Matthias.
357
+
358
+ - Better compatibility with OS X Yosemite and Windows 8.1.
359
+
360
+ - Development changes:
361
+
362
+ * Major source code reorganization/cleanup.
363
+
364
+ * Source code repository moved to `Bitbucket
365
+ <https://bitbucket.org/t3m>`_.
366
+
367
+ * Python modules now hosted on `PyPI
368
+ <https://pypi.python.org/pypi>`_, simplifying `installation <installing.html>`_.
369
+
370
+ * Version 2.2 (June 2014): Includes Ben Burton's `census of
371
+ orientable cusped manifolds with 9 tetrahedra. <http://arxiv.org/abs/1405.2695>`_
372
+
373
+ * Version 2.1 (February 2014): New `high-precision manifolds
374
+ (ManifoldHP) <manifoldhp.html>`_ which compute hyperbolic structures
375
+ (and everything related) in `quad-double (212 bit) <http://web.mit.edu/tabbott/Public/quaddouble-debian/qd-2.3.4-old/docs/qd.pdf>`_
376
+ precision.
377
+
378
+ * Version 2.0 (September 2013): Many new features, including:
379
+
380
+ - A `manifold browser <manifold.html#snappy.Manifold.browse>`_
381
+ window for easily examining a particular manifold.
382
+
383
+ - Many improvements to the `link editor <plink.html#using-snappy-s-link-editor>`_, including
384
+
385
+ * A smoothed view mode with image export to EPS/PDF/SVG/TikZ.
386
+
387
+ * Producing a fully editable link from combinatorial data like a DT
388
+ code.
389
+
390
+ - `Splitting manifolds <manifold.html#snappy.Manifold.split>`_ along surfaces of non-negative euler
391
+ characteristic.
392
+
393
+ - Generalizing the ptolemy obstruction class to allow computation of
394
+ PGL(3,C)-representations and improving usability of the `ptolemy module
395
+ <http://www.unhyperbolic.org/ptolemy.html>`_.
396
+
397
+ - `CensusKnots <censuses.html#snappy.CensusKnots>`_ now includes
398
+ knot exteriors with 8 tetrahedra.
399
+
400
+ * Version 1.8 (May 2013) improves handling of DT codes and adds the
401
+ `HTLinkExteriors <censuses.html#snappy.HTLinkExteriors>`_ census,
402
+ which provides identification for knots and links up to 14 crossings.
403
+
404
+ * Version 1.7 (November 2012) incorporates the `ptolemy module
405
+ <http://www.unhyperbolic.org/ptolemy.html>`_ for studying
406
+ representations of 3-manifold groups into pSL(*N*, **C**).
407
+
408
+ * Version 1.6 (August 2012) includes a `new way to make links
409
+ <spherogram.html>`_ and some support for `arbitrary precision calculation <snap.html>`_.
410
+
411
+ * Version 1.5 (February 2012) includes `much improved manifold
412
+ censuses <censuses.html>`_.
413
+
414
+ * Version 1.4 (December 2011) uses the current release of IPython, which has been completely rewritten.
415
+
416
+ * Version 1.3.10 (July 2011) incorporates `Twister
417
+ <https://github.com/MarkCBell/twister/>`_.
418
+
419
+ * Version 1.3 (February 2011) has a completely redesigned cusp horoball viewer and many bug fixes!
420
+
421
+ * Version 1.2 (December 2010).
422
+
423
+ * Version 1.1 (February 2010).
424
+
425
+ * Version 1.0 (August 2009) Initial version.
@@ -0,0 +1,25 @@
1
+ Other components
2
+ ===================
3
+
4
+ SnapPy incorporates:
5
+
6
+ Ptolemy module
7
+ --------------
8
+
9
+ The `ptolemy module <http://www.unhyperbolic.org/ptolemy.html>`_ for
10
+ studying representations of 3-manifold groups into SL(*N*, **C**) and
11
+ PSL(*N*, **C**). By `Matthias Goerner
12
+ <http://www.unhyperbolic.org/>`_.
13
+
14
+ .. toctree::
15
+ :maxdepth: 3
16
+
17
+ ptolemy
18
+
19
+ Twister
20
+ -------
21
+
22
+ `Twister <https://github.com/MarkCBell/twister>`_ for building
23
+ surface bundles and Heegaard splittings from mapping class group
24
+ data. By Marc Bell, Tracy Hall, and Saul Schleimer.
25
+
@@ -0,0 +1,20 @@
1
+ Censuses of Platonic manifolds
2
+ ==============================
3
+
4
+ The following manifolds were tabulated in `A census of tetrahedral manifolds <http://arxiv.org/abs/1502.00383>`_ and `A census of Platonic manifolds and augmented knotted trivalent graphs <http://arxiv.org/abs/1602.02208v2>`_. An even larger census of Platonic manifolds can be downloaded `here <http://unhyperbolic.org/platonicCensus/large/platonicCensus_large_snappy_only.tar.bz2>`_.
5
+
6
+ .. currentmodule:: snappy
7
+ .. autodata:: TetrahedralOrientableCuspedCensus
8
+ .. autodata:: TetrahedralNonorientableCuspedCensus
9
+ .. autodata:: OctahedralOrientableCuspedCensus
10
+ .. autodata:: OctahedralNonorientableCuspedCensus
11
+ .. autodata:: CubicalOrientableCuspedCensus
12
+ .. autodata:: CubicalNonorientableCuspedCensus
13
+ .. autodata:: DodecahedralOrientableCuspedCensus
14
+ .. autodata:: DodecahedralNonorientableCuspedCensus
15
+ .. autodata:: IcosahedralOrientableClosedCensus
16
+ .. autodata:: IcosahedralNonorientableClosedCensus
17
+ .. autodata:: CubicalOrientableClosedCensus
18
+ .. autodata:: CubicalNonorientableClosedCensus
19
+ .. autodata:: DodecahedralOrientableClosedCensus
20
+ .. autodata:: DodecahedralNonorientableClosedCensus
@@ -0,0 +1,102 @@
1
+ .. Documentation of the plink part of SnapPy
2
+
3
+ Using SnapPy's link editor
4
+ =================================
5
+
6
+ PLink draws piecewise linear link projections. Components may be
7
+ points, PL arcs, or PL circles. Line segments are oriented consistently in
8
+ each component. Different components are different colors.
9
+
10
+ .. image:: plink-action.png
11
+ :align: right
12
+
13
+ To invoke the link editor, do::
14
+
15
+ In[5]: M = Manifold()
16
+
17
+ Once you've drawn the link, select the menu item "PLink->Tools->Send to
18
+ SnapPy", and then *M* will be the complement of the link. If you edit
19
+ the link, you can again do "Send to SnapPy" to update *M*.
20
+
21
+ Drawing Basics
22
+ ------------------------------
23
+
24
+ * When using the mouse to draw a link with PLink, you should always
25
+ *click-and-release*. Do not hold the mouse button down while drawing.
26
+ PLink requires only the left mouse button.
27
+
28
+ * The default state of the editor is indicated by the arrow cursor.
29
+ In this state, click-and-release the left mouse button on the
30
+ background to place a starting vertex and begin drawing. The vertex
31
+ will be connected to the pencil cursor by a thin red line.
32
+ Click-and-release to place a second vertex. The two vertices will
33
+ then be joined by an edge. Continue to draw other vertices and edges
34
+ to your heart's content.
35
+
36
+ * To stop drawing, either click twice on the same vertex to create an
37
+ arc, or click on an endpoint vertex. The latter operation will
38
+ either create a circle component or join together two arc
39
+ components.
40
+
41
+ * When the cursor hovers over a vertex it changes to the pointing
42
+ finger. From this state you can drag a vertex to a new location
43
+ with a click-and-release on the vertex. The vertex will become
44
+ enclosed in a circular cursor. Move it to where you want it to go
45
+ and click the left (or middle) button to place it. If you drag one
46
+ endpoint on top of another, they will meld.
47
+
48
+ * When the cursor hovers over an edge, not too close to a vertex or
49
+ crossing, it changes to the push-me-pull-you cursor. Clicking in
50
+ this state will change the orientation of the component containing
51
+ the edge.
52
+
53
+ * When the cursor hovers over a crossing it changes to the yin-yang
54
+ recycling cursor. Clicking while in this state changes the the
55
+ handedness of the crossing.
56
+
57
+ * Double-clicking on an endpoint vertex will restart drawing from
58
+ that vertex. Double-clicking on a non-endpoint vertex will break
59
+ the link at that point and begin drawing with the old incoming edge.
60
+
61
+ * While in drawing state, hitting the Delete key removes the last
62
+ vertex before the cursor. If no vertices remain, the drawing state
63
+ ends and the active component is removed. This can be used to
64
+ remove a segment from the diagram. Double-click a vertex; hit
65
+ Delete to remove the incoming segment at that vertex; then click the
66
+ vertex again to reconnect.
67
+
68
+ * You will not be allowed to create edges that pass too close to a
69
+ vertex or a crossing, or to place vertices too close to edges or to
70
+ crossings or to other vertices. If you attempt to do any of these
71
+ things, PLink will flash the drawing canvas.
72
+
73
+ Miscellaneous Features
74
+ ---------------------------------
75
+
76
+ The window can be resized to allow for different sizes of link
77
+ projections, and the arrow keys can be used to slide the projection
78
+ around in order to make more room on one side or another.
79
+
80
+ The "Tools" menu can be used to make the projection alternating
81
+ (provided that all components are circles), or to clear the screen,
82
+ or to reflect the projection in the xy-plane, changing all crossings.
83
+ Also, the "Tools" menu includes the "send to SnapPy" command.
84
+
85
+ The "File" menu can be used to save the projection as a SnapPea
86
+ link projection file. (This can be done from the drawing state as
87
+ well, in which case the "hot vertex" is remembered in the file!). The
88
+ "File->Open File" command will read a SnapPea link projection file,
89
+ and restart drawing if the projection was saved while drawing.
90
+
91
+ The "Info" menu selects information about the link projection to be
92
+ displayed in the info line at the bottom. Various encoding schemes
93
+ for link projections are supported, as well as the blackboard framing
94
+ curves, expressed in meridian-longitude coordinates. Cutting and
95
+ pasting from the info line is supported. The numerical and
96
+ alphabetical Dowker-Thistlethwaite codes are displayed in an extended
97
+ form which includes a full description of the planar embedding. The
98
+ string printed in the info line is also accepted as input to SnapPy's
99
+ Manifold constructor. That is, you can paste the complete DT code,
100
+ for example ``DT: [(-4,6,2)], [0,0,1]``, between the apostrophes in
101
+ Manifold(''). The "DT labels" option displays the indexing used in
102
+ computing the Dowker-Thistlethwaite codes.
@@ -0,0 +1,66 @@
1
+ The ptolemy module
2
+ ==================
3
+
4
+ .. automodule:: snappy.ptolemy
5
+
6
+ What is the ptolemy module?
7
+ ---------------------------
8
+
9
+ This module provides tools to find boundary-unipotent representations of an
10
+ oriented
11
+ 3-manifold into PSL(*N*, **C**). It was used, for example, to generate the tables
12
+ of representations at
13
+ `ptolemy.unhyperbolic.org <http://ptolemy.unhyperbolic.org/html/summary.html>`_.
14
+
15
+ The ptolemy module can use `magma <http://magma.maths.usyd.edu.au/magma/>`_ for
16
+ the computations necessary to find the representations or it can automatically
17
+ retrieve the necessary computations from a database we provide that contains the
18
+ computations for all manifolds and *N* at
19
+ `ptolemy.unhyperbolic.org <http://ptolemy.unhyperbolic.org/html/summary.html>`_.
20
+ In particular, the database includes the computations for all orientable census
21
+ manifolds for PSL(2, **C**) and the examples below work without magma for these
22
+ manifolds.
23
+ This makes it useful for people who do not have magma (see :ref:`here <ptolemy-example-retrieve-exact-solutions>`).
24
+
25
+ The ptolemy module is still under development. Please report bugs or email suggestions to: enischte at gmail dot com.
26
+
27
+ Examples of what the Ptolemy module can do:
28
+
29
+ * Give the :ref:`equations for the reduced Ptolemy varieties<ptolemy-example-basic>` to find all :ref:`generically decorated <ptolemy-generically-decorated>` and :ref:`boundary-unipotent <ptolemy-boundary-unipotent>` representations into SL(*N*, **C**).
30
+ * Same for representations into PSL(*N*, **C**) using :ref:`Obstruction classes <ptolemy-example-obstruction-class>`.
31
+ * Retrieve the :ref:`exact <ptolemy-example-retrieve-exact-solutions>` and :ref:`numerical <ptolemy-example-retrieve-numerical-solutions>` solutions for these varieties.
32
+ * Compute the matrices for these representations :ref:`exactly <ptolemy-example-matrices>` or :ref:`numerically <ptolemy-example-numerical-matrix>` given a generator of or word in the fundamental group.
33
+ * Compute the :ref:`traces <ptolemy-example-traces>` for these matrices.
34
+ * Compute the :ref:`trace field <ptolemy-examples-trace-field>` of the representation.
35
+ * Compute the :ref:`boundary holonomy <ptolemy-example-boundary-holonomy>`.
36
+ * Compute the corresponding :ref:`shape parameters/cross ratios <ptolemy-example-cross-ratios>` for a representation.
37
+ * Compute the :ref:`volume <ptolemy-example-volume>` and :ref:`complex volume <ptolemy-example-complex-volume>` (volume + i Chern-Simons) for a representation.
38
+ * Compute solutions to the Ptolemy varieties :ref:`using magma or sage <ptolemy-example-using-magma-sage>`.
39
+ * Find :ref:`positively dimensional components <ptolemy-non-zero-dim-comp>` of the Ptolemy variety.
40
+ * Find :ref:`positively dimensional families <ptolemy-example-non-zero-dim-rep>` of boundary-unipotent representations.
41
+
42
+ The ptolemy module tries to have powerful and flexible functionality but at the same time be easy to use. For example, we can get the volumes of boundary-unipotent PSL(2, **C**)-representations of ``m011`` in just one line::
43
+
44
+ >>> Manifold("m011").ptolemy_variety(2,'all').retrieve_solutions().volume_numerical()
45
+ [[[-4.30211422042248 E-16, -0.942707362776931, 0.942707362776931]],
46
+ [[4.64255370258293 E-15, 3.94215909915729 E-15, -2.78183391239608, 2.78183391239608]]]
47
+
48
+ Here, we see that ``m011`` has a representation that is not Galois-conjugate to the geometric representation and that has the volume 0.9427... of the Weeks manifold.
49
+
50
+ **Remark:** Please check your Internet connection if the above example does not work.
51
+
52
+ Documentation
53
+ -------------
54
+
55
+ .. toctree::
56
+ :maxdepth: 2
57
+
58
+ ptolemy_prelim
59
+ ptolemy_examples1
60
+ ptolemy_examples2
61
+ ptolemy_examples3
62
+ ptolemy_examples4
63
+ ptolemy_classes
64
+
65
+
66
+
@@ -0,0 +1,42 @@
1
+ Classes
2
+ ==============================
3
+
4
+ PtolemyVariety
5
+ --------------
6
+
7
+ .. autoclass:: snappy.ptolemy.ptolemyVariety.PtolemyVariety
8
+ :members:
9
+
10
+ PtolemyCoordinates
11
+ ------------------
12
+
13
+ .. autoclass:: snappy.ptolemy.coordinates.PtolemyCoordinates
14
+ :members:
15
+
16
+ CrossRatios
17
+ -----------
18
+
19
+ .. autoclass:: snappy.ptolemy.coordinates.CrossRatios
20
+ :members:
21
+
22
+ Flattenings
23
+ -----------
24
+
25
+ .. autoclass:: snappy.ptolemy.coordinates.Flattenings
26
+ :members:
27
+
28
+ NonZeroDimensionalComponent
29
+ ---------------------------
30
+
31
+ .. autoclass:: snappy.ptolemy.component.NonZeroDimensionalComponent
32
+ :members:
33
+
34
+ Other functions
35
+ ---------------
36
+
37
+ .. autofunction:: snappy.ptolemy.solutions_from_magma
38
+
39
+ .. autofunction:: snappy.ptolemy.solutions_from_magma_file
40
+
41
+
42
+ .. [FKR2013] Falbel, Koseleff, Rouillier: Representations of Fundamental Groups of 3-Manifolds into PGL(3,C): Exact Computations in Low Complexity, http://arxiv.org/abs/1307.6697