snappy 3.1.1__cp311-cp311-win_amd64.whl → 3.2__cp311-cp311-win_amd64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. snappy/CyOpenGL.cp311-win_amd64.pyd +0 -0
  2. snappy/SnapPy.cp311-win_amd64.pyd +0 -0
  3. snappy/SnapPyHP.cp311-win_amd64.pyd +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/additional_classes.rst.txt +40 -40
  25. snappy/doc/_sources/bugs.rst.txt +14 -14
  26. snappy/doc/_sources/censuses.rst.txt +51 -51
  27. snappy/doc/_sources/credits.rst.txt +75 -75
  28. snappy/doc/_sources/development.rst.txt +259 -239
  29. snappy/doc/_sources/index.rst.txt +182 -115
  30. snappy/doc/_sources/installing.rst.txt +247 -264
  31. snappy/doc/_sources/manifold.rst.txt +6 -6
  32. snappy/doc/_sources/manifoldhp.rst.txt +46 -46
  33. snappy/doc/_sources/news.rst.txt +355 -283
  34. snappy/doc/_sources/other.rst.txt +25 -25
  35. snappy/doc/_sources/platonic_census.rst.txt +20 -20
  36. snappy/doc/_sources/plink.rst.txt +102 -102
  37. snappy/doc/_sources/ptolemy.rst.txt +66 -66
  38. snappy/doc/_sources/ptolemy_classes.rst.txt +42 -42
  39. snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -297
  40. snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -363
  41. snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -301
  42. snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -61
  43. snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -105
  44. snappy/doc/_sources/screenshots.rst.txt +21 -21
  45. snappy/doc/_sources/snap.rst.txt +87 -87
  46. snappy/doc/_sources/snappy.rst.txt +28 -28
  47. snappy/doc/_sources/spherogram.rst.txt +103 -103
  48. snappy/doc/_sources/todo.rst.txt +47 -47
  49. snappy/doc/_sources/triangulation.rst.txt +11 -11
  50. snappy/doc/_sources/tutorial.rst.txt +49 -49
  51. snappy/doc/_sources/verify.rst.txt +210 -150
  52. snappy/doc/_sources/verify_internals.rst.txt +79 -90
  53. snappy/doc/_static/basic.css +924 -902
  54. snappy/doc/_static/css/badge_only.css +1 -1
  55. snappy/doc/_static/css/theme.css +1 -1
  56. snappy/doc/_static/doctools.js +1 -1
  57. snappy/doc/_static/documentation_options.js +12 -13
  58. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  59. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  60. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  61. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  62. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  63. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  64. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  65. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  66. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  67. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  68. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  69. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  70. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  71. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  72. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  73. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  74. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  75. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  76. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  77. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  78. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  79. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  80. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  81. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  82. snappy/doc/_static/js/versions.js +228 -0
  83. snappy/doc/_static/language_data.js +199 -199
  84. snappy/doc/_static/pygments.css +74 -73
  85. snappy/doc/_static/searchtools.js +125 -71
  86. snappy/doc/_static/snappy_furo.css +33 -33
  87. snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -42
  88. snappy/doc/_static/sphinx_highlight.js +13 -3
  89. snappy/doc/additional_classes.html +1499 -1330
  90. snappy/doc/bugs.html +131 -134
  91. snappy/doc/censuses.html +426 -445
  92. snappy/doc/credits.html +180 -183
  93. snappy/doc/development.html +383 -363
  94. snappy/doc/genindex.html +1330 -1409
  95. snappy/doc/index.html +261 -206
  96. snappy/doc/installing.html +345 -363
  97. snappy/doc/manifold.html +3451 -2839
  98. snappy/doc/manifoldhp.html +179 -182
  99. snappy/doc/news.html +387 -329
  100. snappy/doc/objects.inv +0 -0
  101. snappy/doc/other.html +160 -162
  102. snappy/doc/platonic_census.html +374 -377
  103. snappy/doc/plink.html +209 -212
  104. snappy/doc/ptolemy.html +253 -255
  105. snappy/doc/ptolemy_classes.html +1143 -1146
  106. snappy/doc/ptolemy_examples1.html +408 -410
  107. snappy/doc/ptolemy_examples2.html +470 -473
  108. snappy/doc/ptolemy_examples3.html +413 -416
  109. snappy/doc/ptolemy_examples4.html +194 -197
  110. snappy/doc/ptolemy_prelim.html +247 -250
  111. snappy/doc/py-modindex.html +164 -167
  112. snappy/doc/screenshots.html +140 -142
  113. snappy/doc/search.html +134 -137
  114. snappy/doc/searchindex.js +1 -1
  115. snappy/doc/snap.html +201 -204
  116. snappy/doc/snappy.html +180 -182
  117. snappy/doc/spherogram.html +1210 -1213
  118. snappy/doc/todo.html +165 -168
  119. snappy/doc/triangulation.html +1583 -1474
  120. snappy/doc/tutorial.html +158 -161
  121. snappy/doc/verify.html +329 -275
  122. snappy/doc/verify_internals.html +1234 -1691
  123. snappy/drilling/__init__.py +153 -235
  124. snappy/drilling/barycentric.py +103 -0
  125. snappy/drilling/constants.py +0 -2
  126. snappy/drilling/crush.py +56 -130
  127. snappy/drilling/cusps.py +12 -6
  128. snappy/drilling/debug.py +2 -1
  129. snappy/drilling/exceptions.py +7 -40
  130. snappy/drilling/moves.py +302 -243
  131. snappy/drilling/perturb.py +63 -37
  132. snappy/drilling/shorten.py +36 -0
  133. snappy/drilling/subdivide.py +0 -5
  134. snappy/drilling/test.py +23 -0
  135. snappy/drilling/test_cases.py +126 -0
  136. snappy/drilling/tracing.py +9 -37
  137. snappy/exceptions.py +18 -5
  138. snappy/exterior_to_link/barycentric_geometry.py +2 -4
  139. snappy/exterior_to_link/main.py +8 -7
  140. snappy/exterior_to_link/mcomplex_with_link.py +2 -2
  141. snappy/exterior_to_link/rational_linear_algebra.py +1 -1
  142. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +1 -1
  143. snappy/exterior_to_link/test.py +21 -33
  144. snappy/geometric_structure/__init__.py +212 -0
  145. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  146. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
  147. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
  148. snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
  149. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
  150. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
  151. snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
  152. snappy/geometric_structure/geodesic/__init__.py +0 -0
  153. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  154. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  155. snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
  156. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  157. snappy/geometric_structure/geodesic/constants.py +6 -0
  158. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  159. snappy/{drilling → geometric_structure/geodesic}/fixed_points.py +34 -9
  160. snappy/{drilling/geodesic_info.py → geometric_structure/geodesic/geodesic_start_point_info.py} +139 -180
  161. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  162. snappy/geometric_structure/geodesic/line.py +30 -0
  163. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  164. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
  165. snappy/geometric_structure/test.py +22 -0
  166. snappy/gui.py +23 -13
  167. snappy/horoviewer.py +7 -7
  168. snappy/hyperboloid/__init__.py +96 -31
  169. snappy/hyperboloid/distances.py +245 -0
  170. snappy/hyperboloid/horoball.py +19 -0
  171. snappy/hyperboloid/line.py +35 -0
  172. snappy/hyperboloid/point.py +9 -0
  173. snappy/hyperboloid/triangle.py +29 -0
  174. snappy/isometry_signature.py +382 -0
  175. snappy/len_spec/__init__.py +596 -0
  176. snappy/len_spec/geodesic_info.py +110 -0
  177. snappy/len_spec/geodesic_key_info_dict.py +117 -0
  178. snappy/len_spec/geodesic_piece.py +143 -0
  179. snappy/len_spec/geometric_structure.py +182 -0
  180. snappy/len_spec/geometry.py +80 -0
  181. snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
  182. snappy/len_spec/spine.py +206 -0
  183. snappy/len_spec/test.py +24 -0
  184. snappy/len_spec/test_cases.py +69 -0
  185. snappy/len_spec/tile.py +275 -0
  186. snappy/len_spec/word.py +86 -0
  187. snappy/math_basics.py +39 -13
  188. snappy/matrix.py +52 -9
  189. snappy/number.py +12 -6
  190. snappy/numeric_output_checker.py +2 -3
  191. snappy/pari.py +8 -4
  192. snappy/phone_home.py +2 -1
  193. snappy/polyviewer.py +8 -8
  194. snappy/ptolemy/__init__.py +1 -1
  195. snappy/ptolemy/component.py +2 -2
  196. snappy/ptolemy/coordinates.py +25 -25
  197. snappy/ptolemy/findLoops.py +9 -9
  198. snappy/ptolemy/manifoldMethods.py +27 -29
  199. snappy/ptolemy/polynomial.py +50 -57
  200. snappy/ptolemy/processFileBase.py +60 -0
  201. snappy/ptolemy/ptolemyVariety.py +109 -41
  202. snappy/ptolemy/reginaWrapper.py +4 -4
  203. snappy/ptolemy/rur.py +1 -1
  204. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +9 -9
  205. snappy/ptolemy/test.py +99 -54
  206. snappy/ptolemy/utilities.py +1 -1
  207. snappy/raytracing/__init__.py +64 -0
  208. snappy/raytracing/additional_horospheres.py +64 -0
  209. snappy/raytracing/additional_len_spec_choices.py +63 -0
  210. snappy/raytracing/cohomology_fractal.py +0 -3
  211. snappy/raytracing/eyeball.py +123 -0
  212. snappy/raytracing/finite_raytracing_data.py +17 -17
  213. snappy/raytracing/finite_viewer.py +15 -15
  214. snappy/raytracing/geodesic_tube_info.py +93 -63
  215. snappy/raytracing/geodesics.py +94 -64
  216. snappy/raytracing/geodesics_window.py +56 -34
  217. snappy/raytracing/gui_utilities.py +21 -6
  218. snappy/raytracing/hyperboloid_navigation.py +29 -4
  219. snappy/raytracing/hyperboloid_utilities.py +73 -73
  220. snappy/raytracing/ideal_raytracing_data.py +121 -91
  221. snappy/raytracing/inside_viewer.py +199 -66
  222. snappy/raytracing/pack.py +22 -0
  223. snappy/raytracing/raytracing_data.py +37 -25
  224. snappy/raytracing/raytracing_view.py +70 -65
  225. snappy/raytracing/shaders/Eye.png +0 -0
  226. snappy/raytracing/shaders/NonGeometric.png +0 -0
  227. snappy/raytracing/shaders/__init__.py +39 -3
  228. snappy/raytracing/shaders/fragment.glsl +451 -133
  229. snappy/raytracing/test.py +29 -0
  230. snappy/raytracing/tooltip.py +146 -0
  231. snappy/raytracing/upper_halfspace_utilities.py +42 -9
  232. snappy/sage_helper.py +67 -134
  233. snappy/settings.py +90 -77
  234. snappy/shell.py +2 -0
  235. snappy/snap/character_varieties.py +2 -2
  236. snappy/snap/find_field.py +4 -3
  237. snappy/snap/fundamental_polyhedron.py +2 -2
  238. snappy/snap/kernel_structures.py +5 -1
  239. snappy/snap/nsagetools.py +9 -8
  240. snappy/snap/peripheral/dual_cellulation.py +4 -3
  241. snappy/snap/peripheral/peripheral.py +2 -2
  242. snappy/snap/peripheral/surface.py +5 -5
  243. snappy/snap/peripheral/test.py +1 -1
  244. snappy/snap/polished_reps.py +8 -8
  245. snappy/snap/slice_obs_HKL.py +16 -14
  246. snappy/snap/t3mlite/arrow.py +3 -3
  247. snappy/snap/t3mlite/edge.py +3 -3
  248. snappy/snap/t3mlite/homology.py +2 -2
  249. snappy/snap/t3mlite/mcomplex.py +3 -3
  250. snappy/snap/t3mlite/simplex.py +12 -0
  251. snappy/snap/t3mlite/spun.py +18 -17
  252. snappy/snap/t3mlite/test_vs_regina.py +4 -4
  253. snappy/snap/test.py +37 -53
  254. snappy/snap/utilities.py +4 -5
  255. snappy/test.py +121 -138
  256. snappy/test_cases.py +263 -0
  257. snappy/testing.py +131 -0
  258. snappy/tiling/__init__.py +2 -0
  259. snappy/tiling/canonical_key_dict.py +59 -0
  260. snappy/tiling/dict_based_set.py +79 -0
  261. snappy/tiling/floor.py +49 -0
  262. snappy/tiling/hyperboloid_dict.py +54 -0
  263. snappy/tiling/iter_utils.py +78 -0
  264. snappy/tiling/lifted_tetrahedron.py +22 -0
  265. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  266. snappy/tiling/real_hash_dict.py +164 -0
  267. snappy/tiling/test.py +23 -0
  268. snappy/tiling/tile.py +215 -0
  269. snappy/tiling/triangle.py +33 -0
  270. snappy/tkterminal.py +113 -84
  271. snappy/twister/main.py +1 -7
  272. snappy/twister/twister_core.cp311-win_amd64.pyd +0 -0
  273. snappy/upper_halfspace/__init__.py +78 -17
  274. snappy/verify/__init__.py +3 -7
  275. snappy/verify/{verifyCanonical.py → canonical.py} +78 -70
  276. snappy/verify/complex_volume/adjust_torsion.py +1 -2
  277. snappy/verify/complex_volume/closed.py +13 -13
  278. snappy/verify/complex_volume/cusped.py +6 -6
  279. snappy/verify/complex_volume/extended_bloch.py +5 -8
  280. snappy/verify/{cuspTranslations.py → cusp_translations.py} +1 -1
  281. snappy/verify/edge_equations.py +80 -0
  282. snappy/verify/exceptions.py +0 -55
  283. snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +3 -3
  284. snappy/verify/interval_newton_shapes_engine.py +7 -5
  285. snappy/verify/interval_tree.py +5 -5
  286. snappy/verify/krawczyk_shapes_engine.py +17 -18
  287. snappy/verify/maximal_cusp_area_matrix/__init__.py +7 -74
  288. snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +3 -4
  289. snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +1 -1
  290. snappy/verify/{realAlgebra.py → real_algebra.py} +1 -1
  291. snappy/verify/shapes.py +5 -3
  292. snappy/verify/short_slopes.py +39 -41
  293. snappy/verify/{squareExtensions.py → square_extensions.py} +14 -11
  294. snappy/verify/test.py +57 -60
  295. snappy/verify/upper_halfspace/extended_matrix.py +1 -1
  296. snappy/verify/upper_halfspace/finite_point.py +3 -4
  297. snappy/verify/upper_halfspace/ideal_point.py +9 -9
  298. snappy/verify/volume.py +2 -2
  299. snappy/version.py +2 -2
  300. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/METADATA +26 -11
  301. snappy-3.2.dist-info/RECORD +503 -0
  302. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
  303. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
  304. snappy/__pycache__/__init__.cpython-311.pyc +0 -0
  305. snappy/__pycache__/browser.cpython-311.pyc +0 -0
  306. snappy/__pycache__/cache.cpython-311.pyc +0 -0
  307. snappy/__pycache__/database.cpython-311.pyc +0 -0
  308. snappy/__pycache__/db_utilities.cpython-311.pyc +0 -0
  309. snappy/__pycache__/decorated_isosig.cpython-311.pyc +0 -0
  310. snappy/__pycache__/exceptions.cpython-311.pyc +0 -0
  311. snappy/__pycache__/export_stl.cpython-311.pyc +0 -0
  312. snappy/__pycache__/filedialog.cpython-311.pyc +0 -0
  313. snappy/__pycache__/gui.cpython-311.pyc +0 -0
  314. snappy/__pycache__/horoviewer.cpython-311.pyc +0 -0
  315. snappy/__pycache__/math_basics.cpython-311.pyc +0 -0
  316. snappy/__pycache__/matrix.cpython-311.pyc +0 -0
  317. snappy/__pycache__/number.cpython-311.pyc +0 -0
  318. snappy/__pycache__/numeric_output_checker.cpython-311.pyc +0 -0
  319. snappy/__pycache__/pari.cpython-311.pyc +0 -0
  320. snappy/__pycache__/polyviewer.cpython-311.pyc +0 -0
  321. snappy/__pycache__/sage_helper.cpython-311.pyc +0 -0
  322. snappy/__pycache__/version.cpython-311.pyc +0 -0
  323. snappy/doc/_sources/verify_canon.rst.txt +0 -90
  324. snappy/doc/_static/jquery-3.6.0.js +0 -10881
  325. snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
  326. snappy/doc/_static/js/html5shiv.min.js +0 -4
  327. snappy/doc/_static/underscore-1.13.1.js +0 -2042
  328. snappy/doc/_static/underscore.js +0 -6
  329. snappy/doc/verify_canon.html +0 -304
  330. snappy/drilling/__pycache__/__init__.cpython-311.pyc +0 -0
  331. snappy/drilling/__pycache__/constants.cpython-311.pyc +0 -0
  332. snappy/drilling/__pycache__/crush.cpython-311.pyc +0 -0
  333. snappy/drilling/__pycache__/cusps.cpython-311.pyc +0 -0
  334. snappy/drilling/__pycache__/debug.cpython-311.pyc +0 -0
  335. snappy/drilling/__pycache__/epsilons.cpython-311.pyc +0 -0
  336. snappy/drilling/__pycache__/exceptions.cpython-311.pyc +0 -0
  337. snappy/drilling/__pycache__/fixed_points.cpython-311.pyc +0 -0
  338. snappy/drilling/__pycache__/geodesic_info.cpython-311.pyc +0 -0
  339. snappy/drilling/__pycache__/geodesic_tube.cpython-311.pyc +0 -0
  340. snappy/drilling/__pycache__/geometric_structure.cpython-311.pyc +0 -0
  341. snappy/drilling/__pycache__/line.cpython-311.pyc +0 -0
  342. snappy/drilling/__pycache__/moves.cpython-311.pyc +0 -0
  343. snappy/drilling/__pycache__/peripheral_curves.cpython-311.pyc +0 -0
  344. snappy/drilling/__pycache__/perturb.cpython-311.pyc +0 -0
  345. snappy/drilling/__pycache__/quotient_space.cpython-311.pyc +0 -0
  346. snappy/drilling/__pycache__/spatial_dict.cpython-311.pyc +0 -0
  347. snappy/drilling/__pycache__/subdivide.cpython-311.pyc +0 -0
  348. snappy/drilling/__pycache__/tracing.cpython-311.pyc +0 -0
  349. snappy/drilling/geodesic_tube.py +0 -441
  350. snappy/drilling/geometric_structure.py +0 -366
  351. snappy/drilling/line.py +0 -122
  352. snappy/drilling/quotient_space.py +0 -94
  353. snappy/drilling/spatial_dict.py +0 -128
  354. snappy/exterior_to_link/__pycache__/__init__.cpython-311.pyc +0 -0
  355. snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-311.pyc +0 -0
  356. snappy/exterior_to_link/__pycache__/exceptions.cpython-311.pyc +0 -0
  357. snappy/exterior_to_link/__pycache__/hyp_utils.cpython-311.pyc +0 -0
  358. snappy/exterior_to_link/__pycache__/link_projection.cpython-311.pyc +0 -0
  359. snappy/exterior_to_link/__pycache__/main.cpython-311.pyc +0 -0
  360. snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-311.pyc +0 -0
  361. snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-311.pyc +0 -0
  362. snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-311.pyc +0 -0
  363. snappy/exterior_to_link/__pycache__/pl_utils.cpython-311.pyc +0 -0
  364. snappy/exterior_to_link/__pycache__/put_in_S3.cpython-311.pyc +0 -0
  365. snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-311.pyc +0 -0
  366. snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-311.pyc +0 -0
  367. snappy/exterior_to_link/__pycache__/stored_moves.cpython-311.pyc +0 -0
  368. snappy/hyperboloid/__pycache__/__init__.cpython-311.pyc +0 -0
  369. snappy/manifolds/__pycache__/__init__.cpython-311.pyc +0 -0
  370. snappy/ptolemy/__pycache__/__init__.cpython-311.pyc +0 -0
  371. snappy/ptolemy/__pycache__/component.cpython-311.pyc +0 -0
  372. snappy/ptolemy/__pycache__/coordinates.cpython-311.pyc +0 -0
  373. snappy/ptolemy/__pycache__/fieldExtensions.cpython-311.pyc +0 -0
  374. snappy/ptolemy/__pycache__/findLoops.cpython-311.pyc +0 -0
  375. snappy/ptolemy/__pycache__/homology.cpython-311.pyc +0 -0
  376. snappy/ptolemy/__pycache__/manifoldMethods.cpython-311.pyc +0 -0
  377. snappy/ptolemy/__pycache__/matrix.cpython-311.pyc +0 -0
  378. snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-311.pyc +0 -0
  379. snappy/ptolemy/__pycache__/polynomial.cpython-311.pyc +0 -0
  380. snappy/ptolemy/__pycache__/processComponents.cpython-311.pyc +0 -0
  381. snappy/ptolemy/__pycache__/processFileBase.cpython-311.pyc +0 -0
  382. snappy/ptolemy/__pycache__/processFileDispatch.cpython-311.pyc +0 -0
  383. snappy/ptolemy/__pycache__/processMagmaFile.cpython-311.pyc +0 -0
  384. snappy/ptolemy/__pycache__/processRurFile.cpython-311.pyc +0 -0
  385. snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-311.pyc +0 -0
  386. snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-311.pyc +0 -0
  387. snappy/ptolemy/__pycache__/ptolemyVariety.cpython-311.pyc +0 -0
  388. snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
  389. snappy/ptolemy/__pycache__/rur.cpython-311.pyc +0 -0
  390. snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
  391. snappy/ptolemy/__pycache__/utilities.cpython-311.pyc +0 -0
  392. snappy/snap/__pycache__/__init__.cpython-311.pyc +0 -0
  393. snappy/snap/__pycache__/character_varieties.cpython-311.pyc +0 -0
  394. snappy/snap/__pycache__/fundamental_polyhedron.cpython-311.pyc +0 -0
  395. snappy/snap/__pycache__/interval_reps.cpython-311.pyc +0 -0
  396. snappy/snap/__pycache__/kernel_structures.cpython-311.pyc +0 -0
  397. snappy/snap/__pycache__/mcomplex_base.cpython-311.pyc +0 -0
  398. snappy/snap/__pycache__/nsagetools.cpython-311.pyc +0 -0
  399. snappy/snap/__pycache__/polished_reps.cpython-311.pyc +0 -0
  400. snappy/snap/__pycache__/shapes.cpython-311.pyc +0 -0
  401. snappy/snap/__pycache__/slice_obs_HKL.cpython-311.pyc +0 -0
  402. snappy/snap/__pycache__/utilities.cpython-311.pyc +0 -0
  403. snappy/snap/peripheral/__pycache__/__init__.cpython-311.pyc +0 -0
  404. snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-311.pyc +0 -0
  405. snappy/snap/peripheral/__pycache__/link.cpython-311.pyc +0 -0
  406. snappy/snap/peripheral/__pycache__/peripheral.cpython-311.pyc +0 -0
  407. snappy/snap/peripheral/__pycache__/surface.cpython-311.pyc +0 -0
  408. snappy/snap/t3mlite/__pycache__/__init__.cpython-311.pyc +0 -0
  409. snappy/snap/t3mlite/__pycache__/arrow.cpython-311.pyc +0 -0
  410. snappy/snap/t3mlite/__pycache__/corner.cpython-311.pyc +0 -0
  411. snappy/snap/t3mlite/__pycache__/edge.cpython-311.pyc +0 -0
  412. snappy/snap/t3mlite/__pycache__/face.cpython-311.pyc +0 -0
  413. snappy/snap/t3mlite/__pycache__/files.cpython-311.pyc +0 -0
  414. snappy/snap/t3mlite/__pycache__/homology.cpython-311.pyc +0 -0
  415. snappy/snap/t3mlite/__pycache__/linalg.cpython-311.pyc +0 -0
  416. snappy/snap/t3mlite/__pycache__/mcomplex.cpython-311.pyc +0 -0
  417. snappy/snap/t3mlite/__pycache__/perm4.cpython-311.pyc +0 -0
  418. snappy/snap/t3mlite/__pycache__/simplex.cpython-311.pyc +0 -0
  419. snappy/snap/t3mlite/__pycache__/spun.cpython-311.pyc +0 -0
  420. snappy/snap/t3mlite/__pycache__/surface.cpython-311.pyc +0 -0
  421. snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-311.pyc +0 -0
  422. snappy/snap/t3mlite/__pycache__/vertex.cpython-311.pyc +0 -0
  423. snappy/togl/__init__.py +0 -3
  424. snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
  425. snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
  426. snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  427. snappy/togl/darwin-tk8.7/Togl2.1/LICENSE +0 -28
  428. snappy/togl/darwin-tk8.7/Togl2.1/libTogl2.1.dylib +0 -0
  429. snappy/togl/darwin-tk8.7/Togl2.1/pkgIndex.tcl +0 -5
  430. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  431. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
  432. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  433. snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
  434. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
  435. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
  436. snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  437. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  438. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
  439. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
  440. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  441. snappy/twister/__pycache__/__init__.cpython-311.pyc +0 -0
  442. snappy/twister/__pycache__/main.cpython-311.pyc +0 -0
  443. snappy/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
  444. snappy/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
  445. snappy/verify/__pycache__/__init__.cpython-311.pyc +0 -0
  446. snappy/verify/__pycache__/cuspCrossSection.cpython-311.pyc +0 -0
  447. snappy/verify/__pycache__/cuspTranslations.cpython-311.pyc +0 -0
  448. snappy/verify/__pycache__/cusp_areas.cpython-311.pyc +0 -0
  449. snappy/verify/__pycache__/cusp_shapes.cpython-311.pyc +0 -0
  450. snappy/verify/__pycache__/exceptions.cpython-311.pyc +0 -0
  451. snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-311.pyc +0 -0
  452. snappy/verify/__pycache__/interval_tree.cpython-311.pyc +0 -0
  453. snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-311.pyc +0 -0
  454. snappy/verify/__pycache__/realAlgebra.cpython-311.pyc +0 -0
  455. snappy/verify/__pycache__/shapes.cpython-311.pyc +0 -0
  456. snappy/verify/__pycache__/short_slopes.cpython-311.pyc +0 -0
  457. snappy/verify/__pycache__/squareExtensions.cpython-311.pyc +0 -0
  458. snappy/verify/__pycache__/verifyCanonical.cpython-311.pyc +0 -0
  459. snappy/verify/__pycache__/verifyHyperbolicity.cpython-311.pyc +0 -0
  460. snappy/verify/__pycache__/volume.cpython-311.pyc +0 -0
  461. snappy/verify/complex_volume/__pycache__/__init__.cpython-311.pyc +0 -0
  462. snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-311.pyc +0 -0
  463. snappy/verify/complex_volume/__pycache__/closed.cpython-311.pyc +0 -0
  464. snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-311.pyc +0 -0
  465. snappy/verify/complex_volume/__pycache__/cusped.cpython-311.pyc +0 -0
  466. snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-311.pyc +0 -0
  467. snappy/verify/cuspCrossSection.py +0 -1422
  468. snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-311.pyc +0 -0
  469. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-311.pyc +0 -0
  470. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-311.pyc +0 -0
  471. snappy/verify/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
  472. snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-311.pyc +0 -0
  473. snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-311.pyc +0 -0
  474. snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
  475. snappy-3.1.1.dist-info/RECORD +0 -575
  476. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
@@ -1,264 +1,247 @@
1
- .. Installing SnapPy
2
-
3
- Installing SnapPy
4
- =================
5
-
6
- Here are detailed instructions on how to get SnapPy working on a
7
- variety of platforms. The current version is |release| which was released
8
- on |release_date|. If you encounter problems installing SnapPy,
9
- :doc:`please let us know <bugs>`.
10
-
11
- macOS
12
- -----
13
-
14
- Simply download `SnapPy.dmg
15
- <https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy.dmg>`_
16
- and copy SnapPy.app to the Applications folder. Double-click to start
17
- it, just like any other application. Works with macOS/OS X 10.9 and
18
- newer. Earlier releases `can be found here
19
- <https://github.com/3-manifolds/SnapPy/releases/>`_.
20
-
21
- Windows
22
- -------
23
-
24
- Simply download and run `InstallSnapPy.exe
25
- <https://github.com/3-manifolds/SnapPy/releases/latest/download/InstallSnapPy.exe>`_.
26
- Earlier releases `can be found here
27
- <https://github.com/3-manifolds/SnapPy/releases/>`_.
28
-
29
-
30
- Linux
31
- -----
32
-
33
- Here are short recipes which work on most Linux systems, specifically
34
- those that run a 64-bit kernel and have Python 3.6 or newer. These
35
- instructions assume you have system administrator (superuser)
36
- privileges to install software packages from your Linux distribution
37
- but want to install SnapPy (and its various Python dependencies) just
38
- in your own user directory, specifically ``~/.local``. For other
39
- Linux systems, try the one closest to yours below, and if that fails,
40
- follow the instructions for `generic Unix`_.
41
-
42
- + **Ubuntu/Debian/Mint**: Tested on Ubuntu 20.04::
43
-
44
- sudo apt-get install python3-tk python3-pip
45
- # Note no "sudo" on the next one!
46
- python3 -m pip install --upgrade --user snappy
47
-
48
- Users of Ubuntu 18.04 or older should do::
49
-
50
- sudo apt-get install python3-tk python3-pip
51
- # Note no "sudo" on the next two
52
- python3 -m pip install --upgrade --user pip wheel
53
- python3 -m pip install --upgrade --user snappy
54
-
55
- + **Fedora**: Tested on Fedora 30::
56
-
57
- sudo yum install python3-tkinter python3-pip
58
- # Note no "sudo" on the next one!
59
- python3 -m pip install --upgrade --user snappy
60
-
61
- + **Red Hat Enterprise Linux/CentOS/SciLinux**: These instructions
62
- are for version 7 or later, and you need to have the `EPEL packages
63
- available
64
- <https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F>`_.
65
- For CentOS and SciLinux, you can access EPEL packages by doing::
66
-
67
- sudo yum install epel-release
68
-
69
- Now install via::
70
-
71
- sudo yum install python36-tkinter python36-pip
72
- # Note no "sudo" on the next one!
73
- python36 -m pip install --upgrade --user snappy
74
-
75
- + **Arch/Manjaro**: Install via::
76
-
77
- sudo pacman -Sy python-pip tk
78
- # Note no "sudo" on the next one!
79
- python -m pip install --upgrade --user snappy
80
-
81
- + **openSUSE**: Install via::
82
-
83
- sudo zypper install -y python3-tk python3-pip
84
- # Note no "sudo" on the next one!
85
- python3 -m pip install --upgrade --user snappy
86
-
87
- If you want the larger version of HTLinkExteriors that includes the 15
88
- crossing knots (uses 110M of disk space), also install the Python
89
- package ``snappy_15_knots``, e.g. on Ubuntu do::
90
-
91
- python3 -m pip install --upgrade --user snappy_15_knots
92
-
93
- Once you have installed SnapPy, do the following to start it::
94
-
95
- ~/.local/bin/SnapPy
96
-
97
- You may get a message about creating a ".ipython" directory; this is
98
- normal, just hit return to continue. There should also now be a
99
- command "SnapPy" which does the same thing. To make it so that you
100
- can start SnapPy with just the command ``SnapPy``, make sure
101
- ``~/.local/bin`` is in `in your path
102
- <https://opensource.com/article/17/6/set-path-linux>`_.
103
-
104
-
105
- Python Modules for Macintosh or Windows
106
- ---------------------------------------
107
-
108
- If you write Python programs on a Macintosh or Windows system, you may
109
- wish to install SnapPy as a Python module into your own copy of
110
- Python. We support Python 3.6 and up. (On macOS, use a Python
111
- downloaded from `Python.org <http://python.org>`_ and not the one
112
- provided by Apple.) After installing Python, you may install a SnapPy
113
- module from your Terminal application or Command Prompt with the
114
- commands::
115
-
116
- python3 -m pip install --upgrade --user snappy
117
-
118
- If you want the larger version of HTLinkExteriors that includes the 15
119
- crossing knots (uses 110M of disk space), do::
120
-
121
- python3 -m pip install --upgrade --user snappy_15_knots
122
-
123
- If you use Python 2 rather than Python 3, replace ``python3`` with
124
- ``python`` in the above. If your Python lacks the pip module, `get it
125
- here <https://pip.pypa.io/en/stable/installing/>`_.
126
-
127
-
128
- SageMath
129
- --------
130
-
131
- SnapPy has some special features when used within `SageMath
132
- <http://sagemath.org>`_, the universal mathematics software based on
133
- Python. This section describes how to install SnapPy into your
134
- existing copy of SageMath, but you may find it easier to use the
135
- `kitchen sink`_ approach instead. You can install it as a Sage
136
- optional package via the following if using Sage 6.4 or newer::
137
-
138
- sage -pip install snappy
139
- sage -pip install snappy_15_knots # Larger version of HTLinkExteriors
140
-
141
- If you are on macOS, we recommend use `this binary
142
- <https://github.com/3-manifolds/Sage_macOS/releases>`_.
143
-
144
- Alternatively, SageMath on `CoCalc <https://cocalc.com/>`_ (formerly
145
- the SageMathCloud) also has SnapPy preinstalled, and the graphics
146
- features even work via the `X11 interface
147
- <http://blog.sagemath.com/cocalc/2018/11/05/x11.html>`_, see the
148
- bottom of that page for more.
149
-
150
- If you previously installed SnapPy into SageMath and want to upgrade
151
- SnapPy to the latest version, do::
152
-
153
- sage -pip install --upgrade snappy
154
-
155
- If it has trouble when compiling CyOpenGL, you are probably missing
156
- the `"gl.h" headers <openglmesa>`. The graphical features may or may
157
- not work, depending on how Tkinter was configured within Sage, and may
158
- seem to "hang" when you try to start them. To deal with the latter
159
- issue type "%gui tk" at the Sage prompt; please note that doing so may
160
- break Sage's "attach" feature.
161
-
162
-
163
- Kitchen sink
164
- ------------
165
-
166
- SnapPy gains extra features when used in `SageMath`_ and one can use
167
- Sage's Python to interact not just with SnapPy but a range of other
168
- computational tools in low-dimensional topology including
169
- `Regina <http://regina-normal.github.io/>`_,
170
- `snap <http://snap-pari.sourceforge.net>`_,
171
- `heegaard <https://github.com/3-manifolds/heegaard>`_,
172
- `gridlink <https://github.com/3-manifolds/gridlink>`_,
173
- and `flipper <http://flipper.readthedocs.io>`_.
174
- We offer a `prepackaged Docker image
175
- <https://hub.docker.com/r/computop/sage/>`_ with all of the above tools
176
- and many more; using this is frequently the easiest way to get a
177
- working setup for such multifaceted computations. For more, watch
178
- `this demonstration <https://icerm.brown.edu/video_archive/?play=1992>`_.
179
-
180
- We also offer `conda environments
181
- <https://github.com/unhyperbolic/condaForSnapPy>`_ with SnapPy and
182
- optionally Sage (only on Mac OS and Linux). While it has none of the
183
- other aforementioned tools, it has the advantage that the GUI elements
184
- such as the link editor and the browser can be used directly.
185
-
186
-
187
- Generic Unix
188
- ------------
189
-
190
- If you use a Unix other than OS X or Linux, or if the prebuilt
191
- packages don't work for you, you'll need to build SnapPy from source.
192
- Here are some detailed instructions.
193
-
194
- Things you'll need:
195
-
196
- - Python 3 with Tkinter: You'll need to have `Python
197
- <http://python.org>`_ (version 3.6 or newer) and `Tk
198
- <http://tcl.tk>`_ (at least version 8.5) with `Tkinter
199
- <http://wiki.python.org/moin/TkInter>`_ to connect them, including
200
- the header files. For instance, on Debian or Ubuntu, install the
201
- packages "python3-tk", "python3-pip", and "python3-dev". On Fedora,
202
- you'll want e.g. "python3-tkinter", "python3-pip", and
203
- "python3-devel", and "python3-wheel".
204
-
205
- - Test that Python is in order by installing PLink from source::
206
-
207
- python3 -m pip install --user plink
208
- python3 -m plink.app # Should start the link editor!
209
-
210
- .. _openglmesa:
211
-
212
- - Support for OpenGL (3D graphics): This is built in on OS X and the
213
- most installations of Fedora and Ubuntu. But you'll need the `MESA
214
- <http://www.mesa3d.org/>`_ header files "gl.h" and "glu.h" to compile
215
- SnapPy. On Debian and Ubuntu, install "libglu1-mesa-dev"; On Fedora install
216
- "mesa-libGLU-devel".
217
-
218
- - `Cython <http://cython.org>`_, which you can install via::
219
-
220
- python3 -m pip install --user cython
221
-
222
- - The gcc C++ compiler, g++.
223
-
224
- - `CyPari <https://pypi.python.org/pypi/cypari/>`_: a stand-alone version of
225
- `Sage's <http://sagemath.org>`_ Python interface to the
226
- `PARI <http://pari.math.u-bordeaux.fr/PARI>`_ number theory
227
- library. Usually, you can install this with::
228
-
229
- python3 -m pip install --user cypari
230
-
231
- Now download the `source code`_ listed below, for instance
232
-
233
- .. parsed-literal::
234
-
235
- wget https://pypi.python.org/packages/source/s/snappy/|tarball|
236
- tar xfz |tarball|; cd snappy-*
237
-
238
- There is one more dependency that may need to be dealt with:
239
-
240
- - `Togl <http://togl.sf.net>`_: a 3d widget for Tk. For OS X and
241
- Linux, there are pre-built binaries of this in the snappy
242
- subdirectory, e.g. snappy/linux2-tk8.4. For Linux these are built
243
- for 64-bit kernels, and should work on most systems. If they don't,
244
- you'll need to edit or follow "build_togl.sh" to build Togl directly.
245
-
246
- Finally, compile and install the SnapPy module (which will install
247
- certain other dependencies) and test::
248
-
249
- python3 setup.py build
250
- python3 -m pip install --user .
251
- python3 -m snappy.test
252
- python3 -m snappy.app
253
-
254
-
255
- Source code
256
- -----------
257
-
258
- The complete source code for all platforms: |tarball|_
259
-
260
- You can also browse our `source code repository
261
- <https://github.com/3-manifolds/SnapPy>`_ or clone it using `git
262
- <https://git-scm.com/>`_ via::
263
-
264
- git clone https://github.com/3-manifolds/SnapPy.git
1
+ .. Installing SnapPy
2
+
3
+ Installing SnapPy
4
+ =================
5
+
6
+ Here are detailed instructions on how to get SnapPy working on a
7
+ variety of platforms. The current version is |release| which was released
8
+ on |release_date|. If you encounter any problems installing SnapPy,
9
+ :doc:`please let us know <bugs>`.
10
+
11
+ macOS
12
+ -----
13
+
14
+ Simply download `SnapPy.dmg
15
+ <https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy.dmg>`_
16
+ and copy SnapPy.app to the Applications folder. Double-click to start
17
+ it, just like any other application. The current version works with macOS 10.14 and
18
+ newer and earlier releases `can be found here
19
+ <https://github.com/3-manifolds/SnapPy/releases/>`_.
20
+
21
+ Windows
22
+ -------
23
+
24
+ Simply download and run `InstallSnapPy.exe
25
+ <https://github.com/3-manifolds/SnapPy/releases/latest/download/InstallSnapPy.exe>`_.
26
+ Earlier releases `can be found here
27
+ <https://github.com/3-manifolds/SnapPy/releases/>`_.
28
+
29
+
30
+ Linux app
31
+ ---------
32
+
33
+ Starting with SnapPy 3.2, a completely self-contained SnapPy `AppImage
34
+ <https://docs.appimage.org/introduction/quickstart.html#ref-quickstart>`_
35
+ is available that should work on any Linux system from the last 5
36
+ years. This AppImage contains its own private copy of Python, so if
37
+ you plan to use SnapPy in your own Python programs, skip ahead to
38
+ `Python Modules for Linux`_. Here is the recipe for installing the
39
+ AppImage in ``~/bin`` after you have downloaded the file
40
+ `SnapPy-x86_64.AppImage
41
+ <https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy-x86_64.AppImage.>`_::
42
+
43
+ mkdir -p ~/bin
44
+ mv ~/Downloads/SnapPy-x86_64.AppImage ~/bin
45
+ chmod +x ~/bin/SnapPy-x86_64.AppImage
46
+ ln -s -f ~/bin/SnapPy-x86_64.AppImage ~/bin/SnapPy
47
+ ~/bin/SnapPy-x86_64.AppImage --install
48
+
49
+ The last command registers the SnapPy app with your desktop system and
50
+ starts it. Next time, you can start SnapPy by using the desktop
51
+ search tool with GNOME or the main menu with KDE. You can pin also the icon
52
+ to your dash or task bar for easy access. From a terminal window, you
53
+ can also start the app by typing ``SnapPy`` provided ``~/bin`` is in
54
+ your `$PATH <https://opensource.com/article/17/6/set-path-linux>`_.
55
+
56
+
57
+ Python Modules for macOS or Windows
58
+ -----------------------------------
59
+
60
+ If you write Python programs on macOS or Windows, you may wish to
61
+ install SnapPy as a Python module into your own copy of Python. We
62
+ support Python 3.9 and up. (On macOS, use a Python downloaded from
63
+ `Python.org <http://python.org>`_ and not the one provided by Apple.)
64
+ After installing Python, you may install a SnapPy module from your
65
+ Terminal application or Command Prompt with the command::
66
+
67
+ python3 -m pip install --upgrade --user snappy snappy_15_knots
68
+
69
+ If you do not want the larger version of HTLinkExteriors that includes
70
+ the 15 crossing knots (it uses 110M of disk space), omit
71
+ ``snappy_15_knots`` from the command.
72
+
73
+
74
+ Python Modules for Linux
75
+ ------------------------
76
+
77
+ You can also use SnapPy with your Linux system's version of Python,
78
+ for example if you want to incorporate SnapPy in your own Python
79
+ scripts. These instructions assume you have system administrator
80
+ (superuser) privileges to install software packages from your Linux
81
+ distribution. (If you're not a superuser, use either the
82
+ `Linux app`_ or `conda`_.)
83
+
84
+ The first step is to install Python and other requirements; here's how
85
+ to do that on the most popular Linux distributions:
86
+
87
+ + **Ubuntu/Debian/Mint/MX Linux/Elementary:** Tested on Ubuntu 24.04::
88
+
89
+ sudo apt install python3-pip python3-tk
90
+
91
+ + **Fedora**: Tested on Fedora 41::
92
+
93
+ sudo dnf install python3-pip python3-tkinter
94
+
95
+ + **Arch/Manjaro/EndeavourOS**: Install via::
96
+
97
+ sudo pacman -Sy python-pip tk
98
+
99
+ + **openSUSE**: For Tumbleweed::
100
+
101
+ sudo zypper install python3-pip python3-tk
102
+
103
+ For Leap, as of version 15.6 you need to ask for a recent version of
104
+ Python or it will give you Python 3.6 which is too old for SnapPy::
105
+
106
+ sudo zypper install python312-pip python312-tk
107
+
108
+ You will need to replace ``python3`` by ``python3.12`` in subsequent
109
+ steps.
110
+
111
+ + **Red Hat Enterprise Linux/CentOS/Rocky Linux/AlmaLinux:**: These instructions
112
+ are for version 8 or later; tested on AlmaLinux 8 and 9::
113
+
114
+ sudo dnf install python3.11-pip python3.11-tkinter
115
+
116
+ You will also need to replace ``python3`` by ``python3.11`` in subsequent
117
+ steps.
118
+
119
+
120
+ Next, you need to install the SnapPy Python modules. For this, you can
121
+ either use a *virtual environment* (``python -m venv``) or do a *user
122
+ install* (``pip install --user``). The former will work on any
123
+ version of Linux, whereas the latter is now strongly discouraged on
124
+ many systems (e.g. Ubuntu 24.04). If you have not previously
125
+ installed SnapPy on this computer, we recommend using a virtual
126
+ environment, but suggest a user install if you are upgrading an
127
+ existing version of SnapPy that was installed in that manner.
128
+
129
+ Virtual environment
130
+ Here is the `official tutorial
131
+ <https://docs.python.org/3/tutorial/venv.html>`_ on using virtual
132
+ environments in Python and an `in-depth article
133
+ <https://realpython.com/python-virtual-environments-a-primer/>`_. A
134
+ recipe is::
135
+
136
+ python3 -m venv snappy_venv
137
+ # Switch to snappy_venv's Python
138
+ source snappy_venv/bin/activate
139
+ pip install snappy snappy_15_knots
140
+ # Start the SnapPy app!
141
+ SnapPy
142
+ # Return to system Python
143
+ deactivate
144
+
145
+ If you always want to use the ``snappy_venv`` Python, adjust your
146
+ `$PATH <https://opensource.com/article/17/6/set-path-linux>`_ to
147
+ **start** with ``snappy_venv/bin``.
148
+
149
+ User install
150
+ To do a user install with pip, try::
151
+
152
+ # Note no "sudo" below!
153
+ python3 -m pip install --upgrade --user snappy snappy_15_knots
154
+
155
+ If you get a long error message that starts::
156
+
157
+ error: externally-managed-environment
158
+
159
+ you should probably use a virtual environment; however,
160
+ you can force pip to do a user install via::
161
+
162
+ # Note no "sudo" below!
163
+ python3 -m pip install --upgrade --user --break-system-packages snappy snappy_15_knots
164
+
165
+ Despite the scary name, provided you don't use ``sudo``, this will
166
+ not actually modify the system packages, but rather install
167
+ ``snappy`` into the subdirectory
168
+ ``~/.local/share/python3.*/site-packages`` of your home directory.
169
+
170
+ After a user install, you run the following command to start
171
+ the app::
172
+
173
+ ~/.local/bin/SnapPy
174
+
175
+ So that you can start SnapPy with just the command ``SnapPy``, make
176
+ sure ``~/.local/bin`` is in `in your path
177
+ <https://opensource.com/article/17/6/set-path-linux>`_.
178
+
179
+
180
+ SageMath
181
+ --------
182
+
183
+ SnapPy has some special features when used within `SageMath
184
+ <http://sagemath.org>`_, the universal mathematics software based on
185
+ Python. This section describes how to install SnapPy into your
186
+ existing copy of SageMath::
187
+
188
+ sage -pip install --upgrade snappy snappy_15_knots
189
+
190
+ Alternatively, SageMath on `CoCalc <https://cocalc.com/>`_ (formerly
191
+ the SageMathCloud) also has SnapPy preinstalled, and the graphics
192
+ features even work via the `X11 interface
193
+ <http://blog.sagemath.com/cocalc/2018/11/05/x11.html>`_, see the
194
+ bottom of that page for more.
195
+
196
+ The graphical features may or may not work, depending on how Tkinter
197
+ was configured within Sage. (There is no problem on macOS if you use
198
+ this `SageMath binary
199
+ <https://github.com/3-manifolds/Sage_macOS/releases>`_.) If the
200
+ graphical features seem to "hang" when you try to start them, type
201
+ ``%gui tk`` at the Sage prompt; please note that doing so may break
202
+ Sage's "attach" feature.
203
+
204
+
205
+ Kitchen sink
206
+ ------------
207
+
208
+ SnapPy gains extra features when used in `SageMath`_ and one can use
209
+ Sage's Python to interact not just with SnapPy but a range of other
210
+ computational tools in low-dimensional topology including
211
+ `Regina <http://regina-normal.github.io/>`_,
212
+ `snap <http://snap-pari.sourceforge.net>`_,
213
+ `heegaard <https://github.com/3-manifolds/heegaard>`_,
214
+ `gridlink <https://github.com/3-manifolds/gridlink>`_,
215
+ and `flipper <http://flipper.readthedocs.io>`_.
216
+ We offer a `prepackaged Docker image
217
+ <https://hub.docker.com/r/computop/sage/>`_ with all of the above tools
218
+ and many more; using this is sometimes the easiest way to get a
219
+ working setup for such multifaceted computations, especially on Windows. For more, watch
220
+ `this demonstration <https://icerm.brown.edu/video_archive/?play=1992>`_.
221
+
222
+
223
+ Conda
224
+ -----
225
+
226
+ Conda can be used to install Python on all platforms and is a
227
+ particularly good choice to use SnapPy on the older Linux systems
228
+ often found on high-performance clusters. Here is a recipe for
229
+ installing SnapPy into a new conda environment on macOS or Linux::
230
+
231
+ source ~/miniforge3/bin/activate
232
+ mamba create --name snappy_env python=3.12
233
+ conda activate snappy_env
234
+ pip install snappy
235
+ python -m snappy.app
236
+
237
+
238
+ Source code
239
+ -----------
240
+
241
+ The complete source code for all platforms: |tarball|_
242
+
243
+ You can also browse our `source code repository
244
+ <https://github.com/3-manifolds/SnapPy>`_ or clone it using `git
245
+ <https://git-scm.com/>`_ via::
246
+
247
+ git clone https://github.com/3-manifolds/SnapPy.git
@@ -1,6 +1,6 @@
1
- Manifold: the main class
2
- ========================
3
-
4
- .. autoclass:: snappy.Manifold
5
- :members:
6
- :inherited-members:
1
+ Manifold: the main class
2
+ ========================
3
+
4
+ .. autoclass:: snappy.Manifold
5
+ :members:
6
+ :inherited-members:
@@ -1,46 +1,46 @@
1
- ManifoldHP: High-precision variant
2
- ==================================================
3
-
4
- A ManifoldHP is a variant of :class:`Manifold <snappy.Manifold>` which
5
- does all floating-point calculations in `quad-double precision
6
- <http://web.mit.edu/tabbott/Public/quaddouble-debian/qd-2.3.4-old/docs/qd.pdf>`_,
7
- which has four times as many significant digits as the ordinary
8
- `double precision numbers
9
- <http://en.wikipedia.org/wiki/Double_precision_floating-point_format>`_
10
- used by Manifold. More precisely, numbers used in ManifoldHP have 212
11
- bits for the mantissa/significand (roughly 63 decimal digits) versus
12
- 53 bits with Manifold.
13
-
14
- To the user, the only difference between Manifold and ManifoldHP is the extra precision::
15
-
16
- >>> L = Manifold('m004')
17
- >>> L.volume()
18
- 2.02988321282
19
- >>> H = ManifoldHP('m004')
20
- >>> H.volume()
21
- 2.029883212819307250042405108549040571883378615060599584034978214
22
-
23
- and it is easy to go back and forth between the two types::
24
-
25
- >>> D = H.low_precision()
26
- >>> D.volume(), type(D)
27
- (2.02988321282, <class 'snappy.Manifold'>)
28
- >>> U = L.high_precision()
29
- >>> type(U)
30
- <class 'snappy.ManifoldHP'>
31
-
32
- FAQ
33
- ---
34
-
35
- Q. How does this differ from the program `Snap <http://snap-pari.sourceforge.net/>`_ or the :doc:`corresponding features <snap>` of SnapPy?
36
-
37
- A. Snap computes hyperbolic structures to whatever precision you specify, not just 212 bits. However, only some aspects of that structure can be accessed at the higher precision. In contrast, with ManifoldHP every part of the SnapPea kernel uses the high-precision structure. Eventually, we hope to add a ManifoldAP which allows for arbitrary precision throughout the kernel.
38
-
39
- Q. Are there any negatives to using ManifoldHP over Manifold?
40
-
41
- A. Yes, ManifoldHP is generally slower by a factor of 10 to 100. Multiplying two quad-double numbers requires at least 10 ordinary double multiplications, so some of this is inevitable.
42
-
43
- Q. What is one place where the extra precision really helps?
44
-
45
- A. Computing Dirichlet domains and subsidiary things like the length spectrum. A ManifoldHP can find the Dirichlet domain of a typically 15 crossing knot exterior but Manifold can't.
46
-
1
+ ManifoldHP: High-precision variant
2
+ ==================================================
3
+
4
+ A ManifoldHP is a variant of :class:`Manifold <snappy.Manifold>` which
5
+ does all floating-point calculations in `quad-double precision
6
+ <http://web.mit.edu/tabbott/Public/quaddouble-debian/qd-2.3.4-old/docs/qd.pdf>`_,
7
+ which has four times as many significant digits as the ordinary
8
+ `double precision numbers
9
+ <http://en.wikipedia.org/wiki/Double_precision_floating-point_format>`_
10
+ used by Manifold. More precisely, numbers used in ManifoldHP have 212
11
+ bits for the mantissa/significand (roughly 63 decimal digits) versus
12
+ 53 bits with Manifold.
13
+
14
+ To the user, the only difference between Manifold and ManifoldHP is the extra precision::
15
+
16
+ >>> L = Manifold('m004')
17
+ >>> L.volume()
18
+ 2.02988321282
19
+ >>> H = ManifoldHP('m004')
20
+ >>> H.volume()
21
+ 2.029883212819307250042405108549040571883378615060599584034978214
22
+
23
+ and it is easy to go back and forth between the two types::
24
+
25
+ >>> D = H.low_precision()
26
+ >>> D.volume(), type(D)
27
+ (2.02988321282, <class 'snappy.Manifold'>)
28
+ >>> U = L.high_precision()
29
+ >>> type(U)
30
+ <class 'snappy.ManifoldHP'>
31
+
32
+ FAQ
33
+ ---
34
+
35
+ Q. How does this differ from the program `Snap <http://snap-pari.sourceforge.net/>`_ or the :doc:`corresponding features <snap>` of SnapPy?
36
+
37
+ A. Snap computes hyperbolic structures to whatever precision you specify, not just 212 bits. However, only some aspects of that structure can be accessed at the higher precision. In contrast, with ManifoldHP every part of the SnapPea kernel uses the high-precision structure. Eventually, we hope to add a ManifoldAP which allows for arbitrary precision throughout the kernel.
38
+
39
+ Q. Are there any negatives to using ManifoldHP over Manifold?
40
+
41
+ A. Yes, ManifoldHP is generally slower by a factor of 10 to 100. Multiplying two quad-double numbers requires at least 10 ordinary double multiplications, so some of this is inevitable.
42
+
43
+ Q. What is one place where the extra precision really helps?
44
+
45
+ A. Computing Dirichlet domains and subsidiary things like the length spectrum. A ManifoldHP can find the Dirichlet domain of a typically 15 crossing knot exterior but Manifold can't.
46
+