snappy 3.2__cp310-cp310-macosx_10_12_x86_64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. snappy/CyOpenGL.cpython-310-darwin.so +0 -0
  2. snappy/SnapPy.cpython-310-darwin.so +0 -0
  3. snappy/SnapPy.ico +0 -0
  4. snappy/SnapPy.png +0 -0
  5. snappy/SnapPyHP.cpython-310-darwin.so +0 -0
  6. snappy/__init__.py +760 -0
  7. snappy/app.py +605 -0
  8. snappy/app_menus.py +372 -0
  9. snappy/browser.py +998 -0
  10. snappy/cache.py +25 -0
  11. snappy/canonical.py +249 -0
  12. snappy/cusps/__init__.py +38 -0
  13. snappy/cusps/cusp_area_matrix.py +101 -0
  14. snappy/cusps/cusp_areas_from_matrix.py +173 -0
  15. snappy/cusps/maximal_cusp_area_matrix.py +136 -0
  16. snappy/cusps/test.py +21 -0
  17. snappy/cusps/trig_cusp_area_matrix.py +63 -0
  18. snappy/database.py +454 -0
  19. snappy/db_utilities.py +79 -0
  20. snappy/decorated_isosig.py +710 -0
  21. snappy/dev/__init__.py +0 -0
  22. snappy/dev/extended_ptolemy/__init__.py +8 -0
  23. snappy/dev/extended_ptolemy/closed.py +106 -0
  24. snappy/dev/extended_ptolemy/complexVolumesClosed.py +149 -0
  25. snappy/dev/extended_ptolemy/direct.py +42 -0
  26. snappy/dev/extended_ptolemy/extended.py +406 -0
  27. snappy/dev/extended_ptolemy/giac_helper.py +43 -0
  28. snappy/dev/extended_ptolemy/giac_rur.py +129 -0
  29. snappy/dev/extended_ptolemy/gluing.py +46 -0
  30. snappy/dev/extended_ptolemy/phc_wrapper.py +220 -0
  31. snappy/dev/extended_ptolemy/printMatrices.py +70 -0
  32. snappy/dev/vericlosed/__init__.py +1 -0
  33. snappy/dev/vericlosed/computeApproxHyperbolicStructureNew.py +159 -0
  34. snappy/dev/vericlosed/computeApproxHyperbolicStructureOrb.py +90 -0
  35. snappy/dev/vericlosed/computeVerifiedHyperbolicStructure.py +111 -0
  36. snappy/dev/vericlosed/gimbalLoopFinder.py +130 -0
  37. snappy/dev/vericlosed/hyperbolicStructure.py +313 -0
  38. snappy/dev/vericlosed/krawczykCertifiedEdgeLengthsEngine.py +165 -0
  39. snappy/dev/vericlosed/oneVertexTruncatedComplex.py +122 -0
  40. snappy/dev/vericlosed/orb/__init__.py +1 -0
  41. snappy/dev/vericlosed/orb/orb_solution_for_snappea_finite_triangulation_mac +0 -0
  42. snappy/dev/vericlosed/parseVertexGramMatrixFile.py +47 -0
  43. snappy/dev/vericlosed/polishApproxHyperbolicStructure.py +61 -0
  44. snappy/dev/vericlosed/test.py +54 -0
  45. snappy/dev/vericlosed/truncatedComplex.py +176 -0
  46. snappy/dev/vericlosed/verificationError.py +58 -0
  47. snappy/dev/vericlosed/verifyHyperbolicStructureEngine.py +177 -0
  48. snappy/doc/_images/SnapPy-196.png +0 -0
  49. snappy/doc/_images/geodesics.jpg +0 -0
  50. snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
  51. snappy/doc/_images/m125_paper_plane.jpg +0 -0
  52. snappy/doc/_images/mac.png +0 -0
  53. snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
  54. snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
  55. snappy/doc/_images/plink-action.png +0 -0
  56. snappy/doc/_images/ubuntu.png +0 -0
  57. snappy/doc/_images/win7.png +0 -0
  58. snappy/doc/_sources/additional_classes.rst.txt +40 -0
  59. snappy/doc/_sources/bugs.rst.txt +14 -0
  60. snappy/doc/_sources/censuses.rst.txt +51 -0
  61. snappy/doc/_sources/credits.rst.txt +75 -0
  62. snappy/doc/_sources/development.rst.txt +259 -0
  63. snappy/doc/_sources/index.rst.txt +182 -0
  64. snappy/doc/_sources/installing.rst.txt +247 -0
  65. snappy/doc/_sources/manifold.rst.txt +6 -0
  66. snappy/doc/_sources/manifoldhp.rst.txt +46 -0
  67. snappy/doc/_sources/news.rst.txt +355 -0
  68. snappy/doc/_sources/other.rst.txt +25 -0
  69. snappy/doc/_sources/platonic_census.rst.txt +20 -0
  70. snappy/doc/_sources/plink.rst.txt +102 -0
  71. snappy/doc/_sources/ptolemy.rst.txt +66 -0
  72. snappy/doc/_sources/ptolemy_classes.rst.txt +42 -0
  73. snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -0
  74. snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -0
  75. snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -0
  76. snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -0
  77. snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -0
  78. snappy/doc/_sources/screenshots.rst.txt +21 -0
  79. snappy/doc/_sources/snap.rst.txt +87 -0
  80. snappy/doc/_sources/snappy.rst.txt +28 -0
  81. snappy/doc/_sources/spherogram.rst.txt +103 -0
  82. snappy/doc/_sources/todo.rst.txt +47 -0
  83. snappy/doc/_sources/triangulation.rst.txt +11 -0
  84. snappy/doc/_sources/tutorial.rst.txt +49 -0
  85. snappy/doc/_sources/verify.rst.txt +210 -0
  86. snappy/doc/_sources/verify_internals.rst.txt +79 -0
  87. snappy/doc/_static/SnapPy-horizontal-128.png +0 -0
  88. snappy/doc/_static/SnapPy.ico +0 -0
  89. snappy/doc/_static/_sphinx_javascript_frameworks_compat.js +123 -0
  90. snappy/doc/_static/basic.css +925 -0
  91. snappy/doc/_static/css/badge_only.css +1 -0
  92. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  93. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  94. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  95. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  96. snappy/doc/_static/css/fonts/fontawesome-webfont.eot +0 -0
  97. snappy/doc/_static/css/fonts/fontawesome-webfont.svg +2671 -0
  98. snappy/doc/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  99. snappy/doc/_static/css/fonts/fontawesome-webfont.woff +0 -0
  100. snappy/doc/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  101. snappy/doc/_static/css/fonts/lato-bold-italic.woff +0 -0
  102. snappy/doc/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  103. snappy/doc/_static/css/fonts/lato-bold.woff +0 -0
  104. snappy/doc/_static/css/fonts/lato-bold.woff2 +0 -0
  105. snappy/doc/_static/css/fonts/lato-normal-italic.woff +0 -0
  106. snappy/doc/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  107. snappy/doc/_static/css/fonts/lato-normal.woff +0 -0
  108. snappy/doc/_static/css/fonts/lato-normal.woff2 +0 -0
  109. snappy/doc/_static/css/theme.css +4 -0
  110. snappy/doc/_static/doctools.js +156 -0
  111. snappy/doc/_static/documentation_options.js +13 -0
  112. snappy/doc/_static/file.png +0 -0
  113. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  114. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  115. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  116. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  117. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  118. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  119. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  120. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  121. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  122. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  123. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  124. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  125. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  126. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  127. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  128. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  129. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  130. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  131. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  132. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  133. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  134. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  135. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  136. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  137. snappy/doc/_static/jquery.js +2 -0
  138. snappy/doc/_static/js/badge_only.js +1 -0
  139. snappy/doc/_static/js/theme.js +1 -0
  140. snappy/doc/_static/js/versions.js +228 -0
  141. snappy/doc/_static/language_data.js +199 -0
  142. snappy/doc/_static/minus.png +0 -0
  143. snappy/doc/_static/plus.png +0 -0
  144. snappy/doc/_static/pygments.css +75 -0
  145. snappy/doc/_static/searchtools.js +620 -0
  146. snappy/doc/_static/snappy_furo.css +33 -0
  147. snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -0
  148. snappy/doc/_static/sphinx_highlight.js +154 -0
  149. snappy/doc/additional_classes.html +1500 -0
  150. snappy/doc/bugs.html +132 -0
  151. snappy/doc/censuses.html +427 -0
  152. snappy/doc/credits.html +181 -0
  153. snappy/doc/development.html +384 -0
  154. snappy/doc/genindex.html +1331 -0
  155. snappy/doc/index.html +262 -0
  156. snappy/doc/installing.html +346 -0
  157. snappy/doc/manifold.html +3452 -0
  158. snappy/doc/manifoldhp.html +180 -0
  159. snappy/doc/news.html +388 -0
  160. snappy/doc/objects.inv +0 -0
  161. snappy/doc/other.html +161 -0
  162. snappy/doc/platonic_census.html +375 -0
  163. snappy/doc/plink.html +210 -0
  164. snappy/doc/ptolemy.html +254 -0
  165. snappy/doc/ptolemy_classes.html +1144 -0
  166. snappy/doc/ptolemy_examples1.html +409 -0
  167. snappy/doc/ptolemy_examples2.html +471 -0
  168. snappy/doc/ptolemy_examples3.html +414 -0
  169. snappy/doc/ptolemy_examples4.html +195 -0
  170. snappy/doc/ptolemy_prelim.html +248 -0
  171. snappy/doc/py-modindex.html +165 -0
  172. snappy/doc/screenshots.html +141 -0
  173. snappy/doc/search.html +135 -0
  174. snappy/doc/searchindex.js +1 -0
  175. snappy/doc/snap.html +202 -0
  176. snappy/doc/snappy.html +181 -0
  177. snappy/doc/spherogram.html +1211 -0
  178. snappy/doc/todo.html +166 -0
  179. snappy/doc/triangulation.html +1584 -0
  180. snappy/doc/tutorial.html +159 -0
  181. snappy/doc/verify.html +330 -0
  182. snappy/doc/verify_internals.html +1235 -0
  183. snappy/drilling/__init__.py +456 -0
  184. snappy/drilling/barycentric.py +103 -0
  185. snappy/drilling/constants.py +5 -0
  186. snappy/drilling/crush.py +270 -0
  187. snappy/drilling/cusps.py +125 -0
  188. snappy/drilling/debug.py +242 -0
  189. snappy/drilling/epsilons.py +6 -0
  190. snappy/drilling/exceptions.py +55 -0
  191. snappy/drilling/moves.py +620 -0
  192. snappy/drilling/peripheral_curves.py +210 -0
  193. snappy/drilling/perturb.py +188 -0
  194. snappy/drilling/shorten.py +36 -0
  195. snappy/drilling/subdivide.py +274 -0
  196. snappy/drilling/test.py +23 -0
  197. snappy/drilling/test_cases.py +126 -0
  198. snappy/drilling/tracing.py +351 -0
  199. snappy/exceptions.py +26 -0
  200. snappy/export_stl.py +120 -0
  201. snappy/exterior_to_link/__init__.py +2 -0
  202. snappy/exterior_to_link/barycentric_geometry.py +463 -0
  203. snappy/exterior_to_link/exceptions.py +6 -0
  204. snappy/exterior_to_link/geodesic_map.json +14408 -0
  205. snappy/exterior_to_link/hyp_utils.py +112 -0
  206. snappy/exterior_to_link/link_projection.py +323 -0
  207. snappy/exterior_to_link/main.py +197 -0
  208. snappy/exterior_to_link/mcomplex_with_expansion.py +261 -0
  209. snappy/exterior_to_link/mcomplex_with_link.py +687 -0
  210. snappy/exterior_to_link/mcomplex_with_memory.py +162 -0
  211. snappy/exterior_to_link/pl_utils.py +491 -0
  212. snappy/exterior_to_link/put_in_S3.py +156 -0
  213. snappy/exterior_to_link/rational_linear_algebra.py +123 -0
  214. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +135 -0
  215. snappy/exterior_to_link/simplify_to_base_tri.py +114 -0
  216. snappy/exterior_to_link/stored_moves.py +475 -0
  217. snappy/exterior_to_link/test.py +31 -0
  218. snappy/filedialog.py +28 -0
  219. snappy/geometric_structure/__init__.py +212 -0
  220. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  221. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
  222. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
  223. snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
  224. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
  225. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
  226. snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
  227. snappy/geometric_structure/geodesic/__init__.py +0 -0
  228. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  229. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  230. snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
  231. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  232. snappy/geometric_structure/geodesic/constants.py +6 -0
  233. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  234. snappy/geometric_structure/geodesic/fixed_points.py +93 -0
  235. snappy/geometric_structure/geodesic/geodesic_start_point_info.py +435 -0
  236. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  237. snappy/geometric_structure/geodesic/line.py +30 -0
  238. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  239. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
  240. snappy/geometric_structure/test.py +22 -0
  241. snappy/gui.py +121 -0
  242. snappy/horoviewer.py +443 -0
  243. snappy/hyperboloid/__init__.py +212 -0
  244. snappy/hyperboloid/distances.py +245 -0
  245. snappy/hyperboloid/horoball.py +19 -0
  246. snappy/hyperboloid/line.py +35 -0
  247. snappy/hyperboloid/point.py +9 -0
  248. snappy/hyperboloid/triangle.py +29 -0
  249. snappy/info_icon.gif +0 -0
  250. snappy/infowindow.py +65 -0
  251. snappy/isometry_signature.py +382 -0
  252. snappy/len_spec/__init__.py +596 -0
  253. snappy/len_spec/geodesic_info.py +110 -0
  254. snappy/len_spec/geodesic_key_info_dict.py +117 -0
  255. snappy/len_spec/geodesic_piece.py +143 -0
  256. snappy/len_spec/geometric_structure.py +182 -0
  257. snappy/len_spec/geometry.py +80 -0
  258. snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
  259. snappy/len_spec/spine.py +206 -0
  260. snappy/len_spec/test.py +24 -0
  261. snappy/len_spec/test_cases.py +69 -0
  262. snappy/len_spec/tile.py +275 -0
  263. snappy/len_spec/word.py +86 -0
  264. snappy/manifolds/HTWKnots/alternating.gz +0 -0
  265. snappy/manifolds/HTWKnots/nonalternating.gz +0 -0
  266. snappy/manifolds/__init__.py +3 -0
  267. snappy/math_basics.py +176 -0
  268. snappy/matrix.py +525 -0
  269. snappy/number.py +657 -0
  270. snappy/numeric_output_checker.py +345 -0
  271. snappy/pari.py +41 -0
  272. snappy/phone_home.py +57 -0
  273. snappy/polyviewer.py +259 -0
  274. snappy/ptolemy/__init__.py +17 -0
  275. snappy/ptolemy/component.py +103 -0
  276. snappy/ptolemy/coordinates.py +2290 -0
  277. snappy/ptolemy/fieldExtensions.py +153 -0
  278. snappy/ptolemy/findLoops.py +473 -0
  279. snappy/ptolemy/geometricRep.py +59 -0
  280. snappy/ptolemy/homology.py +165 -0
  281. snappy/ptolemy/magma/default.magma_template +229 -0
  282. snappy/ptolemy/magma/radicalsOfPrimaryDecomposition.magma_template +79 -0
  283. snappy/ptolemy/manifoldMethods.py +395 -0
  284. snappy/ptolemy/matrix.py +350 -0
  285. snappy/ptolemy/numericalSolutionsToGroebnerBasis.py +113 -0
  286. snappy/ptolemy/polynomial.py +857 -0
  287. snappy/ptolemy/processComponents.py +173 -0
  288. snappy/ptolemy/processFileBase.py +247 -0
  289. snappy/ptolemy/processFileDispatch.py +46 -0
  290. snappy/ptolemy/processMagmaFile.py +392 -0
  291. snappy/ptolemy/processRurFile.py +150 -0
  292. snappy/ptolemy/ptolemyGeneralizedObstructionClass.py +102 -0
  293. snappy/ptolemy/ptolemyObstructionClass.py +64 -0
  294. snappy/ptolemy/ptolemyVariety.py +1029 -0
  295. snappy/ptolemy/ptolemyVarietyPrimeIdealGroebnerBasis.py +140 -0
  296. snappy/ptolemy/reginaWrapper.py +698 -0
  297. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c0.magma_out.bz2 +0 -0
  298. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c1.magma_out.bz2 +0 -0
  299. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c2.magma_out.bz2 +0 -0
  300. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c3.magma_out.bz2 +0 -0
  301. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c4.magma_out.bz2 +0 -0
  302. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c5.magma_out.bz2 +0 -0
  303. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c6.magma_out.bz2 +0 -0
  304. snappy/ptolemy/regina_testing_files/DT_mcbbiceaibjklmdfgh__sl2_c7.magma_out.bz2 +0 -0
  305. snappy/ptolemy/regina_testing_files_generalized/m003__sl3_c0.magma_out.bz2 +0 -0
  306. snappy/ptolemy/regina_testing_files_generalized/m003__sl3_c1.magma_out.bz2 +0 -0
  307. snappy/ptolemy/regina_testing_files_generalized/m015__sl2_c0.magma_out.bz2 +0 -0
  308. snappy/ptolemy/regina_testing_files_generalized/m015__sl2_c1.magma_out.bz2 +0 -0
  309. snappy/ptolemy/regina_testing_files_generalized/m015__sl3_c0.magma_out.bz2 +0 -0
  310. snappy/ptolemy/regina_testing_files_generalized/m015__sl3_c1.magma_out.bz2 +0 -0
  311. snappy/ptolemy/rur.py +545 -0
  312. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +277 -0
  313. snappy/ptolemy/test.py +1126 -0
  314. snappy/ptolemy/testing_files/3_1__sl2_c0.magma_out.bz2 +0 -0
  315. snappy/ptolemy/testing_files/3_1__sl2_c1.magma_out.bz2 +0 -0
  316. snappy/ptolemy/testing_files/4_1__sl2_c0.magma_out.bz2 +0 -0
  317. snappy/ptolemy/testing_files/4_1__sl2_c1.magma_out.bz2 +0 -0
  318. snappy/ptolemy/testing_files/4_1__sl3_c0.magma_out.bz2 +0 -0
  319. snappy/ptolemy/testing_files/4_1__sl4_c0.magma_out.bz2 +0 -0
  320. snappy/ptolemy/testing_files/4_1__sl4_c1.magma_out.bz2 +0 -0
  321. snappy/ptolemy/testing_files/5_2__sl2_c0.magma_out.bz2 +0 -0
  322. snappy/ptolemy/testing_files/5_2__sl2_c1.magma_out.bz2 +0 -0
  323. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c0.magma_out.bz2 +0 -0
  324. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c1.magma_out.bz2 +0 -0
  325. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c2.magma_out.bz2 +0 -0
  326. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c3.magma_out.bz2 +0 -0
  327. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c4.magma_out.bz2 +0 -0
  328. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c5.magma_out.bz2 +0 -0
  329. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c6.magma_out.bz2 +0 -0
  330. snappy/ptolemy/testing_files/DT_mcbbiceaibjklmdfgh__sl2_c7.magma_out.bz2 +0 -0
  331. snappy/ptolemy/testing_files/data/pgl2/OrientableCuspedCensus/03_tetrahedra/m019__sl2_c0.magma_out +95 -0
  332. snappy/ptolemy/testing_files/data/pgl2/OrientableCuspedCensus/03_tetrahedra/m019__sl2_c1.magma_out +95 -0
  333. snappy/ptolemy/testing_files/m015__sl3_c0.magma_out.bz2 +0 -0
  334. snappy/ptolemy/testing_files/m135__sl2_c0.magma_out.bz2 +0 -0
  335. snappy/ptolemy/testing_files/m135__sl2_c1.magma_out.bz2 +0 -0
  336. snappy/ptolemy/testing_files/m135__sl2_c2.magma_out.bz2 +0 -0
  337. snappy/ptolemy/testing_files/m135__sl2_c3.magma_out.bz2 +0 -0
  338. snappy/ptolemy/testing_files/m135__sl2_c4.magma_out.bz2 +0 -0
  339. snappy/ptolemy/testing_files/m135__sl2_c5.magma_out.bz2 +0 -0
  340. snappy/ptolemy/testing_files/m135__sl2_c6.magma_out.bz2 +0 -0
  341. snappy/ptolemy/testing_files/m135__sl2_c7.magma_out.bz2 +0 -0
  342. snappy/ptolemy/testing_files/s000__sl2_c0.magma_out.bz2 +0 -0
  343. snappy/ptolemy/testing_files/s000__sl2_c1.magma_out.bz2 +0 -0
  344. snappy/ptolemy/testing_files/t00000__sl2_c0.magma_out.bz2 +0 -0
  345. snappy/ptolemy/testing_files/t00000__sl2_c1.magma_out.bz2 +0 -0
  346. snappy/ptolemy/testing_files/v0000__sl2_c0.magma_out.bz2 +0 -0
  347. snappy/ptolemy/testing_files/v0000__sl2_c1.magma_out.bz2 +0 -0
  348. snappy/ptolemy/testing_files/v0000__sl2_c2.magma_out.bz2 +0 -0
  349. snappy/ptolemy/testing_files/v0000__sl2_c3.magma_out.bz2 +0 -0
  350. snappy/ptolemy/testing_files_generalized/m003__sl2_c0.magma_out.bz2 +0 -0
  351. snappy/ptolemy/testing_files_generalized/m003__sl2_c1.magma_out.bz2 +0 -0
  352. snappy/ptolemy/testing_files_generalized/m003__sl3_c0.magma_out.bz2 +0 -0
  353. snappy/ptolemy/testing_files_generalized/m003__sl3_c1.magma_out.bz2 +0 -0
  354. snappy/ptolemy/testing_files_generalized/m004__sl2_c0.magma_out.bz2 +0 -0
  355. snappy/ptolemy/testing_files_generalized/m004__sl2_c1.magma_out.bz2 +0 -0
  356. snappy/ptolemy/testing_files_generalized/m015__sl2_c1.magma_out.bz2 +0 -0
  357. snappy/ptolemy/testing_files_generalized/m015__sl3_c0.magma_out.bz2 +0 -0
  358. snappy/ptolemy/testing_files_rur/m052__sl3_c0.rur.bz2 +0 -0
  359. snappy/ptolemy/utilities.py +236 -0
  360. snappy/raytracing/__init__.py +64 -0
  361. snappy/raytracing/additional_horospheres.py +64 -0
  362. snappy/raytracing/additional_len_spec_choices.py +63 -0
  363. snappy/raytracing/cohomology_fractal.py +197 -0
  364. snappy/raytracing/eyeball.py +123 -0
  365. snappy/raytracing/finite_raytracing_data.py +237 -0
  366. snappy/raytracing/finite_viewer.py +590 -0
  367. snappy/raytracing/geodesic_tube_info.py +174 -0
  368. snappy/raytracing/geodesics.py +246 -0
  369. snappy/raytracing/geodesics_window.py +258 -0
  370. snappy/raytracing/gui_utilities.py +293 -0
  371. snappy/raytracing/hyperboloid_navigation.py +556 -0
  372. snappy/raytracing/hyperboloid_utilities.py +234 -0
  373. snappy/raytracing/ideal_raytracing_data.py +592 -0
  374. snappy/raytracing/inside_viewer.py +974 -0
  375. snappy/raytracing/pack.py +22 -0
  376. snappy/raytracing/raytracing_data.py +126 -0
  377. snappy/raytracing/raytracing_view.py +454 -0
  378. snappy/raytracing/shaders/Eye.png +0 -0
  379. snappy/raytracing/shaders/NonGeometric.png +0 -0
  380. snappy/raytracing/shaders/__init__.py +101 -0
  381. snappy/raytracing/shaders/fragment.glsl +1744 -0
  382. snappy/raytracing/test.py +29 -0
  383. snappy/raytracing/tooltip.py +146 -0
  384. snappy/raytracing/upper_halfspace_utilities.py +98 -0
  385. snappy/raytracing/view_scale_controller.py +98 -0
  386. snappy/raytracing/zoom_slider/__init__.py +263 -0
  387. snappy/raytracing/zoom_slider/inward.png +0 -0
  388. snappy/raytracing/zoom_slider/inward18.png +0 -0
  389. snappy/raytracing/zoom_slider/outward.png +0 -0
  390. snappy/raytracing/zoom_slider/outward18.png +0 -0
  391. snappy/raytracing/zoom_slider/test.py +20 -0
  392. snappy/sage_helper.py +117 -0
  393. snappy/settings.py +409 -0
  394. snappy/shell.py +53 -0
  395. snappy/snap/__init__.py +114 -0
  396. snappy/snap/character_varieties.py +375 -0
  397. snappy/snap/find_field.py +372 -0
  398. snappy/snap/fundamental_polyhedron.py +569 -0
  399. snappy/snap/generators.py +39 -0
  400. snappy/snap/interval_reps.py +81 -0
  401. snappy/snap/kernel_structures.py +128 -0
  402. snappy/snap/mcomplex_base.py +18 -0
  403. snappy/snap/nsagetools.py +702 -0
  404. snappy/snap/peripheral/__init__.py +1 -0
  405. snappy/snap/peripheral/dual_cellulation.py +219 -0
  406. snappy/snap/peripheral/link.py +127 -0
  407. snappy/snap/peripheral/peripheral.py +159 -0
  408. snappy/snap/peripheral/surface.py +522 -0
  409. snappy/snap/peripheral/test.py +35 -0
  410. snappy/snap/polished_reps.py +335 -0
  411. snappy/snap/shapes.py +152 -0
  412. snappy/snap/slice_obs_HKL.py +668 -0
  413. snappy/snap/t3mlite/__init__.py +2 -0
  414. snappy/snap/t3mlite/arrow.py +243 -0
  415. snappy/snap/t3mlite/corner.py +22 -0
  416. snappy/snap/t3mlite/edge.py +172 -0
  417. snappy/snap/t3mlite/face.py +37 -0
  418. snappy/snap/t3mlite/files.py +211 -0
  419. snappy/snap/t3mlite/homology.py +53 -0
  420. snappy/snap/t3mlite/linalg.py +419 -0
  421. snappy/snap/t3mlite/mcomplex.py +1499 -0
  422. snappy/snap/t3mlite/perm4.py +320 -0
  423. snappy/snap/t3mlite/setup.py +12 -0
  424. snappy/snap/t3mlite/simplex.py +199 -0
  425. snappy/snap/t3mlite/spun.py +297 -0
  426. snappy/snap/t3mlite/surface.py +519 -0
  427. snappy/snap/t3mlite/test.py +20 -0
  428. snappy/snap/t3mlite/test_vs_regina.py +86 -0
  429. snappy/snap/t3mlite/tetrahedron.py +109 -0
  430. snappy/snap/t3mlite/vertex.py +42 -0
  431. snappy/snap/test.py +134 -0
  432. snappy/snap/utilities.py +288 -0
  433. snappy/test.py +209 -0
  434. snappy/test_cases.py +263 -0
  435. snappy/testing.py +131 -0
  436. snappy/tiling/__init__.py +2 -0
  437. snappy/tiling/canonical_key_dict.py +59 -0
  438. snappy/tiling/dict_based_set.py +79 -0
  439. snappy/tiling/floor.py +49 -0
  440. snappy/tiling/hyperboloid_dict.py +54 -0
  441. snappy/tiling/iter_utils.py +78 -0
  442. snappy/tiling/lifted_tetrahedron.py +22 -0
  443. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  444. snappy/tiling/real_hash_dict.py +164 -0
  445. snappy/tiling/test.py +23 -0
  446. snappy/tiling/tile.py +215 -0
  447. snappy/tiling/triangle.py +33 -0
  448. snappy/tkterminal.py +920 -0
  449. snappy/twister/__init__.py +20 -0
  450. snappy/twister/main.py +646 -0
  451. snappy/twister/surfaces/S_0_1 +3 -0
  452. snappy/twister/surfaces/S_0_2 +3 -0
  453. snappy/twister/surfaces/S_0_4 +7 -0
  454. snappy/twister/surfaces/S_0_4_Lantern +8 -0
  455. snappy/twister/surfaces/S_1 +3 -0
  456. snappy/twister/surfaces/S_1_1 +4 -0
  457. snappy/twister/surfaces/S_1_2 +5 -0
  458. snappy/twister/surfaces/S_1_2_5 +6 -0
  459. snappy/twister/surfaces/S_2 +6 -0
  460. snappy/twister/surfaces/S_2_1 +8 -0
  461. snappy/twister/surfaces/S_2_heeg +10 -0
  462. snappy/twister/surfaces/S_3 +8 -0
  463. snappy/twister/surfaces/S_3_1 +10 -0
  464. snappy/twister/surfaces/S_4_1 +12 -0
  465. snappy/twister/surfaces/S_5_1 +14 -0
  466. snappy/twister/surfaces/heeg_fig8 +9 -0
  467. snappy/twister/twister_core.cpython-310-darwin.so +0 -0
  468. snappy/upper_halfspace/__init__.py +146 -0
  469. snappy/upper_halfspace/ideal_point.py +26 -0
  470. snappy/verify/__init__.py +13 -0
  471. snappy/verify/canonical.py +542 -0
  472. snappy/verify/complex_volume/__init__.py +18 -0
  473. snappy/verify/complex_volume/adjust_torsion.py +86 -0
  474. snappy/verify/complex_volume/closed.py +168 -0
  475. snappy/verify/complex_volume/compute_ptolemys.py +90 -0
  476. snappy/verify/complex_volume/cusped.py +56 -0
  477. snappy/verify/complex_volume/extended_bloch.py +201 -0
  478. snappy/verify/cusp_translations.py +85 -0
  479. snappy/verify/edge_equations.py +80 -0
  480. snappy/verify/exceptions.py +254 -0
  481. snappy/verify/hyperbolicity.py +224 -0
  482. snappy/verify/interval_newton_shapes_engine.py +523 -0
  483. snappy/verify/interval_tree.py +400 -0
  484. snappy/verify/krawczyk_shapes_engine.py +518 -0
  485. snappy/verify/maximal_cusp_area_matrix/__init__.py +46 -0
  486. snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +419 -0
  487. snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +153 -0
  488. snappy/verify/real_algebra.py +286 -0
  489. snappy/verify/shapes.py +25 -0
  490. snappy/verify/short_slopes.py +200 -0
  491. snappy/verify/square_extensions.py +1005 -0
  492. snappy/verify/test.py +78 -0
  493. snappy/verify/upper_halfspace/__init__.py +9 -0
  494. snappy/verify/upper_halfspace/extended_matrix.py +100 -0
  495. snappy/verify/upper_halfspace/finite_point.py +283 -0
  496. snappy/verify/upper_halfspace/ideal_point.py +426 -0
  497. snappy/verify/volume.py +128 -0
  498. snappy/version.py +2 -0
  499. snappy-3.2.dist-info/METADATA +58 -0
  500. snappy-3.2.dist-info/RECORD +503 -0
  501. snappy-3.2.dist-info/WHEEL +5 -0
  502. snappy-3.2.dist-info/entry_points.txt +2 -0
  503. snappy-3.2.dist-info/top_level.txt +28 -0
@@ -0,0 +1,195 @@
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>Step-by-step examples: Part 4 &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="Classes" href="ptolemy_classes.html" />
25
+ <link rel="prev" title="Step-by-step examples: Part 3" href="ptolemy_examples3.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"><a class="reference internal" href="installing.html">Installing SnapPy</a></li>
50
+ <li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
51
+ <li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
52
+ <li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
53
+ <li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
54
+ <li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
55
+ <li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
56
+ <li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
57
+ <li class="toctree-l1 current"><a class="reference internal" href="other.html">Other components</a><ul class="current">
58
+ <li class="toctree-l2 current"><a class="reference internal" href="other.html#ptolemy-module">Ptolemy module</a><ul class="current">
59
+ <li class="toctree-l3 current"><a class="reference internal" href="ptolemy.html">The ptolemy module</a><ul class="current">
60
+ <li class="toctree-l4"><a class="reference internal" href="ptolemy.html#what-is-the-ptolemy-module">What is the ptolemy module?</a></li>
61
+ <li class="toctree-l4 current"><a class="reference internal" href="ptolemy.html#documentation">Documentation</a><ul class="current">
62
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_prelim.html">Mathematical preliminaries</a></li>
63
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_examples1.html">Step-by-step examples: Part 1</a></li>
64
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_examples2.html">Step-by-step examples: Part 2</a></li>
65
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_examples3.html">Step-by-step examples: Part 3</a></li>
66
+ <li class="toctree-l5 current"><a class="current reference internal" href="#">Step-by-step examples: Part 4</a></li>
67
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_classes.html">Classes</a></li>
68
+ </ul>
69
+ </li>
70
+ </ul>
71
+ </li>
72
+ </ul>
73
+ </li>
74
+ <li class="toctree-l2"><a class="reference internal" href="other.html#twister">Twister</a></li>
75
+ </ul>
76
+ </li>
77
+ <li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
78
+ <li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
79
+ <li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
80
+ <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
81
+ <li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
82
+ </ul>
83
+
84
+ </div>
85
+ </div>
86
+ </nav>
87
+
88
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
89
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
90
+ <a href="index.html">SnapPy</a>
91
+ </nav>
92
+
93
+ <div class="wy-nav-content">
94
+ <div class="rst-content">
95
+ <div role="navigation" aria-label="Page navigation">
96
+ <ul class="wy-breadcrumbs">
97
+ <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
98
+ <li class="breadcrumb-item"><a href="other.html">Other components</a></li>
99
+ <li class="breadcrumb-item"><a href="ptolemy.html">The ptolemy module</a></li>
100
+ <li class="breadcrumb-item active">Step-by-step examples: Part 4</li>
101
+ <li class="wy-breadcrumbs-aside">
102
+ </li>
103
+ </ul>
104
+ <hr/>
105
+ </div>
106
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
107
+ <div itemprop="articleBody">
108
+
109
+ <section id="step-by-step-examples-part-4">
110
+ <h1>Step-by-step examples: Part 4<a class="headerlink" href="#step-by-step-examples-part-4" title="Link to this heading"></a></h1>
111
+ <p><strong>Advanced topics. Still under construction.</strong></p>
112
+ <section id="the-structure-of-an-exact-solution">
113
+ <span id="ptolemy-example-structure-of-solution"></span><h2>The structure of an exact solution<a class="headerlink" href="#the-structure-of-an-exact-solution" title="Link to this heading"></a></h2>
114
+ <p>A solution to the Ptolemy variety (here <code class="docutils literal notranslate"><span class="pre">sol</span></code>) is an object of type <code class="docutils literal notranslate"><span class="pre">PtolemyCoordinates</span></code> which is a subclass of a python dictionary. It assigns a value to each Ptolemy coordinate c<sub>…</sub> (the s<sub>…</sub> are related to the obstruction class which is trivial here). We can get the value assigned to a particular Ptolemy coordinate as follows:</p>
115
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">sol</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">&quot;m003&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
116
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">sol</span><span class="p">[</span><span class="s1">&#39;c_0101_1&#39;</span><span class="p">]</span>
117
+ <span class="go">Mod(-x, x^2 - x - 1)</span>
118
+ </pre></div>
119
+ </div>
120
+ <p>This is a pari object of type <cite>POLMOD</cite>. It means that the solution is in the number field with defining polynomial <em>x</em><sup>2</sup>- <em>x</em> - 1 and that it is equal to - <em>x</em> where <em>x</em> is a root in the defining polynomial.</p>
121
+ <p>We can get to the parts of a pari <cite>POLMOD</cite> object by:</p>
122
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">sol</span><span class="p">[</span><span class="s1">&#39;c_0101_1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">lift</span><span class="p">()</span>
123
+ <span class="go">-x</span>
124
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">sol</span><span class="p">[</span><span class="s1">&#39;c_0101_1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">mod</span><span class="p">()</span>
125
+ <span class="go">x^2 - x - 1</span>
126
+ </pre></div>
127
+ </div>
128
+ <p>These objects also support the field operations, here we are computing a cross ratio:</p>
129
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="p">(</span><span class="n">sol</span><span class="p">[</span><span class="s1">&#39;c_0101_0&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="n">sol</span><span class="p">[</span><span class="s1">&#39;c_1010_0&#39;</span><span class="p">])</span> <span class="o">/</span> <span class="p">(</span><span class="n">sol</span><span class="p">[</span><span class="s1">&#39;c_1001_0&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="n">sol</span><span class="p">[</span><span class="s1">&#39;c_0110_0&#39;</span><span class="p">])</span>
130
+ <span class="go">Mod(x, x^2 - x - 1)</span>
131
+ </pre></div>
132
+ </div>
133
+ <p><strong>Remark:</strong> We would prefer to represent these using types that are better suited when using sage such as NumberField and NumberFieldElement. In the future, we might jettison support of the ptolemy module outside of sage and use sage’s native types.</p>
134
+ </section>
135
+ <section id="rational-univariate-representation">
136
+ <h2>Rational Univariate Representation<a class="headerlink" href="#rational-univariate-representation" title="Link to this heading"></a></h2>
137
+ <p>We have some limited support for the <cite>Rational Univariate Representation</cite>, for example:</p>
138
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">sols</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">&quot;m069&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">ptolemy_variety</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">retrieve_solutions</span><span class="p">()</span>
139
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">sols</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span>
140
+ <span class="go">PtolemyCoordinates(</span>
141
+ <span class="go"> { &#39;c_0201_0&#39;: ( Mod(-426088934700737884313191344*x^24 + 4110489425474123899213651272*x^23 ...</span>
142
+ <span class="go"> - 67064980598091504185767190,</span>
143
+ <span class="go"> x^25 ... - 196124*x^4 + 14010*x^3 - 1560*x^2 + 72*x - 1)</span>
144
+ <span class="go"> ) / ( Mod(875895332415105303646551573*x^24 - 8450034810535061601312104296*x^23 ...</span>
145
+ <span class="go"> + 137871639973525691285247446,</span>
146
+ <span class="go"> x^25 ... - 196124*x^4 + 14010*x^3 - 1560*x^2 + 72*x - 1) ),</span>
147
+ <span class="go"> ...</span>
148
+ <span class="go"> },</span>
149
+ <span class="go"> is_numerical = False, ...)</span>
150
+ </pre></div>
151
+ </div>
152
+ <p>This means that <code class="docutils literal notranslate"><span class="pre">c_0201_0</span></code> is assigned the fraction of those two <code class="docutils literal notranslate"><span class="pre">POLDMOD</span></code> objects.</p>
153
+ <p><strong>Remark:</strong> This is still under development.</p>
154
+ </section>
155
+ <section id="todo">
156
+ <h2>TODO<a class="headerlink" href="#todo" title="Link to this heading"></a></h2>
157
+ <ul class="simple">
158
+ <li><p>Give an overview of the classes and the methods.</p></li>
159
+ <li><p>Explain how the magma file are generated. Say that magma computes the RadicalDecomposition. Ptolemy module can process the lexicographic Groebner basis of a prime ideal.</p></li>
160
+ </ul>
161
+ </section>
162
+ </section>
163
+
164
+
165
+ </div>
166
+ </div>
167
+ <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
168
+ <a href="ptolemy_examples3.html" class="btn btn-neutral float-left" title="Step-by-step examples: Part 3" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
169
+ <a href="ptolemy_classes.html" class="btn btn-neutral float-right" title="Classes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
170
+ </div>
171
+
172
+ <hr/>
173
+
174
+ <div role="contentinfo">
175
+ <p>&#169; Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
176
+ </div>
177
+
178
+ Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
179
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
180
+ provided by <a href="https://readthedocs.org">Read the Docs</a>.
181
+
182
+
183
+ </footer>
184
+ </div>
185
+ </div>
186
+ </section>
187
+ </div>
188
+ <script>
189
+ jQuery(function () {
190
+ SphinxRtdTheme.Navigation.enable(true);
191
+ });
192
+ </script>
193
+
194
+ </body>
195
+ </html>
@@ -0,0 +1,248 @@
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>Mathematical preliminaries &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 async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
22
+ <script src="_static/js/theme.js"></script>
23
+ <link rel="index" title="Index" href="genindex.html" />
24
+ <link rel="search" title="Search" href="search.html" />
25
+ <link rel="next" title="Step-by-step examples: Part 1" href="ptolemy_examples1.html" />
26
+ <link rel="prev" title="The ptolemy module" href="ptolemy.html" />
27
+ </head>
28
+
29
+ <body class="wy-body-for-nav">
30
+ <div class="wy-grid-for-nav">
31
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
32
+ <div class="wy-side-scroll">
33
+ <div class="wy-side-nav-search" >
34
+
35
+
36
+
37
+ <a href="index.html" class="icon icon-home">
38
+ SnapPy
39
+ <img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
40
+ </a>
41
+ <div role="search">
42
+ <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
43
+ <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
44
+ <input type="hidden" name="check_keywords" value="yes" />
45
+ <input type="hidden" name="area" value="default" />
46
+ </form>
47
+ </div>
48
+ </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
49
+ <ul class="current">
50
+ <li class="toctree-l1"><a class="reference internal" href="installing.html">Installing SnapPy</a></li>
51
+ <li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
52
+ <li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
53
+ <li class="toctree-l1"><a class="reference internal" href="snappy.html">The snappy module and its classes</a></li>
54
+ <li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
55
+ <li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
56
+ <li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
57
+ <li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
58
+ <li class="toctree-l1 current"><a class="reference internal" href="other.html">Other components</a><ul class="current">
59
+ <li class="toctree-l2 current"><a class="reference internal" href="other.html#ptolemy-module">Ptolemy module</a><ul class="current">
60
+ <li class="toctree-l3 current"><a class="reference internal" href="ptolemy.html">The ptolemy module</a><ul class="current">
61
+ <li class="toctree-l4"><a class="reference internal" href="ptolemy.html#what-is-the-ptolemy-module">What is the ptolemy module?</a></li>
62
+ <li class="toctree-l4 current"><a class="reference internal" href="ptolemy.html#documentation">Documentation</a><ul class="current">
63
+ <li class="toctree-l5 current"><a class="current reference internal" href="#">Mathematical preliminaries</a></li>
64
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_examples1.html">Step-by-step examples: Part 1</a></li>
65
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_examples2.html">Step-by-step examples: Part 2</a></li>
66
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_examples3.html">Step-by-step examples: Part 3</a></li>
67
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_examples4.html">Step-by-step examples: Part 4</a></li>
68
+ <li class="toctree-l5"><a class="reference internal" href="ptolemy_classes.html">Classes</a></li>
69
+ </ul>
70
+ </li>
71
+ </ul>
72
+ </li>
73
+ </ul>
74
+ </li>
75
+ <li class="toctree-l2"><a class="reference internal" href="other.html#twister">Twister</a></li>
76
+ </ul>
77
+ </li>
78
+ <li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
79
+ <li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
80
+ <li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
81
+ <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
82
+ <li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
83
+ </ul>
84
+
85
+ </div>
86
+ </div>
87
+ </nav>
88
+
89
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
90
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
91
+ <a href="index.html">SnapPy</a>
92
+ </nav>
93
+
94
+ <div class="wy-nav-content">
95
+ <div class="rst-content">
96
+ <div role="navigation" aria-label="Page navigation">
97
+ <ul class="wy-breadcrumbs">
98
+ <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
99
+ <li class="breadcrumb-item"><a href="other.html">Other components</a></li>
100
+ <li class="breadcrumb-item"><a href="ptolemy.html">The ptolemy module</a></li>
101
+ <li class="breadcrumb-item active">Mathematical preliminaries</li>
102
+ <li class="wy-breadcrumbs-aside">
103
+ </li>
104
+ </ul>
105
+ <hr/>
106
+ </div>
107
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
108
+ <div itemprop="articleBody">
109
+
110
+ <section id="mathematical-preliminaries">
111
+ <h1>Mathematical preliminaries<a class="headerlink" href="#mathematical-preliminaries" title="Link to this heading"></a></h1>
112
+ <p>Given a triangulation, the ptolemy module will produce a system of equation that is equivalent to
113
+ the reduced Ptolemy variety (see <a class="reference internal" href="#gtz2011" id="id1"><span>[GTZ2011]</span></a>, Section 5 of <a class="reference internal" href="#ggz2012" id="id2"><span>[GGZ2012]</span></a>, and Proposition 4.7 of <a class="reference internal" href="#ggz2014" id="id3"><span>[GGZ2014]</span></a>).</p>
114
+ <p>A solution
115
+ to this system of equations where no Ptolemy coordinate is zero yields a <a class="reference internal" href="#ptolemy-boundary-unipotent"><span class="std std-ref">boundary-unipotent</span></a>
116
+ SL(<em>N</em>, <strong>C</strong>)-representation, respectively, PSL(<em>N</em>, <strong>C</strong>)-representation (see <a class="reference internal" href="#obstruction-class"><span class="std std-ref">Obstruction class</span></a>).</p>
117
+ <p>Note that a solution where some Ptolemy coordinates are zero might not have enough information
118
+ to recover the representation - thus the ptolemy module discards those and thus might miss some
119
+ boundary-unipotent representations for the chosen triangulation (see <a class="reference internal" href="#ptolemy-generically-decorated"><span class="std std-ref">Generically decorated representations</span></a>).
120
+ This is the same problem that the
121
+ gluing equations for finding PGL(2, <strong>C</strong>)-representations suffer from where simplices in the developing
122
+ map can be degenerate and yielding cross ratios that are 0, 1, or <span class="math notranslate nohighlight">\(\infty\)</span>.</p>
123
+ <section id="boundary-unipotent">
124
+ <span id="ptolemy-boundary-unipotent"></span><h2>Boundary-unipotent<a class="headerlink" href="#boundary-unipotent" title="Link to this heading"></a></h2>
125
+ <p>We call a SL(<em>N</em>, <strong>C</strong>)-representation <em>boundary-unipotent</em> if each peripheral subgroup is taken to
126
+ a conjugate of the unipotent group <em>P</em> of upper unit-triangular matrices. Similarly, we call
127
+ a PSL(<em>N</em>, <strong>C</strong>)-representation <em>boundary-unipotent</em> if each peripheral subgroup is taken to a conjugate
128
+ of the unipotent group of PSL(<em>N</em>, <strong>C</strong>), i.e., the image of <em>P</em> under the projection SL(<em>N</em>, <strong>C</strong>)<span class="math notranslate nohighlight">\(\rightarrow\)</span>PSL(<em>N</em>, <strong>C</strong>).</p>
129
+ <p>Note that even when boundary-unipotent PSL(<em>N</em>, <strong>C</strong>)-representation can be lifted to an
130
+ SL(<em>N</em>, <strong>C</strong>)-representation, the lift might no longer be boundary-unipotent, i.e., there might be
131
+ a peripheral curve whose image now is conjugate to an upper triangular matrix with an <em>N</em>-th root
132
+ of unity on the diagonal. For example, if the manifold is hyperbolic and has one cusp,
133
+ any lift of the geometric representation will take the longitude
134
+ to a matrix with trace -2 and is thus not boundary-unipotent as SL(2, <strong>C</strong>)-representation.</p>
135
+ </section>
136
+ <section id="obstruction-class">
137
+ <span id="id4"></span><h2>Obstruction class<a class="headerlink" href="#obstruction-class" title="Link to this heading"></a></h2>
138
+ <p>Given a boundary-unipotent PSL(<em>N</em>, <strong>C</strong>)-representation, we obtain an <em>obstruction class</em> in H<sup>2</sup>(M,<span class="math notranslate nohighlight">\(\partial\)</span>M; <strong>Z</strong>/<em>N</em>)
139
+ that is trivial if and only if the representations lifts to a boundary-unipotent SL(<em>N</em>, <strong>C</strong>)-representation (see Section 9.1 of <a class="reference internal" href="#gtz2011" id="id5"><span>[GTZ2011]</span></a> and Section 1.3 of <a class="reference internal" href="#ggz2014" id="id6"><span>[GGZ2014]</span></a>).
140
+ Given a triangulation and an element in H<sup>2</sup>(M,<span class="math notranslate nohighlight">\(\partial\)</span>M; <strong>Z</strong>/<em>N</em>), the Ptolemy variety can be modified to find
141
+ the boundary-unipotent
142
+ PSL(<em>N</em>, <strong>C</strong>)-representations with that obstruction class (for <em>N</em> &gt; 2 this is implemented here but has not been published yet).</p>
143
+ <p>Note that two elements in H<sup>2</sup>(M,<span class="math notranslate nohighlight">\(\partial\)</span>M; <strong>Z</strong>/<em>N</em>)
144
+ related by multiplication by an element in (<strong>Z</strong>/<em>N</em>)<sup>*</sup> yield Ptolemy
145
+ varieties corresponding to picking different Galois conjugates for the <em>N</em>-th root of unity. Thus, it is enough
146
+ to consider a representative for each element in the quotient H<sup>2</sup>(M,<span class="math notranslate nohighlight">\(\partial\)</span>M; <strong>Z</strong>/<em>N</em>)/(<strong>Z</strong>/<em>N</em>)<sup>*</sup>.</p>
147
+ </section>
148
+ <section id="sl-n-c-vs-psl-n-c">
149
+ <span id="ptolemy-psl-multiplicity"></span><h2>SL(<em>N</em>, <strong>C</strong>) vs PSL(<em>N</em>, <strong>C</strong>)<a class="headerlink" href="#sl-n-c-vs-psl-n-c" title="Link to this heading"></a></h2>
150
+ <p>The reduced Ptolemy variety for the trivial obstruction class can have several points (say <em>d</em>) giving different SL(<em>N</em>, <strong>C</strong>)-representations that are the same as PSL(<em>N</em>, <strong>C</strong>)-representations. Similarly, for the non-trivial obstruction class we can have <em>d</em> points in the reduced Ptolemy variety yielding the same PSL(<em>N</em>, <strong>C</strong>)-representation.</p>
151
+ <p>The degree <em>d</em> of this correspondence is the size of H<sup>1</sup>(<span class="math notranslate nohighlight">\(\hat{M}\)</span>; <strong>Z</strong>/<em>N</em>) where <span class="math notranslate nohighlight">\(\hat{M}\)</span> is the cell complex obtained from collapsing each cusp to a point.</p>
152
+ </section>
153
+ <section id="generically-decorated-representations">
154
+ <span id="ptolemy-generically-decorated"></span><h2>Generically decorated representations<a class="headerlink" href="#generically-decorated-representations" title="Link to this heading"></a></h2>
155
+ <p>We want to point out two important facts when using the reduced Ptolemy variety to find boundary-unipotent representations:</p>
156
+ <ul class="simple">
157
+ <li><p>We miss representations that are not generically decorated (as mentioned above). This happens but rarely.</p></li>
158
+ <li><dl class="simple">
159
+ <dt>A positively dimensional component in the reduced Ptolemy variety might mean two things (which we can distinguish by looking at the images of the peripheral groups):</dt><dd><ul>
160
+ <li><p>a positively dimensional family of boundary-unipotent representations or</p></li>
161
+ <li><p>a family of decorations of the same representation.</p></li>
162
+ </ul>
163
+ </dd>
164
+ </dl>
165
+ </li>
166
+ </ul>
167
+ <p>The reason for this is that the reduced Ptolmey variety does not parametrize representations but generically decorated representations (which can also be thought of as development maps). We just list the facts about decorations important to us here and refer the reader for details to Section 4 of <a class="reference internal" href="#gtz2011" id="id7"><span>[GTZ2011]</span></a> and Section 8 of <a class="reference internal" href="#ggz2012" id="id8"><span>[GGZ2012]</span></a> (where decoration would be called <em>B</em>-decoration or (SL(<em>N</em>), <strong>C</strong>), <em>B</em>)-decoration with <em>B</em> the Borel group of upper triangular matrices):</p>
168
+ <ul class="simple">
169
+ <li><p>Every boundary-unipotent representation of a cusped manifold admits a decoration. The set of decorations of a representation is intrinsic to the representation and independent of the triangulation.</p></li>
170
+ <li><p>The representation determines the decoration uniquely if and only if the representation is boundary-non-degenerate (which most representations are).</p></li>
171
+ <li><p>Given a decorated representation and an ideal triangulation of a cusped manifold, we obtain Ptolemy coordinates.</p></li>
172
+ <li><p>If all the resulting Ptolemy coordinates are non-zero, we call the representation <em>generically decorated</em> - a notion that depends on the chosen triangulation.</p></li>
173
+ <li><p>The reduced Ptolemy variety parametrizes generically decorated and boundary-unipotent representations.</p></li>
174
+ </ul>
175
+ </section>
176
+ <section id="reduced-ptolemy-variety">
177
+ <span id="ptolemy-reduced-variety"></span><h2>Reduced Ptolemy variety<a class="headerlink" href="#reduced-ptolemy-variety" title="Link to this heading"></a></h2>
178
+ <p>We will actually always use the reduced Ptolemy variety, i.e., the system of equation that consists of the Ptolemy relations (always of the form
179
+ <span class="math notranslate nohighlight">\(\pm\)</span> c<sub>…</sub> c<sub>…</sub> <span class="math notranslate nohighlight">\(\pm\)</span> c<sub>…</sub> c<sub>…</sub> <span class="math notranslate nohighlight">\(\pm\)</span> c<sub>…</sub> c<sub>…</sub>) and extra equations fixing an appropriate set of (N-1) Ptolemy coordinates per cusp as described in Proposition 4.7 of <a class="reference internal" href="#ggz2014" id="id9"><span>[GGZ2014]</span></a>. This is because the Ptolemy relations alone admit an action by (<strong>C</strong><sup>*</sup>)<sup>(N-1)</sup> for each cusp that does not change the representation it yields.</p>
180
+ <p>In other words, the Ptolemy variety parametrizes <em>P</em>-decorations and the reduced Ptolemy variety parametrizes <em>B</em>-decorations.</p>
181
+ </section>
182
+ <section id="future-work">
183
+ <h2>Future work<a class="headerlink" href="#future-work" title="Link to this heading"></a></h2>
184
+ <p>In unpublished work, we developed an algorithm that takes some triangulation of a manifold and constructs a set of triangulations and corresponding Ptolemy varieties (with extra edge relations) such that we can guarantee that all boundary-unipotent PSL(2,C)-representations are found - not just the ones that are generically decorated with respect to the chosen triangulation. This is inspired by <a class="reference internal" href="#s2009" id="id10"><span>[S2009]</span></a>. The ptolemy module might support this in the future.</p>
185
+ <p>In <a class="reference internal" href="#z2014" id="id11"><span>[Z2014]</span></a>, the Ptolemy variety was extended to detect non boundary-unipotent representations as well. The ptolemy module might produce these varieties in the future. This might offer another way of computing A-polynomials - that when combined with the above algorithm is guaranteed to be the full A-polynomial and not just a factor of it.</p>
186
+ </section>
187
+ <section id="references">
188
+ <h2>References<a class="headerlink" href="#references" title="Link to this heading"></a></h2>
189
+ <div role="list" class="citation-list">
190
+ <div class="citation" id="s2009" role="doc-biblioentry">
191
+ <span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id10">S2009</a><span class="fn-bracket">]</span></span>
192
+ <p>Henry Segerman: A generalisation of the deformation variety, <a class="reference external" href="http://arxiv.org/abs/0904.1893">http://arxiv.org/abs/0904.1893</a></p>
193
+ </div>
194
+ <div class="citation" id="gtz2011" role="doc-biblioentry">
195
+ <span class="label"><span class="fn-bracket">[</span>GTZ2011<span class="fn-bracket">]</span></span>
196
+ <span class="backrefs">(<a role="doc-backlink" href="#id1">1</a>,<a role="doc-backlink" href="#id5">2</a>,<a role="doc-backlink" href="#id7">3</a>)</span>
197
+ <p>Stavros Garoufalidis, Dylan P. Thurston, and Christian K. Zickert: The Complex Volume of SL(n,C)-Representations of 3-Manifolds, <a class="reference external" href="http://arxiv.org/abs/1111.2828">http://arxiv.org/abs/1111.2828</a></p>
198
+ </div>
199
+ <div class="citation" id="ggz2012" role="doc-biblioentry">
200
+ <span class="label"><span class="fn-bracket">[</span>GGZ2012<span class="fn-bracket">]</span></span>
201
+ <span class="backrefs">(<a role="doc-backlink" href="#id2">1</a>,<a role="doc-backlink" href="#id8">2</a>)</span>
202
+ <p>Stavros Garoufalidis, Matthias Goerner, and Christian K. Zickert: Gluing Equations for PGL(n,C)-Representations of 3-Manifolds, <a class="reference external" href="http://arxiv.org/abs/1207.6711">http://arxiv.org/abs/1207.6711</a></p>
203
+ </div>
204
+ <div class="citation" id="ggz2014" role="doc-biblioentry">
205
+ <span class="label"><span class="fn-bracket">[</span>GGZ2014<span class="fn-bracket">]</span></span>
206
+ <span class="backrefs">(<a role="doc-backlink" href="#id3">1</a>,<a role="doc-backlink" href="#id6">2</a>,<a role="doc-backlink" href="#id9">3</a>)</span>
207
+ <p>Stavros Garoufalidis, Matthias Goerner, and Christian K. Zickert: The Ptolemy Field of 3-Manifold Representations, <a class="reference external" href="http://arxiv.org/abs/1401.5542">http://arxiv.org/abs/1401.5542</a></p>
208
+ </div>
209
+ <div class="citation" id="z2014" role="doc-biblioentry">
210
+ <span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id11">Z2014</a><span class="fn-bracket">]</span></span>
211
+ <p>Christian K. Zickert: Ptolemy coordinates, Dehn invariant, and the A-polynomial, <a class="reference external" href="http://arxiv.org/abs/1405.0025">http://arxiv.org/abs/1405.0025</a></p>
212
+ </div>
213
+ </div>
214
+ </section>
215
+ </section>
216
+
217
+
218
+ </div>
219
+ </div>
220
+ <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
221
+ <a href="ptolemy.html" class="btn btn-neutral float-left" title="The ptolemy module" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
222
+ <a href="ptolemy_examples1.html" class="btn btn-neutral float-right" title="Step-by-step examples: Part 1" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
223
+ </div>
224
+
225
+ <hr/>
226
+
227
+ <div role="contentinfo">
228
+ <p>&#169; Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
229
+ </div>
230
+
231
+ Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
232
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
233
+ provided by <a href="https://readthedocs.org">Read the Docs</a>.
234
+
235
+
236
+ </footer>
237
+ </div>
238
+ </div>
239
+ </section>
240
+ </div>
241
+ <script>
242
+ jQuery(function () {
243
+ SphinxRtdTheme.Navigation.enable(true);
244
+ });
245
+ </script>
246
+
247
+ </body>
248
+ </html>