snappy 3.1.1__cp38-cp38-win_amd64.whl → 3.2__cp38-cp38-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. snappy/CyOpenGL.cp38-win_amd64.pyd +0 -0
  2. snappy/SnapPy.cp38-win_amd64.pyd +0 -0
  3. snappy/SnapPyHP.cp38-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.cp38-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 +14 -10
  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-38.pyc +0 -0
  305. snappy/__pycache__/browser.cpython-38.pyc +0 -0
  306. snappy/__pycache__/cache.cpython-38.pyc +0 -0
  307. snappy/__pycache__/database.cpython-38.pyc +0 -0
  308. snappy/__pycache__/db_utilities.cpython-38.pyc +0 -0
  309. snappy/__pycache__/decorated_isosig.cpython-38.pyc +0 -0
  310. snappy/__pycache__/exceptions.cpython-38.pyc +0 -0
  311. snappy/__pycache__/export_stl.cpython-38.pyc +0 -0
  312. snappy/__pycache__/filedialog.cpython-38.pyc +0 -0
  313. snappy/__pycache__/gui.cpython-38.pyc +0 -0
  314. snappy/__pycache__/horoviewer.cpython-38.pyc +0 -0
  315. snappy/__pycache__/math_basics.cpython-38.pyc +0 -0
  316. snappy/__pycache__/matrix.cpython-38.pyc +0 -0
  317. snappy/__pycache__/number.cpython-38.pyc +0 -0
  318. snappy/__pycache__/numeric_output_checker.cpython-38.pyc +0 -0
  319. snappy/__pycache__/pari.cpython-38.pyc +0 -0
  320. snappy/__pycache__/polyviewer.cpython-38.pyc +0 -0
  321. snappy/__pycache__/sage_helper.cpython-38.pyc +0 -0
  322. snappy/__pycache__/version.cpython-38.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-38.pyc +0 -0
  331. snappy/drilling/__pycache__/constants.cpython-38.pyc +0 -0
  332. snappy/drilling/__pycache__/crush.cpython-38.pyc +0 -0
  333. snappy/drilling/__pycache__/cusps.cpython-38.pyc +0 -0
  334. snappy/drilling/__pycache__/debug.cpython-38.pyc +0 -0
  335. snappy/drilling/__pycache__/epsilons.cpython-38.pyc +0 -0
  336. snappy/drilling/__pycache__/exceptions.cpython-38.pyc +0 -0
  337. snappy/drilling/__pycache__/fixed_points.cpython-38.pyc +0 -0
  338. snappy/drilling/__pycache__/geodesic_info.cpython-38.pyc +0 -0
  339. snappy/drilling/__pycache__/geodesic_tube.cpython-38.pyc +0 -0
  340. snappy/drilling/__pycache__/geometric_structure.cpython-38.pyc +0 -0
  341. snappy/drilling/__pycache__/line.cpython-38.pyc +0 -0
  342. snappy/drilling/__pycache__/moves.cpython-38.pyc +0 -0
  343. snappy/drilling/__pycache__/peripheral_curves.cpython-38.pyc +0 -0
  344. snappy/drilling/__pycache__/perturb.cpython-38.pyc +0 -0
  345. snappy/drilling/__pycache__/quotient_space.cpython-38.pyc +0 -0
  346. snappy/drilling/__pycache__/spatial_dict.cpython-38.pyc +0 -0
  347. snappy/drilling/__pycache__/subdivide.cpython-38.pyc +0 -0
  348. snappy/drilling/__pycache__/tracing.cpython-38.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-38.pyc +0 -0
  355. snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-38.pyc +0 -0
  356. snappy/exterior_to_link/__pycache__/exceptions.cpython-38.pyc +0 -0
  357. snappy/exterior_to_link/__pycache__/hyp_utils.cpython-38.pyc +0 -0
  358. snappy/exterior_to_link/__pycache__/link_projection.cpython-38.pyc +0 -0
  359. snappy/exterior_to_link/__pycache__/main.cpython-38.pyc +0 -0
  360. snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-38.pyc +0 -0
  361. snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-38.pyc +0 -0
  362. snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-38.pyc +0 -0
  363. snappy/exterior_to_link/__pycache__/pl_utils.cpython-38.pyc +0 -0
  364. snappy/exterior_to_link/__pycache__/put_in_S3.cpython-38.pyc +0 -0
  365. snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-38.pyc +0 -0
  366. snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-38.pyc +0 -0
  367. snappy/exterior_to_link/__pycache__/stored_moves.cpython-38.pyc +0 -0
  368. snappy/hyperboloid/__pycache__/__init__.cpython-38.pyc +0 -0
  369. snappy/manifolds/__pycache__/__init__.cpython-38.pyc +0 -0
  370. snappy/ptolemy/__pycache__/__init__.cpython-38.pyc +0 -0
  371. snappy/ptolemy/__pycache__/component.cpython-38.pyc +0 -0
  372. snappy/ptolemy/__pycache__/coordinates.cpython-38.pyc +0 -0
  373. snappy/ptolemy/__pycache__/fieldExtensions.cpython-38.pyc +0 -0
  374. snappy/ptolemy/__pycache__/findLoops.cpython-38.pyc +0 -0
  375. snappy/ptolemy/__pycache__/homology.cpython-38.pyc +0 -0
  376. snappy/ptolemy/__pycache__/manifoldMethods.cpython-38.pyc +0 -0
  377. snappy/ptolemy/__pycache__/matrix.cpython-38.pyc +0 -0
  378. snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-38.pyc +0 -0
  379. snappy/ptolemy/__pycache__/polynomial.cpython-38.pyc +0 -0
  380. snappy/ptolemy/__pycache__/processComponents.cpython-38.pyc +0 -0
  381. snappy/ptolemy/__pycache__/processFileBase.cpython-38.pyc +0 -0
  382. snappy/ptolemy/__pycache__/processFileDispatch.cpython-38.pyc +0 -0
  383. snappy/ptolemy/__pycache__/processMagmaFile.cpython-38.pyc +0 -0
  384. snappy/ptolemy/__pycache__/processRurFile.cpython-38.pyc +0 -0
  385. snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-38.pyc +0 -0
  386. snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-38.pyc +0 -0
  387. snappy/ptolemy/__pycache__/ptolemyVariety.cpython-38.pyc +0 -0
  388. snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
  389. snappy/ptolemy/__pycache__/rur.cpython-38.pyc +0 -0
  390. snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-38.pyc +0 -0
  391. snappy/ptolemy/__pycache__/utilities.cpython-38.pyc +0 -0
  392. snappy/snap/__pycache__/__init__.cpython-38.pyc +0 -0
  393. snappy/snap/__pycache__/character_varieties.cpython-38.pyc +0 -0
  394. snappy/snap/__pycache__/fundamental_polyhedron.cpython-38.pyc +0 -0
  395. snappy/snap/__pycache__/interval_reps.cpython-38.pyc +0 -0
  396. snappy/snap/__pycache__/kernel_structures.cpython-38.pyc +0 -0
  397. snappy/snap/__pycache__/mcomplex_base.cpython-38.pyc +0 -0
  398. snappy/snap/__pycache__/nsagetools.cpython-38.pyc +0 -0
  399. snappy/snap/__pycache__/polished_reps.cpython-38.pyc +0 -0
  400. snappy/snap/__pycache__/shapes.cpython-38.pyc +0 -0
  401. snappy/snap/__pycache__/slice_obs_HKL.cpython-38.pyc +0 -0
  402. snappy/snap/__pycache__/utilities.cpython-38.pyc +0 -0
  403. snappy/snap/peripheral/__pycache__/__init__.cpython-38.pyc +0 -0
  404. snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-38.pyc +0 -0
  405. snappy/snap/peripheral/__pycache__/link.cpython-38.pyc +0 -0
  406. snappy/snap/peripheral/__pycache__/peripheral.cpython-38.pyc +0 -0
  407. snappy/snap/peripheral/__pycache__/surface.cpython-38.pyc +0 -0
  408. snappy/snap/t3mlite/__pycache__/__init__.cpython-38.pyc +0 -0
  409. snappy/snap/t3mlite/__pycache__/arrow.cpython-38.pyc +0 -0
  410. snappy/snap/t3mlite/__pycache__/corner.cpython-38.pyc +0 -0
  411. snappy/snap/t3mlite/__pycache__/edge.cpython-38.pyc +0 -0
  412. snappy/snap/t3mlite/__pycache__/face.cpython-38.pyc +0 -0
  413. snappy/snap/t3mlite/__pycache__/files.cpython-38.pyc +0 -0
  414. snappy/snap/t3mlite/__pycache__/homology.cpython-38.pyc +0 -0
  415. snappy/snap/t3mlite/__pycache__/linalg.cpython-38.pyc +0 -0
  416. snappy/snap/t3mlite/__pycache__/mcomplex.cpython-38.pyc +0 -0
  417. snappy/snap/t3mlite/__pycache__/perm4.cpython-38.pyc +0 -0
  418. snappy/snap/t3mlite/__pycache__/simplex.cpython-38.pyc +0 -0
  419. snappy/snap/t3mlite/__pycache__/spun.cpython-38.pyc +0 -0
  420. snappy/snap/t3mlite/__pycache__/surface.cpython-38.pyc +0 -0
  421. snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-38.pyc +0 -0
  422. snappy/snap/t3mlite/__pycache__/vertex.cpython-38.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-38.pyc +0 -0
  442. snappy/twister/__pycache__/main.cpython-38.pyc +0 -0
  443. snappy/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
  444. snappy/upper_halfspace/__pycache__/ideal_point.cpython-38.pyc +0 -0
  445. snappy/verify/__pycache__/__init__.cpython-38.pyc +0 -0
  446. snappy/verify/__pycache__/cuspCrossSection.cpython-38.pyc +0 -0
  447. snappy/verify/__pycache__/cuspTranslations.cpython-38.pyc +0 -0
  448. snappy/verify/__pycache__/cusp_areas.cpython-38.pyc +0 -0
  449. snappy/verify/__pycache__/cusp_shapes.cpython-38.pyc +0 -0
  450. snappy/verify/__pycache__/exceptions.cpython-38.pyc +0 -0
  451. snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-38.pyc +0 -0
  452. snappy/verify/__pycache__/interval_tree.cpython-38.pyc +0 -0
  453. snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-38.pyc +0 -0
  454. snappy/verify/__pycache__/realAlgebra.cpython-38.pyc +0 -0
  455. snappy/verify/__pycache__/shapes.cpython-38.pyc +0 -0
  456. snappy/verify/__pycache__/short_slopes.cpython-38.pyc +0 -0
  457. snappy/verify/__pycache__/squareExtensions.cpython-38.pyc +0 -0
  458. snappy/verify/__pycache__/verifyCanonical.cpython-38.pyc +0 -0
  459. snappy/verify/__pycache__/verifyHyperbolicity.cpython-38.pyc +0 -0
  460. snappy/verify/__pycache__/volume.cpython-38.pyc +0 -0
  461. snappy/verify/complex_volume/__pycache__/__init__.cpython-38.pyc +0 -0
  462. snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-38.pyc +0 -0
  463. snappy/verify/complex_volume/__pycache__/closed.cpython-38.pyc +0 -0
  464. snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-38.pyc +0 -0
  465. snappy/verify/complex_volume/__pycache__/cusped.cpython-38.pyc +0 -0
  466. snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-38.pyc +0 -0
  467. snappy/verify/cuspCrossSection.py +0 -1422
  468. snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-38.pyc +0 -0
  469. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-38.pyc +0 -0
  470. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-38.pyc +0 -0
  471. snappy/verify/upper_halfspace/__pycache__/__init__.cpython-38.pyc +0 -0
  472. snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-38.pyc +0 -0
  473. snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-38.pyc +0 -0
  474. snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-38.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,364 +1,346 @@
1
- <!DOCTYPE html>
2
- <html class="writer-html5" lang="en" >
3
- <head>
4
- <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
5
-
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>Installing SnapPy &mdash; SnapPy 3.1.1 documentation</title>
8
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
9
- <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
10
- <link rel="stylesheet" href="_static/snappy_sphinx_rtd_theme.css" type="text/css" />
11
- <link rel="shortcut icon" href="_static/SnapPy.ico"/>
12
- <!--[if lt IE 9]>
13
- <script src="_static/js/html5shiv.min.js"></script>
14
- <![endif]-->
15
-
16
- <script src="_static/jquery.js"></script>
17
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
18
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
19
- <script src="_static/doctools.js"></script>
20
- <script src="_static/sphinx_highlight.js"></script>
21
- <script src="_static/js/theme.js"></script>
22
- <link rel="index" title="Index" href="genindex.html" />
23
- <link rel="search" title="Search" href="search.html" />
24
- <link rel="next" title="Screenshots: SnapPy in action" href="screenshots.html" />
25
- <link rel="prev" title="SnapPy" href="index.html" />
26
- </head>
27
-
28
- <body class="wy-body-for-nav">
29
- <div class="wy-grid-for-nav">
30
- <nav data-toggle="wy-nav-shift" class="wy-nav-side">
31
- <div class="wy-side-scroll">
32
- <div class="wy-side-nav-search" >
33
-
34
-
35
-
36
- <a href="index.html" class="icon icon-home">
37
- SnapPy
38
- <img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
39
- </a>
40
- <div class="version">
41
- 3.1.1
42
- </div>
43
- <div role="search">
44
- <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
45
- <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
46
- <input type="hidden" name="check_keywords" value="yes" />
47
- <input type="hidden" name="area" value="default" />
48
- </form>
49
- </div>
50
- </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
51
- <ul class="current">
52
- <li class="toctree-l1 current"><a class="current reference internal" href="#">Installing SnapPy</a><ul>
53
- <li class="toctree-l2"><a class="reference internal" href="#macos">macOS</a></li>
54
- <li class="toctree-l2"><a class="reference internal" href="#windows">Windows</a></li>
55
- <li class="toctree-l2"><a class="reference internal" href="#linux">Linux</a></li>
56
- <li class="toctree-l2"><a class="reference internal" href="#python-modules-for-macintosh-or-windows">Python Modules for Macintosh or Windows</a></li>
57
- <li class="toctree-l2"><a class="reference internal" href="#sagemath">SageMath</a></li>
58
- <li class="toctree-l2"><a class="reference internal" href="#kitchen-sink">Kitchen sink</a></li>
59
- <li class="toctree-l2"><a class="reference internal" href="#generic-unix">Generic Unix</a></li>
60
- <li class="toctree-l2"><a class="reference internal" href="#source-code">Source code</a></li>
61
- </ul>
62
- </li>
63
- <li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
64
- <li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
65
- <li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
66
- <li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
67
- <li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
68
- <li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
69
- <li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
70
- <li class="toctree-l1"><a class="reference internal" href="other.html">Other components</a></li>
71
- <li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
72
- <li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
73
- <li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
74
- <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
75
- <li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
76
- </ul>
77
-
78
- </div>
79
- </div>
80
- </nav>
81
-
82
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
83
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
84
- <a href="index.html">SnapPy</a>
85
- </nav>
86
-
87
- <div class="wy-nav-content">
88
- <div class="rst-content">
89
- <div role="navigation" aria-label="Page navigation">
90
- <ul class="wy-breadcrumbs">
91
- <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
92
- <li class="breadcrumb-item active">Installing SnapPy</li>
93
- <li class="wy-breadcrumbs-aside">
94
- </li>
95
- </ul>
96
- <hr/>
97
- </div>
98
- <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
99
- <div itemprop="articleBody">
100
-
101
- <section id="installing-snappy">
102
- <h1>Installing SnapPy<a class="headerlink" href="#installing-snappy" title="Permalink to this heading"></a></h1>
103
- <p>Here are detailed instructions on how to get SnapPy working on a
104
- variety of platforms. The current version is 3.1.1 which was released
105
- on June 2023. If you encounter problems installing SnapPy,
106
- <a class="reference internal" href="bugs.html"><span class="doc">please let us know</span></a>.</p>
107
- <section id="macos">
108
- <h2>macOS<a class="headerlink" href="#macos" title="Permalink to this heading"></a></h2>
109
- <p>Simply download <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy.dmg">SnapPy.dmg</a>
110
- and copy SnapPy.app to the Applications folder. Double-click to start
111
- it, just like any other application. Works with macOS/OS X 10.9 and
112
- newer. Earlier releases <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/">can be found here</a>.</p>
113
- </section>
114
- <section id="windows">
115
- <h2>Windows<a class="headerlink" href="#windows" title="Permalink to this heading"></a></h2>
116
- <p>Simply download and run <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/latest/download/InstallSnapPy.exe">InstallSnapPy.exe</a>.
117
- Earlier releases <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/">can be found here</a>.</p>
118
- </section>
119
- <section id="linux">
120
- <h2>Linux<a class="headerlink" href="#linux" title="Permalink to this heading"></a></h2>
121
- <p>Here are short recipes which work on most Linux systems, specifically
122
- those that run a 64-bit kernel and have Python 3.6 or newer. These
123
- instructions assume you have system administrator (superuser)
124
- privileges to install software packages from your Linux distribution
125
- but want to install SnapPy (and its various Python dependencies) just
126
- in your own user directory, specifically <code class="docutils literal notranslate"><span class="pre">~/.local</span></code>. For other
127
- Linux systems, try the one closest to yours below, and if that fails,
128
- follow the instructions for <a class="reference internal" href="#generic-unix">generic Unix</a>.</p>
129
- <ul>
130
- <li><p><strong>Ubuntu/Debian/Mint</strong>: Tested on Ubuntu 20.04:</p>
131
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">tk</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span>
132
- <span class="c1"># Note no &quot;sudo&quot; on the next one!</span>
133
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span>
134
- </pre></div>
135
- </div>
136
- <p>Users of Ubuntu 18.04 or older should do:</p>
137
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">tk</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span>
138
- <span class="c1"># Note no &quot;sudo&quot; on the next two</span>
139
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">pip</span> <span class="n">wheel</span>
140
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span>
141
- </pre></div>
142
- </div>
143
- </li>
144
- <li><p><strong>Fedora</strong>: Tested on Fedora 30:</p>
145
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">yum</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">tkinter</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span>
146
- <span class="c1"># Note no &quot;sudo&quot; on the next one!</span>
147
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span>
148
- </pre></div>
149
- </div>
150
- </li>
151
- <li><p><strong>Red Hat Enterprise Linux/CentOS/SciLinux</strong>: These instructions
152
- are for version 7 or later, and you need to have the <a class="reference external" href="https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F">EPEL packages
153
- available</a>.
154
- For CentOS and SciLinux, you can access EPEL packages by doing:</p>
155
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">yum</span> <span class="n">install</span> <span class="n">epel</span><span class="o">-</span><span class="n">release</span>
156
- </pre></div>
157
- </div>
158
- <p>Now install via:</p>
159
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">yum</span> <span class="n">install</span> <span class="n">python36</span><span class="o">-</span><span class="n">tkinter</span> <span class="n">python36</span><span class="o">-</span><span class="n">pip</span>
160
- <span class="c1"># Note no &quot;sudo&quot; on the next one!</span>
161
- <span class="n">python36</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span>
162
- </pre></div>
163
- </div>
164
- </li>
165
- <li><p><strong>Arch/Manjaro</strong>: Install via:</p>
166
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">pacman</span> <span class="o">-</span><span class="n">Sy</span> <span class="n">python</span><span class="o">-</span><span class="n">pip</span> <span class="n">tk</span>
167
- <span class="c1"># Note no &quot;sudo&quot; on the next one!</span>
168
- <span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span>
169
- </pre></div>
170
- </div>
171
- </li>
172
- <li><p><strong>openSUSE</strong>: Install via:</p>
173
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">zypper</span> <span class="n">install</span> <span class="o">-</span><span class="n">y</span> <span class="n">python3</span><span class="o">-</span><span class="n">tk</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span>
174
- <span class="c1"># Note no &quot;sudo&quot; on the next one!</span>
175
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span>
176
- </pre></div>
177
- </div>
178
- </li>
179
- </ul>
180
- <p>If you want the larger version of HTLinkExteriors that includes the 15
181
- crossing knots (uses 110M of disk space), also install the Python
182
- package <code class="docutils literal notranslate"><span class="pre">snappy_15_knots</span></code>, e.g. on Ubuntu do:</p>
183
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy_15_knots</span>
184
- </pre></div>
185
- </div>
186
- <p>Once you have installed SnapPy, do the following to start it:</p>
187
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">~/.</span><span class="n">local</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">SnapPy</span>
188
- </pre></div>
189
- </div>
190
- <p>You may get a message about creating a “.ipython” directory; this is
191
- normal, just hit return to continue. There should also now be a
192
- command “SnapPy” which does the same thing. To make it so that you
193
- can start SnapPy with just the command <code class="docutils literal notranslate"><span class="pre">SnapPy</span></code>, make sure
194
- <code class="docutils literal notranslate"><span class="pre">~/.local/bin</span></code> is in <a class="reference external" href="https://opensource.com/article/17/6/set-path-linux">in your path</a>.</p>
195
- </section>
196
- <section id="python-modules-for-macintosh-or-windows">
197
- <h2>Python Modules for Macintosh or Windows<a class="headerlink" href="#python-modules-for-macintosh-or-windows" title="Permalink to this heading"></a></h2>
198
- <p>If you write Python programs on a Macintosh or Windows system, you may
199
- wish to install SnapPy as a Python module into your own copy of
200
- Python. We support Python 3.6 and up. (On macOS, use a Python
201
- downloaded from <a class="reference external" href="http://python.org">Python.org</a> and not the one
202
- provided by Apple.) After installing Python, you may install a SnapPy
203
- module from your Terminal application or Command Prompt with the
204
- commands:</p>
205
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span>
206
- </pre></div>
207
- </div>
208
- <p>If you want the larger version of HTLinkExteriors that includes the 15
209
- crossing knots (uses 110M of disk space), do:</p>
210
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy_15_knots</span>
211
- </pre></div>
212
- </div>
213
- <p>If you use Python 2 rather than Python 3, replace <code class="docutils literal notranslate"><span class="pre">python3</span></code> with
214
- <code class="docutils literal notranslate"><span class="pre">python</span></code> in the above. If your Python lacks the pip module, <a class="reference external" href="https://pip.pypa.io/en/stable/installing/">get it
215
- here</a>.</p>
216
- </section>
217
- <section id="sagemath">
218
- <h2>SageMath<a class="headerlink" href="#sagemath" title="Permalink to this heading"></a></h2>
219
- <p>SnapPy has some special features when used within <a class="reference external" href="http://sagemath.org">SageMath</a>, the universal mathematics software based on
220
- Python. This section describes how to install SnapPy into your
221
- existing copy of SageMath, but you may find it easier to use the
222
- <a class="reference internal" href="#kitchen-sink">kitchen sink</a> approach instead. You can install it as a Sage
223
- optional package via the following if using Sage 6.4 or newer:</p>
224
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span> <span class="o">-</span><span class="n">pip</span> <span class="n">install</span> <span class="n">snappy</span>
225
- <span class="n">sage</span> <span class="o">-</span><span class="n">pip</span> <span class="n">install</span> <span class="n">snappy_15_knots</span> <span class="c1"># Larger version of HTLinkExteriors</span>
226
- </pre></div>
227
- </div>
228
- <p>If you are on macOS, we recommend use <a class="reference external" href="https://github.com/3-manifolds/Sage_macOS/releases">this binary</a>.</p>
229
- <p>Alternatively, SageMath on <a class="reference external" href="https://cocalc.com/">CoCalc</a> (formerly
230
- the SageMathCloud) also has SnapPy preinstalled, and the graphics
231
- features even work via the <a class="reference external" href="http://blog.sagemath.com/cocalc/2018/11/05/x11.html">X11 interface</a>, see the
232
- bottom of that page for more.</p>
233
- <p>If you previously installed SnapPy into SageMath and want to upgrade
234
- SnapPy to the latest version, do:</p>
235
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span> <span class="o">-</span><span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="n">snappy</span>
236
- </pre></div>
237
- </div>
238
- <p>If it has trouble when compiling CyOpenGL, you are probably missing
239
- the <cite>“gl.h” headers &lt;openglmesa&gt;</cite>. The graphical features may or may
240
- not work, depending on how Tkinter was configured within Sage, and may
241
- seem to “hang” when you try to start them. To deal with the latter
242
- issue type “%gui tk” at the Sage prompt; please note that doing so may
243
- break Sages “attach” feature.</p>
244
- </section>
245
- <section id="kitchen-sink">
246
- <h2>Kitchen sink<a class="headerlink" href="#kitchen-sink" title="Permalink to this heading"></a></h2>
247
- <p>SnapPy gains extra features when used in <a class="reference external" href="http://sagemath.org">SageMath</a> and one can use
248
- Sage’s Python to interact not just with SnapPy but a range of other
249
- computational tools in low-dimensional topology including
250
- <a class="reference external" href="http://regina-normal.github.io/">Regina</a>,
251
- <a class="reference external" href="http://snap-pari.sourceforge.net">snap</a>,
252
- <a class="reference external" href="https://github.com/3-manifolds/heegaard">heegaard</a>,
253
- <a class="reference external" href="https://github.com/3-manifolds/gridlink">gridlink</a>,
254
- and <a class="reference external" href="http://flipper.readthedocs.io">flipper</a>.
255
- We offer a <a class="reference external" href="https://hub.docker.com/r/computop/sage/">prepackaged Docker image</a> with all of the above tools
256
- and many more; using this is frequently the easiest way to get a
257
- working setup for such multifaceted computations. For more, watch
258
- <a class="reference external" href="https://icerm.brown.edu/video_archive/?play=1992">this demonstration</a>.</p>
259
- <p>We also offer <a class="reference external" href="https://github.com/unhyperbolic/condaForSnapPy">conda environments</a> with SnapPy and
260
- optionally Sage (only on Mac OS and Linux). While it has none of the
261
- other aforementioned tools, it has the advantage that the GUI elements
262
- such as the link editor and the browser can be used directly.</p>
263
- </section>
264
- <section id="generic-unix">
265
- <h2>Generic Unix<a class="headerlink" href="#generic-unix" title="Permalink to this heading"></a></h2>
266
- <p>If you use a Unix other than OS X or Linux, or if the prebuilt
267
- packages don’t work for you, you’ll need to build SnapPy from source.
268
- Here are some detailed instructions.</p>
269
- <p>Things you’ll need:</p>
270
- <ul>
271
- <li><p>Python 3 with Tkinter: You’ll need to have <a class="reference external" href="http://python.org">Python</a> (version 3.6 or newer) and <a class="reference external" href="http://tcl.tk">Tk</a> (at least version 8.5) with <a class="reference external" href="http://wiki.python.org/moin/TkInter">Tkinter</a> to connect them, including
272
- the header files. For instance, on Debian or Ubuntu, install the
273
- packages “python3-tk”, “python3-pip”, and “python3-dev”. On Fedora,
274
- youll want e.g. python3-tkinter”, “python3-pip”, and
275
- “python3-devel”, and “python3-wheel”.</p></li>
276
- <li><p>Test that Python is in order by installing PLink from source:</p>
277
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">user</span> <span class="n">plink</span>
278
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">plink</span><span class="o">.</span><span class="n">app</span> <span class="c1"># Should start the link editor!</span>
279
- </pre></div>
280
- </div>
281
- </li>
282
- </ul>
283
- <ul id="openglmesa">
284
- <li><p>Support for OpenGL (3D graphics): This is built in on OS X and the
285
- most installations of Fedora and Ubuntu. But you’ll need the <a class="reference external" href="http://www.mesa3d.org/">MESA</a> header files “gl.h” and “glu.h” to compile
286
- SnapPy. On Debian and Ubuntu, install “libglu1-mesa-dev”; On Fedora install
287
- “mesa-libGLU-devel”.</p></li>
288
- <li><p><a class="reference external" href="http://cython.org">Cython</a>, which you can install via:</p>
289
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">user</span> <span class="n">cython</span>
290
- </pre></div>
291
- </div>
292
- </li>
293
- <li><p>The gcc C++ compiler, g++.</p></li>
294
- <li><p><a class="reference external" href="https://pypi.python.org/pypi/cypari/">CyPari</a>: a stand-alone version of
295
- <a class="reference external" href="http://sagemath.org">Sage’s</a> Python interface to the
296
- <a class="reference external" href="http://pari.math.u-bordeaux.fr/PARI">PARI</a> number theory
297
- library. Usually, you can install this with:</p>
298
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">user</span> <span class="n">cypari</span>
299
- </pre></div>
300
- </div>
301
- </li>
302
- </ul>
303
- <p>Now download the <a class="reference internal" href="#source-code">source code</a> listed below, for instance</p>
304
- <pre class="literal-block">wget <a class="reference external" href="https://pypi.python.org/packages/source/s/snappy/">https://pypi.python.org/packages/source/s/snappy/</a>snappy-3.1.1.tar.gz
305
- tar xfz snappy-3.1.1.tar.gz; cd snappy-*</pre>
306
- <p>There is one more dependency that may need to be dealt with:</p>
307
- <ul class="simple">
308
- <li><p><a class="reference external" href="http://togl.sf.net">Togl</a>: a 3d widget for Tk. For OS X and
309
- Linux, there are pre-built binaries of this in the snappy
310
- subdirectory, e.g. snappy/linux2-tk8.4. For Linux these are built
311
- for 64-bit kernels, and should work on most systems. If they don’t,
312
- you’ll need to edit or follow “build_togl.sh” to build Togl directly.</p></li>
313
- </ul>
314
- <p>Finally, compile and install the SnapPy module (which will install
315
- certain other dependencies) and test:</p>
316
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span>
317
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">user</span> <span class="o">.</span>
318
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">snappy</span><span class="o">.</span><span class="n">test</span>
319
- <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">snappy</span><span class="o">.</span><span class="n">app</span>
320
- </pre></div>
321
- </div>
322
- </section>
323
- <section id="source-code">
324
- <h2>Source code<a class="headerlink" href="#source-code" title="Permalink to this heading"></a></h2>
325
- <p>The complete source code for all platforms: <a class="reference external" href="https://pypi.python.org/packages/source/s/snappy/snappy-3.1.1.tar.gz">snappy-3.1.1.tar.gz</a></p>
326
- <p>You can also browse our <a class="reference external" href="https://github.com/3-manifolds/SnapPy">source code repository</a> or clone it using <a class="reference external" href="https://git-scm.com/">git</a> via:</p>
327
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="mi">3</span><span class="o">-</span><span class="n">manifolds</span><span class="o">/</span><span class="n">SnapPy</span><span class="o">.</span><span class="n">git</span>
328
- </pre></div>
329
- </div>
330
- </section>
331
- </section>
332
-
333
-
334
- </div>
335
- </div>
336
- <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
337
- <a href="index.html" class="btn btn-neutral float-left" title="SnapPy" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
338
- <a href="screenshots.html" class="btn btn-neutral float-right" title="Screenshots: SnapPy in action" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
339
- </div>
340
-
341
- <hr/>
342
-
343
- <div role="contentinfo">
344
- <p>&#169; Copyright 2009-2023, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
345
- </div>
346
-
347
- Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
348
- <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
349
- provided by <a href="https://readthedocs.org">Read the Docs</a>.
350
-
351
-
352
- </footer>
353
- </div>
354
- </div>
355
- </section>
356
- </div>
357
- <script>
358
- jQuery(function () {
359
- SphinxRtdTheme.Navigation.enable(true);
360
- });
361
- </script>
362
-
363
- </body>
1
+
2
+
3
+ <!DOCTYPE html>
4
+ <html class="writer-html5" lang="en" data-content_root="./">
5
+ <head>
6
+ <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
7
+
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <title>Installing SnapPy &mdash; SnapPy 3.2 documentation</title>
10
+ <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
11
+ <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
12
+ <link rel="stylesheet" type="text/css" href="_static/snappy_sphinx_rtd_theme.css?v=1b8ec2a8" />
13
+
14
+
15
+ <link rel="shortcut icon" href="_static/SnapPy.ico"/>
16
+ <script src="_static/jquery.js?v=5d32c60e"></script>
17
+ <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
18
+ <script src="_static/documentation_options.js?v=828ea960"></script>
19
+ <script src="_static/doctools.js?v=9a2dae69"></script>
20
+ <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
21
+ <script src="_static/js/theme.js"></script>
22
+ <link rel="index" title="Index" href="genindex.html" />
23
+ <link rel="search" title="Search" href="search.html" />
24
+ <link rel="next" title="Screenshots: SnapPy in action" href="screenshots.html" />
25
+ <link rel="prev" title="SnapPy" href="index.html" />
26
+ </head>
27
+
28
+ <body class="wy-body-for-nav">
29
+ <div class="wy-grid-for-nav">
30
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
31
+ <div class="wy-side-scroll">
32
+ <div class="wy-side-nav-search" >
33
+
34
+
35
+
36
+ <a href="index.html" class="icon icon-home">
37
+ SnapPy
38
+ <img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
39
+ </a>
40
+ <div role="search">
41
+ <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
42
+ <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
43
+ <input type="hidden" name="check_keywords" value="yes" />
44
+ <input type="hidden" name="area" value="default" />
45
+ </form>
46
+ </div>
47
+ </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
48
+ <ul class="current">
49
+ <li class="toctree-l1 current"><a class="current reference internal" href="#">Installing SnapPy</a><ul>
50
+ <li class="toctree-l2"><a class="reference internal" href="#macos">macOS</a></li>
51
+ <li class="toctree-l2"><a class="reference internal" href="#windows">Windows</a></li>
52
+ <li class="toctree-l2"><a class="reference internal" href="#linux-app">Linux app</a></li>
53
+ <li class="toctree-l2"><a class="reference internal" href="#python-modules-for-macos-or-windows">Python Modules for macOS or Windows</a></li>
54
+ <li class="toctree-l2"><a class="reference internal" href="#python-modules-for-linux">Python Modules for Linux</a></li>
55
+ <li class="toctree-l2"><a class="reference internal" href="#sagemath">SageMath</a></li>
56
+ <li class="toctree-l2"><a class="reference internal" href="#kitchen-sink">Kitchen sink</a></li>
57
+ <li class="toctree-l2"><a class="reference internal" href="#conda">Conda</a></li>
58
+ <li class="toctree-l2"><a class="reference internal" href="#source-code">Source code</a></li>
59
+ </ul>
60
+ </li>
61
+ <li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
62
+ <li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
63
+ <li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
64
+ <li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
65
+ <li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
66
+ <li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
67
+ <li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
68
+ <li class="toctree-l1"><a class="reference internal" href="other.html">Other components</a></li>
69
+ <li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
70
+ <li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
71
+ <li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
72
+ <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
73
+ <li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
74
+ </ul>
75
+
76
+ </div>
77
+ </div>
78
+ </nav>
79
+
80
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
81
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
82
+ <a href="index.html">SnapPy</a>
83
+ </nav>
84
+
85
+ <div class="wy-nav-content">
86
+ <div class="rst-content">
87
+ <div role="navigation" aria-label="Page navigation">
88
+ <ul class="wy-breadcrumbs">
89
+ <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
90
+ <li class="breadcrumb-item active">Installing SnapPy</li>
91
+ <li class="wy-breadcrumbs-aside">
92
+ </li>
93
+ </ul>
94
+ <hr/>
95
+ </div>
96
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
97
+ <div itemprop="articleBody">
98
+
99
+ <section id="installing-snappy">
100
+ <h1>Installing SnapPy<a class="headerlink" href="#installing-snappy" title="Link to this heading"></a></h1>
101
+ <p>Here are detailed instructions on how to get SnapPy working on a
102
+ variety of platforms. The current version is 3.2 which was released
103
+ on January 2025. If you encounter any problems installing SnapPy,
104
+ <a class="reference internal" href="bugs.html"><span class="doc">please let us know</span></a>.</p>
105
+ <section id="macos">
106
+ <h2>macOS<a class="headerlink" href="#macos" title="Link to this heading"></a></h2>
107
+ <p>Simply download <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy.dmg">SnapPy.dmg</a>
108
+ and copy SnapPy.app to the Applications folder. Double-click to start
109
+ it, just like any other application. The current version works with macOS 10.14 and
110
+ newer and earlier releases <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/">can be found here</a>.</p>
111
+ </section>
112
+ <section id="windows">
113
+ <h2>Windows<a class="headerlink" href="#windows" title="Link to this heading"></a></h2>
114
+ <p>Simply download and run <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/latest/download/InstallSnapPy.exe">InstallSnapPy.exe</a>.
115
+ Earlier releases <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/">can be found here</a>.</p>
116
+ </section>
117
+ <section id="linux-app">
118
+ <h2>Linux app<a class="headerlink" href="#linux-app" title="Link to this heading"></a></h2>
119
+ <p>Starting with SnapPy 3.2, a completely self-contained SnapPy <a class="reference external" href="https://docs.appimage.org/introduction/quickstart.html#ref-quickstart">AppImage</a>
120
+ is available that should work on any Linux system from the last 5
121
+ years. This AppImage contains its own private copy of Python, so if
122
+ you plan to use SnapPy in your own Python programs, skip ahead to
123
+ <a class="reference internal" href="#python-modules-for-linux">Python Modules for Linux</a>. Here is the recipe for installing the
124
+ AppImage in <code class="docutils literal notranslate"><span class="pre">~/bin</span></code> after you have downloaded the file
125
+ <a class="reference external" href="https://github.com/3-manifolds/SnapPy/releases/latest/download/SnapPy-x86_64.AppImage.">SnapPy-x86_64.AppImage</a>:</p>
126
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkdir</span> <span class="o">-</span><span class="n">p</span> <span class="o">~/</span><span class="nb">bin</span>
127
+ <span class="n">mv</span> <span class="o">~/</span><span class="n">Downloads</span><span class="o">/</span><span class="n">SnapPy</span><span class="o">-</span><span class="n">x86_64</span><span class="o">.</span><span class="n">AppImage</span> <span class="o">~/</span><span class="nb">bin</span>
128
+ <span class="n">chmod</span> <span class="o">+</span><span class="n">x</span> <span class="o">~/</span><span class="nb">bin</span><span class="o">/</span><span class="n">SnapPy</span><span class="o">-</span><span class="n">x86_64</span><span class="o">.</span><span class="n">AppImage</span>
129
+ <span class="n">ln</span> <span class="o">-</span><span class="n">s</span> <span class="o">-</span><span class="n">f</span> <span class="o">~/</span><span class="nb">bin</span><span class="o">/</span><span class="n">SnapPy</span><span class="o">-</span><span class="n">x86_64</span><span class="o">.</span><span class="n">AppImage</span> <span class="o">~/</span><span class="nb">bin</span><span class="o">/</span><span class="n">SnapPy</span>
130
+ <span class="o">~/</span><span class="nb">bin</span><span class="o">/</span><span class="n">SnapPy</span><span class="o">-</span><span class="n">x86_64</span><span class="o">.</span><span class="n">AppImage</span> <span class="o">--</span><span class="n">install</span>
131
+ </pre></div>
132
+ </div>
133
+ <p>The last command registers the SnapPy app with your desktop system and
134
+ starts it. Next time, you can start SnapPy by using the desktop
135
+ search tool with GNOME or the main menu with KDE. You can pin also the icon
136
+ to your dash or task bar for easy access. From a terminal window, you
137
+ can also start the app by typing <code class="docutils literal notranslate"><span class="pre">SnapPy</span></code> provided <code class="docutils literal notranslate"><span class="pre">~/bin</span></code> is in
138
+ your <a class="reference external" href="https://opensource.com/article/17/6/set-path-linux">$PATH</a>.</p>
139
+ </section>
140
+ <section id="python-modules-for-macos-or-windows">
141
+ <h2>Python Modules for macOS or Windows<a class="headerlink" href="#python-modules-for-macos-or-windows" title="Link to this heading"></a></h2>
142
+ <p>If you write Python programs on macOS or Windows, you may wish to
143
+ install SnapPy as a Python module into your own copy of Python. We
144
+ support Python 3.9 and up. (On macOS, use a Python downloaded from
145
+ <a class="reference external" href="http://python.org">Python.org</a> and not the one provided by Apple.)
146
+ After installing Python, you may install a SnapPy module from your
147
+ Terminal application or Command Prompt with the command:</p>
148
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span> <span class="n">snappy_15_knots</span>
149
+ </pre></div>
150
+ </div>
151
+ <p>If you do not want the larger version of HTLinkExteriors that includes
152
+ the 15 crossing knots (it uses 110M of disk space), omit
153
+ <code class="docutils literal notranslate"><span class="pre">snappy_15_knots</span></code> from the command.</p>
154
+ </section>
155
+ <section id="python-modules-for-linux">
156
+ <h2>Python Modules for Linux<a class="headerlink" href="#python-modules-for-linux" title="Link to this heading"></a></h2>
157
+ <p>You can also use SnapPy with your Linux system’s version of Python,
158
+ for example if you want to incorporate SnapPy in your own Python
159
+ scripts. These instructions assume you have system administrator
160
+ (superuser) privileges to install software packages from your Linux
161
+ distribution. (If you’re not a superuser, use either the
162
+ <a class="reference internal" href="#linux-app">Linux app</a> or <a class="reference internal" href="#conda">conda</a>.)</p>
163
+ <p>The first step is to install Python and other requirements; here’s how
164
+ to do that on the most popular Linux distributions:</p>
165
+ <ul>
166
+ <li><p><strong>Ubuntu/Debian/Mint/MX Linux/Elementary:</strong> Tested on Ubuntu 24.04:</p>
167
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> <span class="n">python3</span><span class="o">-</span><span class="n">tk</span>
168
+ </pre></div>
169
+ </div>
170
+ </li>
171
+ <li><p><strong>Fedora</strong>: Tested on Fedora 41:</p>
172
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">dnf</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> <span class="n">python3</span><span class="o">-</span><span class="n">tkinter</span>
173
+ </pre></div>
174
+ </div>
175
+ </li>
176
+ <li><p><strong>Arch/Manjaro/EndeavourOS</strong>: Install via:</p>
177
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">pacman</span> <span class="o">-</span><span class="n">Sy</span> <span class="n">python</span><span class="o">-</span><span class="n">pip</span> <span class="n">tk</span>
178
+ </pre></div>
179
+ </div>
180
+ </li>
181
+ <li><p><strong>openSUSE</strong>: For Tumbleweed:</p>
182
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">zypper</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> <span class="n">python3</span><span class="o">-</span><span class="n">tk</span>
183
+ </pre></div>
184
+ </div>
185
+ <p>For Leap, as of version 15.6 you need to ask for a recent version of
186
+ Python or it will give you Python 3.6 which is too old for SnapPy:</p>
187
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">zypper</span> <span class="n">install</span> <span class="n">python312</span><span class="o">-</span><span class="n">pip</span> <span class="n">python312</span><span class="o">-</span><span class="n">tk</span>
188
+ </pre></div>
189
+ </div>
190
+ <p>You will need to replace <code class="docutils literal notranslate"><span class="pre">python3</span></code> by <code class="docutils literal notranslate"><span class="pre">python3.12</span></code> in subsequent
191
+ steps.</p>
192
+ </li>
193
+ <li><p><strong>Red Hat Enterprise Linux/CentOS/Rocky Linux/AlmaLinux:</strong>: These instructions
194
+ are for version 8 or later; tested on AlmaLinux 8 and 9:</p>
195
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">dnf</span> <span class="n">install</span> <span class="n">python3</span><span class="mf">.11</span><span class="o">-</span><span class="n">pip</span> <span class="n">python3</span><span class="mf">.11</span><span class="o">-</span><span class="n">tkinter</span>
196
+ </pre></div>
197
+ </div>
198
+ <p>You will also need to replace <code class="docutils literal notranslate"><span class="pre">python3</span></code> by <code class="docutils literal notranslate"><span class="pre">python3.11</span></code> in subsequent
199
+ steps.</p>
200
+ </li>
201
+ </ul>
202
+ <p>Next, you need to install the SnapPy Python modules. For this, you can
203
+ either use a <em>virtual environment</em> (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">venv</span></code>) or do a <em>user
204
+ install</em> (<code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">--user</span></code>). The former will work on any
205
+ version of Linux, whereas the latter is now strongly discouraged on
206
+ many systems (e.g. Ubuntu 24.04). If you have not previously
207
+ installed SnapPy on this computer, we recommend using a virtual
208
+ environment, but suggest a user install if you are upgrading an
209
+ existing version of SnapPy that was installed in that manner.</p>
210
+ <dl>
211
+ <dt>Virtual environment</dt><dd><p>Here is the <a class="reference external" href="https://docs.python.org/3/tutorial/venv.html">official tutorial</a> on using virtual
212
+ environments in Python and an <a class="reference external" href="https://realpython.com/python-virtual-environments-a-primer/">in-depth article</a>. A
213
+ recipe is:</p>
214
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">venv</span> <span class="n">snappy_venv</span>
215
+ <span class="c1"># Switch to snappy_venv&#39;s Python</span>
216
+ <span class="n">source</span> <span class="n">snappy_venv</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
217
+ <span class="n">pip</span> <span class="n">install</span> <span class="n">snappy</span> <span class="n">snappy_15_knots</span>
218
+ <span class="c1"># Start the SnapPy app!</span>
219
+ <span class="n">SnapPy</span>
220
+ <span class="c1"># Return to system Python</span>
221
+ <span class="n">deactivate</span>
222
+ </pre></div>
223
+ </div>
224
+ <p>If you always want to use the <code class="docutils literal notranslate"><span class="pre">snappy_venv</span></code> Python, adjust your
225
+ <a class="reference external" href="https://opensource.com/article/17/6/set-path-linux">$PATH</a> to
226
+ <strong>start</strong> with <code class="docutils literal notranslate"><span class="pre">snappy_venv/bin</span></code>.</p>
227
+ </dd>
228
+ <dt>User install</dt><dd><p>To do a user install with pip, try:</p>
229
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Note no &quot;sudo&quot; below!</span>
230
+ <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="n">snappy</span> <span class="n">snappy_15_knots</span>
231
+ </pre></div>
232
+ </div>
233
+ <p>If you get a long error message that starts:</p>
234
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">error</span><span class="p">:</span> <span class="n">externally</span><span class="o">-</span><span class="n">managed</span><span class="o">-</span><span class="n">environment</span>
235
+ </pre></div>
236
+ </div>
237
+ <p>you should probably use a virtual environment; however,
238
+ you can force pip to do a user install via:</p>
239
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Note no &quot;sudo&quot; below!</span>
240
+ <span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="o">--</span><span class="n">user</span> <span class="o">--</span><span class="k">break</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">packages</span> <span class="n">snappy</span> <span class="n">snappy_15_knots</span>
241
+ </pre></div>
242
+ </div>
243
+ <p>Despite the scary name, provided you dont use <code class="docutils literal notranslate"><span class="pre">sudo</span></code>, this will
244
+ not actually modify the system packages, but rather install
245
+ <code class="docutils literal notranslate"><span class="pre">snappy</span></code> into the subdirectory
246
+ <code class="docutils literal notranslate"><span class="pre">~/.local/share/python3.*/site-packages</span></code> of your home directory.</p>
247
+ <p>After a user install, you run the following command to start
248
+ the app:</p>
249
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">~/.</span><span class="n">local</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">SnapPy</span>
250
+ </pre></div>
251
+ </div>
252
+ <p>So that you can start SnapPy with just the command <code class="docutils literal notranslate"><span class="pre">SnapPy</span></code>, make
253
+ sure <code class="docutils literal notranslate"><span class="pre">~/.local/bin</span></code> is in <a class="reference external" href="https://opensource.com/article/17/6/set-path-linux">in your path</a>.</p>
254
+ </dd>
255
+ </dl>
256
+ </section>
257
+ <section id="sagemath">
258
+ <h2>SageMath<a class="headerlink" href="#sagemath" title="Link to this heading"></a></h2>
259
+ <p>SnapPy has some special features when used within <a class="reference external" href="http://sagemath.org">SageMath</a>, the universal mathematics software based on
260
+ Python. This section describes how to install SnapPy into your
261
+ existing copy of SageMath:</p>
262
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span> <span class="o">-</span><span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="n">snappy</span> <span class="n">snappy_15_knots</span>
263
+ </pre></div>
264
+ </div>
265
+ <p>Alternatively, SageMath on <a class="reference external" href="https://cocalc.com/">CoCalc</a> (formerly
266
+ the SageMathCloud) also has SnapPy preinstalled, and the graphics
267
+ features even work via the <a class="reference external" href="http://blog.sagemath.com/cocalc/2018/11/05/x11.html">X11 interface</a>, see the
268
+ bottom of that page for more.</p>
269
+ <p>The graphical features may or may not work, depending on how Tkinter
270
+ was configured within Sage. (There is no problem on macOS if you use
271
+ this <a class="reference external" href="https://github.com/3-manifolds/Sage_macOS/releases">SageMath binary</a>.) If the
272
+ graphical features seem to “hang” when you try to start them, type
273
+ <code class="docutils literal notranslate"><span class="pre">%gui</span> <span class="pre">tk</span></code> at the Sage prompt; please note that doing so may break
274
+ Sagesattach” feature.</p>
275
+ </section>
276
+ <section id="kitchen-sink">
277
+ <h2>Kitchen sink<a class="headerlink" href="#kitchen-sink" title="Link to this heading"></a></h2>
278
+ <p>SnapPy gains extra features when used in <a class="reference external" href="http://sagemath.org">SageMath</a> and one can use
279
+ Sage’s Python to interact not just with SnapPy but a range of other
280
+ computational tools in low-dimensional topology including
281
+ <a class="reference external" href="http://regina-normal.github.io/">Regina</a>,
282
+ <a class="reference external" href="http://snap-pari.sourceforge.net">snap</a>,
283
+ <a class="reference external" href="https://github.com/3-manifolds/heegaard">heegaard</a>,
284
+ <a class="reference external" href="https://github.com/3-manifolds/gridlink">gridlink</a>,
285
+ and <a class="reference external" href="http://flipper.readthedocs.io">flipper</a>.
286
+ We offer a <a class="reference external" href="https://hub.docker.com/r/computop/sage/">prepackaged Docker image</a> with all of the above tools
287
+ and many more; using this is sometimes the easiest way to get a
288
+ working setup for such multifaceted computations, especially on Windows. For more, watch
289
+ <a class="reference external" href="https://icerm.brown.edu/video_archive/?play=1992">this demonstration</a>.</p>
290
+ </section>
291
+ <section id="conda">
292
+ <h2>Conda<a class="headerlink" href="#conda" title="Link to this heading"></a></h2>
293
+ <p>Conda can be used to install Python on all platforms and is a
294
+ particularly good choice to use SnapPy on the older Linux systems
295
+ often found on high-performance clusters. Here is a recipe for
296
+ installing SnapPy into a new conda environment on macOS or Linux:</p>
297
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">source</span> <span class="o">~/</span><span class="n">miniforge3</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
298
+ <span class="n">mamba</span> <span class="n">create</span> <span class="o">--</span><span class="n">name</span> <span class="n">snappy_env</span> <span class="n">python</span><span class="o">=</span><span class="mf">3.12</span>
299
+ <span class="n">conda</span> <span class="n">activate</span> <span class="n">snappy_env</span>
300
+ <span class="n">pip</span> <span class="n">install</span> <span class="n">snappy</span>
301
+ <span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">snappy</span><span class="o">.</span><span class="n">app</span>
302
+ </pre></div>
303
+ </div>
304
+ </section>
305
+ <section id="source-code">
306
+ <h2>Source code<a class="headerlink" href="#source-code" title="Link to this heading"></a></h2>
307
+ <p>The complete source code for all platforms: <a class="reference external" href="https://pypi.python.org/packages/source/s/snappy/snappy-3.2.tar.gz">snappy-3.2.tar.gz</a></p>
308
+ <p>You can also browse our <a class="reference external" href="https://github.com/3-manifolds/SnapPy">source code repository</a> or clone it using <a class="reference external" href="https://git-scm.com/">git</a> via:</p>
309
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="mi">3</span><span class="o">-</span><span class="n">manifolds</span><span class="o">/</span><span class="n">SnapPy</span><span class="o">.</span><span class="n">git</span>
310
+ </pre></div>
311
+ </div>
312
+ </section>
313
+ </section>
314
+
315
+
316
+ </div>
317
+ </div>
318
+ <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
319
+ <a href="index.html" class="btn btn-neutral float-left" title="SnapPy" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
320
+ <a href="screenshots.html" class="btn btn-neutral float-right" title="Screenshots: SnapPy in action" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
321
+ </div>
322
+
323
+ <hr/>
324
+
325
+ <div role="contentinfo">
326
+ <p>&#169; Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
327
+ </div>
328
+
329
+ Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
330
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
331
+ provided by <a href="https://readthedocs.org">Read the Docs</a>.
332
+
333
+
334
+ </footer>
335
+ </div>
336
+ </div>
337
+ </section>
338
+ </div>
339
+ <script>
340
+ jQuery(function () {
341
+ SphinxRtdTheme.Navigation.enable(true);
342
+ });
343
+ </script>
344
+
345
+ </body>
364
346
  </html>