snappy 3.0.3__cp38-cp38-macosx_11_0_arm64.whl → 3.2__cp38-cp38-macosx_11_0_arm64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (401) hide show
  1. snappy/CyOpenGL.cpython-38-darwin.so +0 -0
  2. snappy/SnapPy.cpython-38-darwin.so +0 -0
  3. snappy/SnapPyHP.cpython-38-darwin.so +0 -0
  4. snappy/__init__.py +373 -426
  5. snappy/app.py +240 -75
  6. snappy/app_menus.py +93 -78
  7. snappy/browser.py +87 -63
  8. snappy/cache.py +5 -8
  9. snappy/canonical.py +249 -0
  10. snappy/{verify/cusp_shapes.py → cusps/__init__.py} +11 -19
  11. snappy/cusps/cusp_area_matrix.py +101 -0
  12. snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +39 -54
  13. snappy/cusps/maximal_cusp_area_matrix.py +136 -0
  14. snappy/cusps/test.py +21 -0
  15. snappy/cusps/trig_cusp_area_matrix.py +63 -0
  16. snappy/database.py +40 -31
  17. snappy/db_utilities.py +13 -14
  18. snappy/decorated_isosig.py +377 -133
  19. snappy/dev/extended_ptolemy/complexVolumesClosed.py +42 -9
  20. snappy/dev/extended_ptolemy/extended.py +32 -25
  21. snappy/dev/extended_ptolemy/giac_rur.py +23 -8
  22. snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
  23. snappy/dev/vericlosed/computeApproxHyperbolicStructureOrb.py +2 -1
  24. snappy/dev/vericlosed/gimbalLoopFinder.py +5 -5
  25. snappy/dev/vericlosed/hyperbolicStructure.py +3 -3
  26. snappy/dev/vericlosed/oneVertexTruncatedComplex.py +2 -2
  27. snappy/dev/vericlosed/truncatedComplex.py +3 -2
  28. snappy/dev/vericlosed/verifyHyperbolicStructureEngine.py +4 -3
  29. snappy/doc/_images/geodesics.jpg +0 -0
  30. snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
  31. snappy/doc/_images/m125_paper_plane.jpg +0 -0
  32. snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
  33. snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
  34. snappy/doc/_sources/additional_classes.rst.txt +1 -0
  35. snappy/doc/_sources/credits.rst.txt +6 -1
  36. snappy/doc/_sources/development.rst.txt +69 -50
  37. snappy/doc/_sources/index.rst.txt +101 -66
  38. snappy/doc/_sources/installing.rst.txt +148 -165
  39. snappy/doc/_sources/news.rst.txt +136 -32
  40. snappy/doc/_sources/ptolemy.rst.txt +1 -1
  41. snappy/doc/_sources/ptolemy_examples1.rst.txt +9 -8
  42. snappy/doc/_sources/ptolemy_examples2.rst.txt +3 -3
  43. snappy/doc/_sources/ptolemy_examples3.rst.txt +14 -14
  44. snappy/doc/_sources/ptolemy_prelim.rst.txt +1 -1
  45. snappy/doc/_sources/snap.rst.txt +2 -2
  46. snappy/doc/_sources/snappy.rst.txt +1 -1
  47. snappy/doc/_sources/triangulation.rst.txt +3 -2
  48. snappy/doc/_sources/verify.rst.txt +89 -29
  49. snappy/doc/_sources/verify_internals.rst.txt +5 -16
  50. snappy/doc/_static/SnapPy-horizontal-128.png +0 -0
  51. snappy/doc/_static/SnapPy.ico +0 -0
  52. snappy/doc/_static/_sphinx_javascript_frameworks_compat.js +123 -0
  53. snappy/doc/_static/basic.css +47 -27
  54. snappy/doc/_static/css/badge_only.css +1 -0
  55. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  56. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  57. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  58. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  59. snappy/doc/_static/css/fonts/fontawesome-webfont.eot +0 -0
  60. snappy/doc/_static/css/fonts/fontawesome-webfont.svg +2671 -0
  61. snappy/doc/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  62. snappy/doc/_static/css/fonts/fontawesome-webfont.woff +0 -0
  63. snappy/doc/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  64. snappy/doc/_static/css/fonts/lato-bold-italic.woff +0 -0
  65. snappy/doc/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  66. snappy/doc/_static/css/fonts/lato-bold.woff +0 -0
  67. snappy/doc/_static/css/fonts/lato-bold.woff2 +0 -0
  68. snappy/doc/_static/css/fonts/lato-normal-italic.woff +0 -0
  69. snappy/doc/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  70. snappy/doc/_static/css/fonts/lato-normal.woff +0 -0
  71. snappy/doc/_static/css/fonts/lato-normal.woff2 +0 -0
  72. snappy/doc/_static/css/theme.css +4 -0
  73. snappy/doc/_static/doctools.js +107 -274
  74. snappy/doc/_static/documentation_options.js +6 -5
  75. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  76. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  77. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  78. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  79. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  80. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  81. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  82. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  83. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  84. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  85. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  86. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  87. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  88. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  89. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  90. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  91. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  92. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  93. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  94. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  95. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  96. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  97. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  98. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  99. snappy/doc/_static/jquery.js +2 -2
  100. snappy/doc/_static/js/badge_only.js +1 -0
  101. snappy/doc/_static/js/theme.js +1 -0
  102. snappy/doc/_static/js/versions.js +228 -0
  103. snappy/doc/_static/language_data.js +3 -101
  104. snappy/doc/_static/pygments.css +1 -0
  105. snappy/doc/_static/searchtools.js +489 -398
  106. snappy/doc/_static/snappy_furo.css +33 -0
  107. snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -0
  108. snappy/doc/_static/sphinx_highlight.js +154 -0
  109. snappy/doc/additional_classes.html +688 -263
  110. snappy/doc/bugs.html +107 -94
  111. snappy/doc/censuses.html +155 -127
  112. snappy/doc/credits.html +115 -104
  113. snappy/doc/development.html +184 -146
  114. snappy/doc/genindex.html +287 -204
  115. snappy/doc/index.html +189 -150
  116. snappy/doc/installing.html +259 -266
  117. snappy/doc/manifold.html +1626 -592
  118. snappy/doc/manifoldhp.html +119 -105
  119. snappy/doc/news.html +198 -104
  120. snappy/doc/objects.inv +0 -0
  121. snappy/doc/other.html +117 -105
  122. snappy/doc/platonic_census.html +161 -114
  123. snappy/doc/plink.html +113 -105
  124. snappy/doc/ptolemy.html +131 -108
  125. snappy/doc/ptolemy_classes.html +242 -223
  126. snappy/doc/ptolemy_examples1.html +144 -130
  127. snappy/doc/ptolemy_examples2.html +141 -129
  128. snappy/doc/ptolemy_examples3.html +148 -132
  129. snappy/doc/ptolemy_examples4.html +131 -111
  130. snappy/doc/ptolemy_prelim.html +162 -138
  131. snappy/doc/py-modindex.html +104 -69
  132. snappy/doc/screenshots.html +117 -108
  133. snappy/doc/search.html +115 -84
  134. snappy/doc/searchindex.js +1 -1
  135. snappy/doc/snap.html +109 -96
  136. snappy/doc/snappy.html +134 -97
  137. snappy/doc/spherogram.html +259 -187
  138. snappy/doc/todo.html +107 -94
  139. snappy/doc/triangulation.html +1380 -111
  140. snappy/doc/tutorial.html +107 -94
  141. snappy/doc/verify.html +194 -125
  142. snappy/doc/verify_internals.html +248 -686
  143. snappy/drilling/__init__.py +456 -0
  144. snappy/drilling/barycentric.py +103 -0
  145. snappy/drilling/constants.py +5 -0
  146. snappy/drilling/crush.py +270 -0
  147. snappy/drilling/cusps.py +125 -0
  148. snappy/drilling/debug.py +242 -0
  149. snappy/drilling/epsilons.py +6 -0
  150. snappy/drilling/exceptions.py +55 -0
  151. snappy/drilling/moves.py +620 -0
  152. snappy/drilling/peripheral_curves.py +210 -0
  153. snappy/drilling/perturb.py +188 -0
  154. snappy/drilling/shorten.py +36 -0
  155. snappy/drilling/subdivide.py +274 -0
  156. snappy/drilling/test.py +23 -0
  157. snappy/drilling/test_cases.py +126 -0
  158. snappy/drilling/tracing.py +351 -0
  159. snappy/exceptions.py +23 -3
  160. snappy/export_stl.py +20 -14
  161. snappy/exterior_to_link/__init__.py +2 -0
  162. snappy/exterior_to_link/barycentric_geometry.py +463 -0
  163. snappy/exterior_to_link/exceptions.py +6 -0
  164. snappy/exterior_to_link/geodesic_map.json +14408 -0
  165. snappy/exterior_to_link/hyp_utils.py +112 -0
  166. snappy/exterior_to_link/link_projection.py +323 -0
  167. snappy/exterior_to_link/main.py +197 -0
  168. snappy/exterior_to_link/mcomplex_with_expansion.py +261 -0
  169. snappy/exterior_to_link/mcomplex_with_link.py +687 -0
  170. snappy/exterior_to_link/mcomplex_with_memory.py +162 -0
  171. snappy/exterior_to_link/pl_utils.py +491 -0
  172. snappy/exterior_to_link/put_in_S3.py +156 -0
  173. snappy/exterior_to_link/rational_linear_algebra.py +123 -0
  174. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +135 -0
  175. snappy/exterior_to_link/simplify_to_base_tri.py +114 -0
  176. snappy/exterior_to_link/stored_moves.py +475 -0
  177. snappy/exterior_to_link/test.py +31 -0
  178. snappy/geometric_structure/__init__.py +212 -0
  179. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  180. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
  181. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
  182. snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
  183. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
  184. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
  185. snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
  186. snappy/geometric_structure/geodesic/__init__.py +0 -0
  187. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  188. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  189. snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
  190. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  191. snappy/geometric_structure/geodesic/constants.py +6 -0
  192. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  193. snappy/geometric_structure/geodesic/fixed_points.py +93 -0
  194. snappy/geometric_structure/geodesic/geodesic_start_point_info.py +435 -0
  195. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  196. snappy/geometric_structure/geodesic/line.py +30 -0
  197. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  198. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
  199. snappy/geometric_structure/test.py +22 -0
  200. snappy/gui.py +36 -36
  201. snappy/horoviewer.py +50 -48
  202. snappy/hyperboloid/__init__.py +212 -0
  203. snappy/hyperboloid/distances.py +245 -0
  204. snappy/hyperboloid/horoball.py +19 -0
  205. snappy/hyperboloid/line.py +35 -0
  206. snappy/hyperboloid/point.py +9 -0
  207. snappy/hyperboloid/triangle.py +29 -0
  208. snappy/{infodialog.py → infowindow.py} +32 -33
  209. snappy/isometry_signature.py +382 -0
  210. snappy/len_spec/__init__.py +596 -0
  211. snappy/len_spec/geodesic_info.py +110 -0
  212. snappy/len_spec/geodesic_key_info_dict.py +117 -0
  213. snappy/len_spec/geodesic_piece.py +143 -0
  214. snappy/len_spec/geometric_structure.py +182 -0
  215. snappy/len_spec/geometry.py +80 -0
  216. snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
  217. snappy/len_spec/spine.py +206 -0
  218. snappy/len_spec/test.py +24 -0
  219. snappy/len_spec/test_cases.py +69 -0
  220. snappy/len_spec/tile.py +275 -0
  221. snappy/len_spec/word.py +86 -0
  222. snappy/manifolds/__init__.py +1 -1
  223. snappy/math_basics.py +176 -0
  224. snappy/matrix.py +525 -0
  225. snappy/number.py +97 -21
  226. snappy/numeric_output_checker.py +37 -27
  227. snappy/pari.py +30 -69
  228. snappy/phone_home.py +25 -20
  229. snappy/polyviewer.py +39 -37
  230. snappy/ptolemy/__init__.py +4 -6
  231. snappy/ptolemy/component.py +14 -12
  232. snappy/ptolemy/coordinates.py +312 -295
  233. snappy/ptolemy/fieldExtensions.py +14 -12
  234. snappy/ptolemy/findLoops.py +43 -31
  235. snappy/ptolemy/geometricRep.py +24 -26
  236. snappy/ptolemy/homology.py +12 -7
  237. snappy/ptolemy/manifoldMethods.py +69 -70
  238. snappy/ptolemy/matrix.py +65 -26
  239. snappy/ptolemy/numericalSolutionsToGroebnerBasis.py +18 -14
  240. snappy/ptolemy/polynomial.py +125 -119
  241. snappy/ptolemy/processComponents.py +36 -30
  242. snappy/ptolemy/processFileBase.py +79 -18
  243. snappy/ptolemy/processFileDispatch.py +13 -14
  244. snappy/ptolemy/processMagmaFile.py +44 -39
  245. snappy/ptolemy/processRurFile.py +18 -11
  246. snappy/ptolemy/ptolemyGeneralizedObstructionClass.py +20 -17
  247. snappy/ptolemy/ptolemyObstructionClass.py +13 -17
  248. snappy/ptolemy/ptolemyVariety.py +190 -121
  249. snappy/ptolemy/ptolemyVarietyPrimeIdealGroebnerBasis.py +20 -19
  250. snappy/ptolemy/reginaWrapper.py +25 -29
  251. snappy/ptolemy/rur.py +6 -14
  252. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +27 -22
  253. snappy/ptolemy/test.py +247 -188
  254. snappy/ptolemy/utilities.py +41 -43
  255. snappy/raytracing/__init__.py +64 -0
  256. snappy/raytracing/additional_horospheres.py +64 -0
  257. snappy/raytracing/additional_len_spec_choices.py +63 -0
  258. snappy/raytracing/cohomology_fractal.py +10 -6
  259. snappy/raytracing/eyeball.py +123 -0
  260. snappy/raytracing/finite_raytracing_data.py +48 -38
  261. snappy/raytracing/finite_viewer.py +218 -210
  262. snappy/raytracing/geodesic_tube_info.py +174 -0
  263. snappy/raytracing/geodesics.py +246 -0
  264. snappy/raytracing/geodesics_window.py +258 -0
  265. snappy/raytracing/gui_utilities.py +152 -40
  266. snappy/raytracing/hyperboloid_navigation.py +102 -52
  267. snappy/raytracing/hyperboloid_utilities.py +114 -261
  268. snappy/raytracing/ideal_raytracing_data.py +256 -179
  269. snappy/raytracing/inside_viewer.py +522 -253
  270. snappy/raytracing/pack.py +22 -0
  271. snappy/raytracing/raytracing_data.py +46 -34
  272. snappy/raytracing/raytracing_view.py +190 -109
  273. snappy/raytracing/shaders/Eye.png +0 -0
  274. snappy/raytracing/shaders/NonGeometric.png +0 -0
  275. snappy/raytracing/shaders/__init__.py +60 -4
  276. snappy/raytracing/shaders/fragment.glsl +575 -148
  277. snappy/raytracing/test.py +29 -0
  278. snappy/raytracing/tooltip.py +146 -0
  279. snappy/raytracing/upper_halfspace_utilities.py +98 -0
  280. snappy/raytracing/view_scale_controller.py +98 -0
  281. snappy/raytracing/zoom_slider/__init__.py +32 -29
  282. snappy/raytracing/zoom_slider/test.py +2 -0
  283. snappy/sage_helper.py +69 -123
  284. snappy/{preferences.py → settings.py} +167 -145
  285. snappy/shell.py +4 -0
  286. snappy/snap/__init__.py +12 -8
  287. snappy/snap/character_varieties.py +24 -18
  288. snappy/snap/find_field.py +35 -34
  289. snappy/snap/fundamental_polyhedron.py +99 -85
  290. snappy/snap/generators.py +6 -8
  291. snappy/snap/interval_reps.py +18 -6
  292. snappy/snap/kernel_structures.py +8 -3
  293. snappy/snap/mcomplex_base.py +1 -2
  294. snappy/snap/nsagetools.py +107 -53
  295. snappy/snap/peripheral/__init__.py +1 -1
  296. snappy/snap/peripheral/dual_cellulation.py +15 -7
  297. snappy/snap/peripheral/link.py +20 -16
  298. snappy/snap/peripheral/peripheral.py +22 -14
  299. snappy/snap/peripheral/surface.py +47 -50
  300. snappy/snap/peripheral/test.py +8 -8
  301. snappy/snap/polished_reps.py +65 -40
  302. snappy/snap/shapes.py +41 -22
  303. snappy/snap/slice_obs_HKL.py +64 -25
  304. snappy/snap/t3mlite/arrow.py +88 -51
  305. snappy/snap/t3mlite/corner.py +5 -6
  306. snappy/snap/t3mlite/edge.py +32 -21
  307. snappy/snap/t3mlite/face.py +7 -9
  308. snappy/snap/t3mlite/files.py +31 -23
  309. snappy/snap/t3mlite/homology.py +14 -10
  310. snappy/snap/t3mlite/linalg.py +158 -56
  311. snappy/snap/t3mlite/mcomplex.py +739 -291
  312. snappy/snap/t3mlite/perm4.py +236 -84
  313. snappy/snap/t3mlite/setup.py +9 -10
  314. snappy/snap/t3mlite/simplex.py +65 -48
  315. snappy/snap/t3mlite/spun.py +42 -30
  316. snappy/snap/t3mlite/surface.py +45 -45
  317. snappy/snap/t3mlite/test.py +3 -0
  318. snappy/snap/t3mlite/test_vs_regina.py +17 -13
  319. snappy/snap/t3mlite/tetrahedron.py +25 -24
  320. snappy/snap/t3mlite/vertex.py +8 -13
  321. snappy/snap/test.py +45 -52
  322. snappy/snap/utilities.py +66 -65
  323. snappy/test.py +155 -158
  324. snappy/test_cases.py +263 -0
  325. snappy/testing.py +131 -0
  326. snappy/tiling/__init__.py +2 -0
  327. snappy/tiling/canonical_key_dict.py +59 -0
  328. snappy/tiling/dict_based_set.py +79 -0
  329. snappy/tiling/floor.py +49 -0
  330. snappy/tiling/hyperboloid_dict.py +54 -0
  331. snappy/tiling/iter_utils.py +78 -0
  332. snappy/tiling/lifted_tetrahedron.py +22 -0
  333. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  334. snappy/tiling/real_hash_dict.py +164 -0
  335. snappy/tiling/test.py +23 -0
  336. snappy/tiling/tile.py +215 -0
  337. snappy/tiling/triangle.py +33 -0
  338. snappy/tkterminal.py +313 -203
  339. snappy/twister/main.py +1 -8
  340. snappy/twister/twister_core.cpython-38-darwin.so +0 -0
  341. snappy/upper_halfspace/__init__.py +146 -0
  342. snappy/upper_halfspace/ideal_point.py +26 -0
  343. snappy/verify/__init__.py +4 -8
  344. snappy/verify/{verifyCanonical.py → canonical.py} +114 -97
  345. snappy/verify/complex_volume/__init__.py +3 -2
  346. snappy/verify/complex_volume/adjust_torsion.py +13 -11
  347. snappy/verify/complex_volume/closed.py +29 -24
  348. snappy/verify/complex_volume/compute_ptolemys.py +8 -6
  349. snappy/verify/complex_volume/cusped.py +10 -9
  350. snappy/verify/complex_volume/extended_bloch.py +14 -12
  351. snappy/verify/{cuspTranslations.py → cusp_translations.py} +15 -14
  352. snappy/verify/edge_equations.py +80 -0
  353. snappy/verify/exceptions.py +23 -56
  354. snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +19 -15
  355. snappy/verify/interval_newton_shapes_engine.py +51 -211
  356. snappy/verify/interval_tree.py +27 -25
  357. snappy/verify/krawczyk_shapes_engine.py +47 -50
  358. snappy/verify/maximal_cusp_area_matrix/__init__.py +17 -86
  359. snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +58 -48
  360. snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +53 -57
  361. snappy/verify/{realAlgebra.py → real_algebra.py} +26 -20
  362. snappy/verify/shapes.py +10 -7
  363. snappy/verify/short_slopes.py +41 -42
  364. snappy/verify/{squareExtensions.py → square_extensions.py} +96 -92
  365. snappy/verify/test.py +59 -57
  366. snappy/verify/upper_halfspace/extended_matrix.py +5 -5
  367. snappy/verify/upper_halfspace/finite_point.py +44 -31
  368. snappy/verify/upper_halfspace/ideal_point.py +69 -57
  369. snappy/verify/volume.py +15 -12
  370. snappy/version.py +2 -3
  371. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/METADATA +14 -12
  372. snappy-3.2.dist-info/RECORD +503 -0
  373. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
  374. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -1
  375. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/top_level.txt +10 -1
  376. snappy/doc/_sources/verify_canon.rst.txt +0 -90
  377. snappy/doc/_static/classic.css +0 -266
  378. snappy/doc/_static/jquery-3.5.1.js +0 -10872
  379. snappy/doc/_static/sidebar.js +0 -159
  380. snappy/doc/_static/underscore-1.13.1.js +0 -2042
  381. snappy/doc/_static/underscore.js +0 -6
  382. snappy/doc/verify_canon.html +0 -283
  383. snappy/ppm_to_png.py +0 -243
  384. snappy/togl/__init__.py +0 -3
  385. snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
  386. snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
  387. snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  388. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  389. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
  390. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  391. snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
  392. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
  393. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
  394. snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  395. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  396. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
  397. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
  398. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  399. snappy/verify/cuspCrossSection.py +0 -1413
  400. snappy/verify/mathHelpers.py +0 -64
  401. snappy-3.0.3.dist-info/RECORD +0 -360
@@ -1,62 +1,111 @@
1
1
 
2
+
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" />
3
7
 
4
- <html>
5
- <head>
6
- <meta charset="utf-8" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <title>Development Basics &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" />
8
13
 
9
- <title>Development Basics &#8212; SnapPy 3.0.3 documentation</title>
10
- <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
11
- <link rel="stylesheet" type="text/css" href="_static/classic.css" />
12
-
13
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
14
- <script src="_static/jquery.js"></script>
15
- <script src="_static/underscore.js"></script>
16
- <script src="_static/doctools.js"></script>
17
-
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>
18
22
  <link rel="index" title="Index" href="genindex.html" />
19
23
  <link rel="search" title="Search" href="search.html" />
20
24
  <link rel="prev" title="To Do List" href="todo.html" />
21
- </head><body>
22
- <div class="related" role="navigation" aria-label="related navigation">
23
- <h3>Navigation</h3>
24
- <ul>
25
- <li class="right" style="margin-right: 10px">
26
- <a href="genindex.html" title="General Index"
27
- accesskey="I">index</a></li>
28
- <li class="right" >
29
- <a href="py-modindex.html" title="Python Module Index"
30
- >modules</a> |</li>
31
- <li class="right" >
32
- <a href="todo.html" title="To Do List"
33
- accesskey="P">previous</a> |</li>
34
- <li class="nav-item nav-item-0"><a href="index.html">SnapPy 3.0.3 documentation</a> &#187;</li>
35
- <li class="nav-item nav-item-this"><a href="">Development Basics</a></li>
36
- </ul>
37
- </div>
25
+ </head>
26
+
27
+ <body class="wy-body-for-nav">
28
+ <div class="wy-grid-for-nav">
29
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
30
+ <div class="wy-side-scroll">
31
+ <div class="wy-side-nav-search" >
32
+
33
+
34
+
35
+ <a href="index.html" class="icon icon-home">
36
+ SnapPy
37
+ <img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
38
+ </a>
39
+ <div role="search">
40
+ <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
41
+ <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
42
+ <input type="hidden" name="check_keywords" value="yes" />
43
+ <input type="hidden" name="area" value="default" />
44
+ </form>
45
+ </div>
46
+ </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
47
+ <ul class="current">
48
+ <li class="toctree-l1"><a class="reference internal" href="installing.html">Installing SnapPy</a></li>
49
+ <li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
50
+ <li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
51
+ <li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
52
+ <li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
53
+ <li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
54
+ <li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
55
+ <li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
56
+ <li class="toctree-l1"><a class="reference internal" href="other.html">Other components</a></li>
57
+ <li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
58
+ <li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
59
+ <li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
60
+ <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
61
+ <li class="toctree-l1 current"><a class="current reference internal" href="#">Development Basics</a><ul>
62
+ <li class="toctree-l2"><a class="reference internal" href="#submitting-patches">Submitting patches</a></li>
63
+ <li class="toctree-l2"><a class="reference internal" href="#macos">macOS</a></li>
64
+ <li class="toctree-l2"><a class="reference internal" href="#windows">Windows</a></li>
65
+ <li class="toctree-l2"><a class="reference internal" href="#linux">Linux</a></li>
66
+ </ul>
67
+ </li>
68
+ </ul>
38
69
 
39
- <div class="document">
40
- <div class="documentwrapper">
41
- <div class="bodywrapper">
42
- <div class="body" role="main">
43
-
70
+ </div>
71
+ </div>
72
+ </nav>
73
+
74
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
75
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
76
+ <a href="index.html">SnapPy</a>
77
+ </nav>
78
+
79
+ <div class="wy-nav-content">
80
+ <div class="rst-content">
81
+ <div role="navigation" aria-label="Page navigation">
82
+ <ul class="wy-breadcrumbs">
83
+ <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
84
+ <li class="breadcrumb-item active">Development Basics</li>
85
+ <li class="wy-breadcrumbs-aside">
86
+ </li>
87
+ </ul>
88
+ <hr/>
89
+ </div>
90
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
91
+ <div itemprop="articleBody">
92
+
44
93
  <section id="development-basics">
45
- <h1>Development Basics<a class="headerlink" href="#development-basics" title="Permalink to this headline">¶</a></h1>
94
+ <h1>Development Basics<a class="headerlink" href="#development-basics" title="Link to this heading"></a></h1>
46
95
  <section id="submitting-patches">
47
- <h2>Submitting patches<a class="headerlink" href="#submitting-patches" title="Permalink to this headline">¶</a></h2>
96
+ <h2>Submitting patches<a class="headerlink" href="#submitting-patches" title="Link to this heading"></a></h2>
48
97
  <p>The source code for SnapPy and its various parts are <a class="reference external" href="https://github.com/3-manifolds">hosted on GitHub</a> as <a class="reference external" href="https://git-scm.com/">Git repositories</a>. To contribute a patch, create a free
49
98
  GitHub account, fork the appropriate repository, and then send us a
50
99
  pull request, as described in <a class="reference external" href="https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request">here</a>.</p>
51
100
  </section>
52
101
  <section id="macos">
53
- <h2>macOS<a class="headerlink" href="#macos" title="Permalink to this headline">¶</a></h2>
102
+ <h2>macOS<a class="headerlink" href="#macos" title="Link to this heading"></a></h2>
54
103
  <p>Here is how to get a clean development setup under macOS.</p>
55
104
  <ul>
56
- <li><p>Install the latest Python 3.8 from Python.org using the <a class="reference external" href="http://www.python.org/download/">Mac
105
+ <li><p>Install the latest Python 3.13 from Python.org using the <a class="reference external" href="http://www.python.org/download/">Mac
57
106
  Installer Disk Image</a>. Set your
58
107
  path so that “python3” is:</p>
59
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">Library</span><span class="o">/</span><span class="n">Frameworks</span><span class="o">/</span><span class="n">Python</span><span class="o">.</span><span class="n">framework</span><span class="o">/</span><span class="n">Versions</span><span class="o">/</span><span class="mf">3.8</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">python3</span>
108
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">Library</span><span class="o">/</span><span class="n">Frameworks</span><span class="o">/</span><span class="n">Python</span><span class="o">.</span><span class="n">framework</span><span class="o">/</span><span class="n">Versions</span><span class="o">/</span><span class="mf">3.13</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">python3</span>
60
109
  </pre></div>
61
110
  </div>
62
111
  </li>
@@ -67,7 +116,7 @@ following packages:</p>
67
116
  <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="n">sphinx</span> <span class="c1"># For building the documentation</span>
68
117
  <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="n">ipython</span> <span class="c1"># Improved Python shell</span>
69
118
  <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="n">py2app</span> <span class="c1"># For making app bundles</span>
70
- <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="n">pyx</span>
119
+ <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="n">pyx</span> <span class="n">FXrays</span> <span class="n">low_index</span>
71
120
  </pre></div>
72
121
  </div>
73
122
  </li>
@@ -85,8 +134,8 @@ example you can install Git via its <a class="reference external" href="https://
85
134
  <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"># Link editor appears!</span>
86
135
  </pre></div>
87
136
  </div>
88
- <p>This last command runs the script plink/app.py”; the real code for
89
- the link editor is in plink/__init__.py”.</p>
137
+ <p>This last command runs the script <code class="docutils literal notranslate"><span class="pre">plink/app.py</span></code>; the real code for
138
+ the link editor is in <code class="docutils literal notranslate"><span class="pre">plink/__init__.py</span></code>.</p>
90
139
  </li>
91
140
  <li><p>Build and install Spherogram:</p>
92
141
  <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">../</span><span class="n">spherogram</span>
@@ -100,7 +149,6 @@ documentation, much of which is extracted from the installed module:</p>
100
149
  <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">../</span><span class="n">snappy</span>
101
150
  <span class="n">python3</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">pip_install</span>
102
151
  <span class="n">python3</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">test</span> <span class="c1"># Run the tests; pretty picture should appear.</span>
103
- <span class="n">python3</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build_docs</span> <span class="n">pip_install</span>
104
152
  <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> <span class="c1">#SnapPy starts!</span>
105
153
  </pre></div>
106
154
  </div>
@@ -115,47 +163,44 @@ usually the way to go.</p>
115
163
  </ul>
116
164
  <p>Some major parts of the SnapPy codebase are:</p>
117
165
  <ul class="simple">
118
- <li><p>“SnapPy.pyx”, SnapPycore.pxi”, SnapPy.pxi”: The Cython interface
166
+ <li><p><code class="docutils literal notranslate"><span class="pre">SnapPy.pyx</span></code>, <code class="docutils literal notranslate"><span class="pre">SnapPycore.pxi</span></code>, <code class="docutils literal notranslate"><span class="pre">SnapPy.pxi</span></code>: The Cython interface
119
167
  to the SnapPea kernel</p></li>
120
- <li><p>“opengl/CyOpenGL*.pyx”: The Cython interface to OpenGL*</p></li>
121
- <li><p>“snappy/app.py”: The core GUI code</p></li>
122
- <li><p>“snappy/polyviewer.py”: The GUI code for Dirichlet domains</p></li>
123
- <li><p>“snappy/horoviewer.py”: The GUI code for horoball pictures</p></li>
124
- <li><p>“snappy/database.py”: Interacts with the sqlite3 manifold database</p></li>
168
+ <li><p><code class="docutils literal notranslate"><span class="pre">opengl/CyOpenGL*.pyx</span></code>: The Cython interface to OpenGL*</p></li>
169
+ <li><p><code class="docutils literal notranslate"><span class="pre">snappy/app.py</span></code>: The core GUI code</p></li>
170
+ <li><p><code class="docutils literal notranslate"><span class="pre">snappy/polyviewer.py</span></code>: The GUI code for Dirichlet domains</p></li>
171
+ <li><p><code class="docutils literal notranslate"><span class="pre">snappy/horoviewer.py</span></code>: The GUI code for horoball pictures</p></li>
172
+ <li><p><code class="docutils literal notranslate"><span class="pre">snappy/database.py</span></code>: Interacts with the sqlite3 manifold database</p></li>
125
173
  </ul>
126
- <p>In addition, Jeff’s old prototype for a Tk-based UI can be found in
127
- “misc/JeffsOldUI/SnapPeaGUI.py”; just run Python on this file to try it
128
- out, after installing <a class="reference external" href="http://pmw.sf.net">PythonMegaWidgets</a>.</p>
129
174
  </section>
130
175
  <section id="windows">
131
- <h2>Windows<a class="headerlink" href="#windows" title="Permalink to this headline">¶</a></h2>
176
+ <h2>Windows<a class="headerlink" href="#windows" title="Link to this heading"></a></h2>
132
177
  <p>These instructions have been tested on Windows 10, and describe
133
178
  setting up a development environment using the (free) MSVC
134
179
  compiler. To build the CyPari subcomponent, which few will want or
135
180
  need to do, one must install additional tools.</p>
136
181
  <ul>
137
- <li><p>Install <a class="reference external" href="https://www.python.org/downloads/windows/">Python 3.7</a>,
138
- specifically the 32 bit version (Windows x86 not Windows x86-64).
182
+ <li><p>Install <a class="reference external" href="https://www.python.org/downloads/windows/">Python 3.13.1</a>, specifically the
183
+ default 64-bit version (the file name will end in <code class="docutils literal notranslate"><span class="pre">amd64.exe</span></code>).
139
184
  These instructions assume it has been installed in the directory
140
- <code class="docutils literal notranslate"><span class="pre">C:\Python37</span></code> which is not the default.</p></li>
141
- <li><p>With Python 3.7.4, you need the MSVC command line tools. You can
185
+ <code class="docutils literal notranslate"><span class="pre">C:\Python313</span></code> which is not the default.</p></li>
186
+ <li><p>With Python 3.13.1, you need the MSVC command line tools. You can
142
187
  get them by using Microsoft’s free <a class="reference external" href="https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&amp;rel=16">Build Tools for Visual Studio 2019</a>
143
188
  installer and selecting the “C++ command line tools” and installing
144
189
  the following subpackages: “MSVC v142 - VS 2019 C++ build tools”,
145
- Testsing tools core features”, “C++/CLI support for v142”, and
190
+ Testing tools core features”, “C++/CLI support for v142”, and
146
191
  “Windows 10 SDK (most recent version)”.</p>
147
192
  <p>If you would like to make your own installer you will also need
148
193
  <a class="reference external" href="http://www.jrsoftware.org/isdl.php">Inno Setup</a>, specifically the
149
194
  unicode version; tested with version 5.5.9.</p>
150
195
  </li>
151
- <li><p>Install whichever version of <a class="reference external" href="http://msys2.github.io">MSYS2</a> is
152
- appropriate for your version Windows. Most commonly, you will have
153
- a 64-bit Windows and hence want the “x86_64” installer; for
154
- concreteness the rest of these instructions assume this. (Technical
155
- note: even if you want to build 32-bit binaries, if your Windows is
156
- 64-bit you want the x86_64 installer.) Follow the instructions on
157
- the webpage to update everything to the very latest MSYS2
158
- (<code class="docutils literal notranslate"><span class="pre">pacman</span> <span class="pre">-Sy</span> <span class="pre">pacman;</span> <span class="pre">pacman</span> <span class="pre">-Syu;</span> <span class="pre">pacman</span> <span class="pre">-Su</span></code> etc.).</p></li>
196
+ <li><p>Install <a class="reference external" href="http://msys2.github.io">MSYS2</a> as appropriate for your
197
+ version Windows. Follow the instructions on the webpage to update
198
+ everything to the very latest MSYS2 (<code class="docutils literal notranslate"><span class="pre">pacman</span> <span class="pre">-Sy</span> <span class="pre">pacman;</span> <span class="pre">pacman</span>
199
+ <span class="pre">-Syu;</span> <span class="pre">pacman</span> <span class="pre">-Su</span></code> etc.). You should also install the ucrt toolchain:</p>
200
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">mingw</span><span class="o">-</span><span class="n">w64</span><span class="o">-</span><span class="n">ucrt</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">toolchain</span>
201
+ </pre></div>
202
+ </div>
203
+ </li>
159
204
  <li><p>Make a shortcut to <code class="docutils literal notranslate"><span class="pre">c:\msys64\msys2.exe</span></code> as you will be using it all
160
205
  the time; alternatively, pin <code class="docutils literal notranslate"><span class="pre">mys2.exe</span></code> to your taskbar.</p></li>
161
206
  <li><p>Install some additional packages:</p>
@@ -172,7 +217,7 @@ via:</p>
172
217
  <li><p>Make it so that MinGW, Python, and Inno Setup are all in your PATH,
173
218
  as well as work around some stupid bug, by making the end of your
174
219
  “~/.bash_profile” file to read:</p>
175
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PATH=/c/Python37:/c/Python37/Scripts:$PATH
220
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>PATH=/c/Python313:/c/Python313/Scripts:$PATH
176
221
  PATH=$PATH:&#39;/c/Program Files (x86)/Inno Setup 5&#39;
177
222
  export PATH
178
223
  alias emacs=&quot;/mingw64/bin/emacs&quot;
@@ -189,11 +234,11 @@ typing:</p>
189
234
  <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="o">--</span><span class="n">version</span>
190
235
  </pre></div>
191
236
  </div>
192
- <p>You should see something like <code class="docutils literal notranslate"><span class="pre">Python</span> <span class="pre">3.7.4</span></code>.</p>
237
+ <p>You should see something like <code class="docutils literal notranslate"><span class="pre">Python</span> <span class="pre">3.13.1</span></code>.</p>
193
238
  </li>
194
239
  <li><p>Use pip to install some basic tools:</p>
195
240
  <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><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="n">pip</span> <span class="n">setuptools</span> <span class="n">wheel</span> <span class="c1"># Upgrades pip to the current version.</span>
196
- <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="n">pyreadline</span> <span class="n">sphinx</span> <span class="n">cython</span> <span class="n">cypari</span> <span class="n">pyx</span>
241
+ <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="n">pyreadline</span> <span class="n">sphinx</span> <span class="n">cython</span> <span class="n">cypari</span> <span class="n">pyx</span> <span class="n">FXrays</span> <span class="n">low_index</span>
197
242
  </pre></div>
198
243
  </div>
199
244
  </li>
@@ -253,94 +298,87 @@ you start a “Command Prompt” as Administrator and do:</p>
253
298
  </pre></div>
254
299
  </div>
255
300
  </li>
256
- <li><p>To build CyPari, first install the 32-bit gcc compiler:</p>
257
- <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">mingw</span><span class="o">-</span><span class="n">w64</span><span class="o">-</span><span class="n">i686</span><span class="o">-</span><span class="n">gcc</span>
301
+ </ul>
302
+ </section>
303
+ <section id="linux">
304
+ <h2>Linux<a class="headerlink" href="#linux" title="Link to this heading"></a></h2>
305
+ <p>Things you’ll need:</p>
306
+ <ul>
307
+ <li><p>Python 3 with Tkinter: You’ll need to have <a class="reference external" href="http://python.org">Python</a> (version 3.9 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
308
+ the header files. For instance, on Debian or Ubuntu, install the
309
+ packages “python3-tk”, “python3-pip”, and “python3-dev”. On Fedora,
310
+ you’ll want e.g. “python3-tkinter”, “python3-pip”, and
311
+ “python3-devel”, and “python3-wheel”.</p></li>
312
+ <li><p>Test that Python is in order by installing PLink from source:</p>
313
+ <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>
314
+ <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>
258
315
  </pre></div>
259
316
  </div>
260
- <p>Then open a <em>MinGW32 terminal window</em>, which is <strong>different</strong> than a
261
- MSYS2 terminal, and can be started via <cite>c:msys64mingw32.exe</cite>.
262
- This will put the 32-bit gcc in your path and set the correct
263
- “uname”. Now do:</p>
264
- <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">CyPari</span><span class="o">.</span><span class="n">git</span>
265
- <span class="n">cd</span> <span class="n">CyPari</span>
266
- <span class="n">sh</span> <span class="n">build_pari</span><span class="o">.</span><span class="n">sh</span>
267
- <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">compiler</span><span class="o">=</span><span class="n">mingw32</span>
268
- <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">install</span>
269
- <span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">cypari</span><span class="o">.</span><span class="n">test</span> <span class="c1"># About 30 tests will fail.</span>
317
+ </li>
318
+ </ul>
319
+ <ul id="openglmesa">
320
+ <li><p>Support for OpenGL (3D graphics): This is built in on OS X and the
321
+ 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
322
+ SnapPy. On Debian and Ubuntu, install “libglu1-mesa-dev”; On Fedora install
323
+ “mesa-libGLU-devel”.</p></li>
324
+ <li><p><a class="reference external" href="http://cython.org">Cython</a>, which you can install via:</p>
325
+ <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>
326
+ </pre></div>
327
+ </div>
328
+ </li>
329
+ <li><p>The gcc C++ compiler, g++.</p></li>
330
+ <li><p>Fetch the latest development versions of the source straight from
331
+ the repository:</p>
332
+ <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">PLink</span><span class="o">.</span><span class="n">git</span>
333
+ <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">Spherogram</span><span class="o">.</span><span class="n">git</span>
334
+ <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>
335
+ </pre></div>
336
+ </div>
337
+ </li>
338
+ <li><p>Build the components, from easiest to hardest, and then test:</p>
339
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">PLink</span>
340
+ <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">pip_install</span>
341
+ <span class="n">cd</span> <span class="o">../</span><span class="n">Spherogram</span>
342
+ <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">pip_install</span>
343
+ <span class="n">cd</span> <span class="o">../</span><span class="n">SnapPy</span>
344
+ <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">pip_install</span>
345
+ <span class="n">cd</span> <span class="o">..</span>
346
+ <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">test</span>
270
347
  </pre></div>
271
348
  </div>
272
- <p>Warning: CyPari will not build if there are spaces in the path to
273
- the CyPari directory.</p>
274
349
  </li>
275
350
  </ul>
276
351
  </section>
277
- <section id="linux">
278
- <h2>Linux<a class="headerlink" href="#linux" title="Permalink to this headline">¶</a></h2>
279
- <p>See the <a class="reference internal" href="installing.html#generic-unix"><span class="std std-ref">installation instructions on generic Unix</span></a> for how to build SnapPy from source.</p>
280
- </section>
281
352
  </section>
282
353
 
283
354
 
284
- <div class="clearer"></div>
355
+ </div>
285
356
  </div>
286
- </div>
287
- </div>
288
- <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
289
- <div class="sphinxsidebarwrapper">
290
- <h3><a href="index.html">Table of Contents</a></h3>
291
- <ul>
292
- <li><a class="reference internal" href="#">Development Basics</a><ul>
293
- <li><a class="reference internal" href="#submitting-patches">Submitting patches</a></li>
294
- <li><a class="reference internal" href="#macos">macOS</a></li>
295
- <li><a class="reference internal" href="#windows">Windows</a></li>
296
- <li><a class="reference internal" href="#linux">Linux</a></li>
297
- </ul>
298
- </li>
299
- </ul>
300
-
301
- <h4>Previous topic</h4>
302
- <p class="topless"><a href="todo.html"
303
- title="previous chapter">To Do List</a></p>
304
- <div role="note" aria-label="source link">
305
- <h3>This Page</h3>
306
- <ul class="this-page-menu">
307
- <li><a href="_sources/development.rst.txt"
308
- rel="nofollow">Show Source</a></li>
309
- </ul>
310
- </div>
311
- <div id="searchbox" style="display: none" role="search">
312
- <h3 id="searchlabel">Quick search</h3>
313
- <div class="searchformwrapper">
314
- <form class="search" action="search.html" method="get">
315
- <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
316
- <input type="submit" value="Go" />
317
- </form>
357
+ <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
358
+ <a href="todo.html" class="btn btn-neutral float-left" title="To Do List" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
318
359
  </div>
319
- </div>
320
- <script>$('#searchbox').show(0);</script>
360
+
361
+ <hr/>
362
+
363
+ <div role="contentinfo">
364
+ <p>&#169; Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
365
+ </div>
366
+
367
+ Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
368
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
369
+ provided by <a href="https://readthedocs.org">Read the Docs</a>.
370
+
371
+
372
+ </footer>
321
373
  </div>
322
374
  </div>
323
- <div class="clearer"></div>
324
- </div>
325
- <div class="related" role="navigation" aria-label="related navigation">
326
- <h3>Navigation</h3>
327
- <ul>
328
- <li class="right" style="margin-right: 10px">
329
- <a href="genindex.html" title="General Index"
330
- >index</a></li>
331
- <li class="right" >
332
- <a href="py-modindex.html" title="Python Module Index"
333
- >modules</a> |</li>
334
- <li class="right" >
335
- <a href="todo.html" title="To Do List"
336
- >previous</a> |</li>
337
- <li class="nav-item nav-item-0"><a href="index.html">SnapPy 3.0.3 documentation</a> &#187;</li>
338
- <li class="nav-item nav-item-this"><a href="">Development Basics</a></li>
339
- </ul>
340
- </div>
341
- <div class="footer" role="contentinfo">
342
- &#169; Copyright 2009-2021, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.
343
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.3.1.
344
- </div>
345
- </body>
375
+ </section>
376
+ </div>
377
+ <script>
378
+ jQuery(function () {
379
+ SphinxRtdTheme.Navigation.enable(true);
380
+ });
381
+ </script>
382
+
383
+ </body>
346
384
  </html>