snappy 3.1.1__cp310-cp310-macosx_11_0_arm64.whl → 3.2__cp310-cp310-macosx_11_0_arm64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (464) hide show
  1. snappy/CyOpenGL.cpython-310-darwin.so +0 -0
  2. snappy/SnapPy.cpython-310-darwin.so +0 -0
  3. snappy/SnapPyHP.cpython-310-darwin.so +0 -0
  4. snappy/__init__.py +299 -402
  5. snappy/app.py +70 -20
  6. snappy/browser.py +18 -17
  7. snappy/canonical.py +249 -0
  8. snappy/{verify/cusp_shapes.py → cusps/__init__.py} +8 -18
  9. snappy/cusps/cusp_area_matrix.py +101 -0
  10. snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +23 -39
  11. snappy/cusps/maximal_cusp_area_matrix.py +136 -0
  12. snappy/cusps/test.py +21 -0
  13. snappy/cusps/trig_cusp_area_matrix.py +63 -0
  14. snappy/database.py +10 -9
  15. snappy/decorated_isosig.py +337 -114
  16. snappy/dev/extended_ptolemy/complexVolumesClosed.py +40 -7
  17. snappy/dev/extended_ptolemy/extended.py +3 -3
  18. snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
  19. snappy/dev/vericlosed/oneVertexTruncatedComplex.py +1 -1
  20. snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
  21. snappy/doc/_images/m125_paper_plane.jpg +0 -0
  22. snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
  23. snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
  24. snappy/doc/_sources/development.rst.txt +66 -46
  25. snappy/doc/_sources/index.rst.txt +72 -5
  26. snappy/doc/_sources/installing.rst.txt +145 -162
  27. snappy/doc/_sources/news.rst.txt +73 -1
  28. snappy/doc/_sources/ptolemy_examples1.rst.txt +8 -7
  29. snappy/doc/_sources/ptolemy_examples3.rst.txt +2 -2
  30. snappy/doc/_sources/triangulation.rst.txt +2 -2
  31. snappy/doc/_sources/verify.rst.txt +89 -29
  32. snappy/doc/_sources/verify_internals.rst.txt +5 -16
  33. snappy/doc/_static/basic.css +23 -1
  34. snappy/doc/_static/css/badge_only.css +1 -1
  35. snappy/doc/_static/css/theme.css +1 -1
  36. snappy/doc/_static/doctools.js +1 -1
  37. snappy/doc/_static/documentation_options.js +2 -3
  38. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  39. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  40. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  41. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  42. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  43. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  44. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  45. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  46. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  47. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  48. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  49. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  50. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  51. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  52. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  53. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  54. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  55. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  56. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  57. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  58. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  59. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  60. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  61. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  62. snappy/doc/_static/js/versions.js +228 -0
  63. snappy/doc/_static/language_data.js +2 -2
  64. snappy/doc/_static/pygments.css +1 -0
  65. snappy/doc/_static/searchtools.js +125 -71
  66. snappy/doc/_static/sphinx_highlight.js +13 -3
  67. snappy/doc/additional_classes.html +291 -122
  68. snappy/doc/bugs.html +17 -20
  69. snappy/doc/censuses.html +34 -53
  70. snappy/doc/credits.html +18 -21
  71. snappy/doc/development.html +88 -68
  72. snappy/doc/genindex.html +66 -145
  73. snappy/doc/index.html +86 -31
  74. snappy/doc/installing.html +164 -182
  75. snappy/doc/manifold.html +1168 -556
  76. snappy/doc/manifoldhp.html +18 -21
  77. snappy/doc/news.html +91 -33
  78. snappy/doc/objects.inv +0 -0
  79. snappy/doc/other.html +20 -22
  80. snappy/doc/platonic_census.html +31 -34
  81. snappy/doc/plink.html +19 -22
  82. snappy/doc/ptolemy.html +20 -22
  83. snappy/doc/ptolemy_classes.html +102 -105
  84. snappy/doc/ptolemy_examples1.html +34 -36
  85. snappy/doc/ptolemy_examples2.html +28 -31
  86. snappy/doc/ptolemy_examples3.html +26 -29
  87. snappy/doc/ptolemy_examples4.html +20 -23
  88. snappy/doc/ptolemy_prelim.html +25 -28
  89. snappy/doc/py-modindex.html +16 -19
  90. snappy/doc/screenshots.html +22 -24
  91. snappy/doc/search.html +15 -18
  92. snappy/doc/searchindex.js +1 -1
  93. snappy/doc/snap.html +18 -21
  94. snappy/doc/snappy.html +18 -20
  95. snappy/doc/spherogram.html +84 -87
  96. snappy/doc/todo.html +17 -20
  97. snappy/doc/triangulation.html +324 -215
  98. snappy/doc/tutorial.html +17 -20
  99. snappy/doc/verify.html +100 -46
  100. snappy/doc/verify_internals.html +106 -563
  101. snappy/drilling/__init__.py +153 -235
  102. snappy/drilling/barycentric.py +103 -0
  103. snappy/drilling/constants.py +0 -2
  104. snappy/drilling/crush.py +56 -130
  105. snappy/drilling/cusps.py +12 -6
  106. snappy/drilling/debug.py +2 -1
  107. snappy/drilling/exceptions.py +7 -40
  108. snappy/drilling/moves.py +302 -243
  109. snappy/drilling/perturb.py +63 -37
  110. snappy/drilling/shorten.py +36 -0
  111. snappy/drilling/subdivide.py +0 -5
  112. snappy/drilling/test.py +23 -0
  113. snappy/drilling/test_cases.py +126 -0
  114. snappy/drilling/tracing.py +9 -37
  115. snappy/exceptions.py +18 -5
  116. snappy/exterior_to_link/barycentric_geometry.py +2 -4
  117. snappy/exterior_to_link/main.py +8 -7
  118. snappy/exterior_to_link/mcomplex_with_link.py +2 -2
  119. snappy/exterior_to_link/rational_linear_algebra.py +1 -1
  120. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +1 -1
  121. snappy/exterior_to_link/test.py +21 -33
  122. snappy/geometric_structure/__init__.py +212 -0
  123. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  124. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
  125. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
  126. snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
  127. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
  128. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
  129. snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
  130. snappy/geometric_structure/geodesic/__init__.py +0 -0
  131. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  132. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  133. snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
  134. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  135. snappy/geometric_structure/geodesic/constants.py +6 -0
  136. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  137. snappy/{drilling → geometric_structure/geodesic}/fixed_points.py +34 -9
  138. snappy/{drilling/geodesic_info.py → geometric_structure/geodesic/geodesic_start_point_info.py} +139 -180
  139. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  140. snappy/geometric_structure/geodesic/line.py +30 -0
  141. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  142. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
  143. snappy/geometric_structure/test.py +22 -0
  144. snappy/gui.py +23 -13
  145. snappy/horoviewer.py +7 -7
  146. snappy/hyperboloid/__init__.py +96 -31
  147. snappy/hyperboloid/distances.py +245 -0
  148. snappy/hyperboloid/horoball.py +19 -0
  149. snappy/hyperboloid/line.py +35 -0
  150. snappy/hyperboloid/point.py +9 -0
  151. snappy/hyperboloid/triangle.py +29 -0
  152. snappy/isometry_signature.py +382 -0
  153. snappy/len_spec/__init__.py +596 -0
  154. snappy/len_spec/geodesic_info.py +110 -0
  155. snappy/len_spec/geodesic_key_info_dict.py +117 -0
  156. snappy/len_spec/geodesic_piece.py +143 -0
  157. snappy/len_spec/geometric_structure.py +182 -0
  158. snappy/len_spec/geometry.py +80 -0
  159. snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
  160. snappy/len_spec/spine.py +206 -0
  161. snappy/len_spec/test.py +24 -0
  162. snappy/len_spec/test_cases.py +69 -0
  163. snappy/len_spec/tile.py +275 -0
  164. snappy/len_spec/word.py +86 -0
  165. snappy/math_basics.py +39 -13
  166. snappy/matrix.py +52 -9
  167. snappy/number.py +12 -6
  168. snappy/numeric_output_checker.py +2 -3
  169. snappy/pari.py +8 -4
  170. snappy/phone_home.py +2 -1
  171. snappy/polyviewer.py +8 -8
  172. snappy/ptolemy/__init__.py +1 -1
  173. snappy/ptolemy/component.py +2 -2
  174. snappy/ptolemy/coordinates.py +25 -25
  175. snappy/ptolemy/findLoops.py +9 -9
  176. snappy/ptolemy/manifoldMethods.py +27 -29
  177. snappy/ptolemy/polynomial.py +50 -57
  178. snappy/ptolemy/processFileBase.py +60 -0
  179. snappy/ptolemy/ptolemyVariety.py +109 -41
  180. snappy/ptolemy/reginaWrapper.py +4 -4
  181. snappy/ptolemy/rur.py +1 -1
  182. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +9 -9
  183. snappy/ptolemy/test.py +99 -54
  184. snappy/ptolemy/utilities.py +1 -1
  185. snappy/raytracing/__init__.py +64 -0
  186. snappy/raytracing/additional_horospheres.py +64 -0
  187. snappy/raytracing/additional_len_spec_choices.py +63 -0
  188. snappy/raytracing/cohomology_fractal.py +0 -3
  189. snappy/raytracing/eyeball.py +123 -0
  190. snappy/raytracing/finite_raytracing_data.py +17 -17
  191. snappy/raytracing/finite_viewer.py +15 -15
  192. snappy/raytracing/geodesic_tube_info.py +93 -63
  193. snappy/raytracing/geodesics.py +94 -64
  194. snappy/raytracing/geodesics_window.py +56 -34
  195. snappy/raytracing/gui_utilities.py +21 -6
  196. snappy/raytracing/hyperboloid_navigation.py +29 -4
  197. snappy/raytracing/hyperboloid_utilities.py +73 -73
  198. snappy/raytracing/ideal_raytracing_data.py +121 -91
  199. snappy/raytracing/inside_viewer.py +199 -66
  200. snappy/raytracing/pack.py +22 -0
  201. snappy/raytracing/raytracing_data.py +37 -25
  202. snappy/raytracing/raytracing_view.py +70 -65
  203. snappy/raytracing/shaders/Eye.png +0 -0
  204. snappy/raytracing/shaders/NonGeometric.png +0 -0
  205. snappy/raytracing/shaders/__init__.py +39 -3
  206. snappy/raytracing/shaders/fragment.glsl +451 -133
  207. snappy/raytracing/test.py +29 -0
  208. snappy/raytracing/tooltip.py +146 -0
  209. snappy/raytracing/upper_halfspace_utilities.py +42 -9
  210. snappy/sage_helper.py +67 -134
  211. snappy/settings.py +90 -77
  212. snappy/shell.py +2 -0
  213. snappy/snap/character_varieties.py +2 -2
  214. snappy/snap/find_field.py +4 -3
  215. snappy/snap/fundamental_polyhedron.py +2 -2
  216. snappy/snap/kernel_structures.py +5 -1
  217. snappy/snap/nsagetools.py +9 -8
  218. snappy/snap/peripheral/dual_cellulation.py +4 -3
  219. snappy/snap/peripheral/peripheral.py +2 -2
  220. snappy/snap/peripheral/surface.py +5 -5
  221. snappy/snap/peripheral/test.py +1 -1
  222. snappy/snap/polished_reps.py +8 -8
  223. snappy/snap/slice_obs_HKL.py +16 -14
  224. snappy/snap/t3mlite/arrow.py +3 -3
  225. snappy/snap/t3mlite/edge.py +3 -3
  226. snappy/snap/t3mlite/homology.py +2 -2
  227. snappy/snap/t3mlite/mcomplex.py +3 -3
  228. snappy/snap/t3mlite/simplex.py +12 -0
  229. snappy/snap/t3mlite/spun.py +18 -17
  230. snappy/snap/t3mlite/test_vs_regina.py +4 -4
  231. snappy/snap/test.py +37 -53
  232. snappy/snap/utilities.py +4 -5
  233. snappy/test.py +121 -138
  234. snappy/test_cases.py +263 -0
  235. snappy/testing.py +131 -0
  236. snappy/tiling/__init__.py +2 -0
  237. snappy/tiling/canonical_key_dict.py +59 -0
  238. snappy/tiling/dict_based_set.py +79 -0
  239. snappy/tiling/floor.py +49 -0
  240. snappy/tiling/hyperboloid_dict.py +54 -0
  241. snappy/tiling/iter_utils.py +78 -0
  242. snappy/tiling/lifted_tetrahedron.py +22 -0
  243. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  244. snappy/tiling/real_hash_dict.py +164 -0
  245. snappy/tiling/test.py +23 -0
  246. snappy/tiling/tile.py +215 -0
  247. snappy/tiling/triangle.py +33 -0
  248. snappy/tkterminal.py +113 -84
  249. snappy/twister/main.py +1 -7
  250. snappy/twister/twister_core.cpython-310-darwin.so +0 -0
  251. snappy/upper_halfspace/__init__.py +78 -17
  252. snappy/verify/__init__.py +3 -7
  253. snappy/verify/{verifyCanonical.py → canonical.py} +78 -70
  254. snappy/verify/complex_volume/adjust_torsion.py +1 -2
  255. snappy/verify/complex_volume/closed.py +13 -13
  256. snappy/verify/complex_volume/cusped.py +6 -6
  257. snappy/verify/complex_volume/extended_bloch.py +5 -8
  258. snappy/verify/{cuspTranslations.py → cusp_translations.py} +1 -1
  259. snappy/verify/edge_equations.py +80 -0
  260. snappy/verify/exceptions.py +0 -55
  261. snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +3 -3
  262. snappy/verify/interval_newton_shapes_engine.py +7 -5
  263. snappy/verify/interval_tree.py +5 -5
  264. snappy/verify/krawczyk_shapes_engine.py +17 -18
  265. snappy/verify/maximal_cusp_area_matrix/__init__.py +7 -74
  266. snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +3 -4
  267. snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +1 -1
  268. snappy/verify/{realAlgebra.py → real_algebra.py} +1 -1
  269. snappy/verify/shapes.py +5 -3
  270. snappy/verify/short_slopes.py +39 -41
  271. snappy/verify/{squareExtensions.py → square_extensions.py} +14 -11
  272. snappy/verify/test.py +57 -60
  273. snappy/verify/upper_halfspace/extended_matrix.py +1 -1
  274. snappy/verify/upper_halfspace/finite_point.py +3 -4
  275. snappy/verify/upper_halfspace/ideal_point.py +9 -9
  276. snappy/verify/volume.py +2 -2
  277. snappy/version.py +2 -2
  278. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/METADATA +26 -11
  279. snappy-3.2.dist-info/RECORD +503 -0
  280. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
  281. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
  282. snappy/__pycache__/__init__.cpython-310.pyc +0 -0
  283. snappy/__pycache__/browser.cpython-310.pyc +0 -0
  284. snappy/__pycache__/cache.cpython-310.pyc +0 -0
  285. snappy/__pycache__/database.cpython-310.pyc +0 -0
  286. snappy/__pycache__/db_utilities.cpython-310.pyc +0 -0
  287. snappy/__pycache__/decorated_isosig.cpython-310.pyc +0 -0
  288. snappy/__pycache__/exceptions.cpython-310.pyc +0 -0
  289. snappy/__pycache__/export_stl.cpython-310.pyc +0 -0
  290. snappy/__pycache__/filedialog.cpython-310.pyc +0 -0
  291. snappy/__pycache__/gui.cpython-310.pyc +0 -0
  292. snappy/__pycache__/horoviewer.cpython-310.pyc +0 -0
  293. snappy/__pycache__/infowindow.cpython-310.pyc +0 -0
  294. snappy/__pycache__/math_basics.cpython-310.pyc +0 -0
  295. snappy/__pycache__/matrix.cpython-310.pyc +0 -0
  296. snappy/__pycache__/number.cpython-310.pyc +0 -0
  297. snappy/__pycache__/numeric_output_checker.cpython-310.pyc +0 -0
  298. snappy/__pycache__/pari.cpython-310.pyc +0 -0
  299. snappy/__pycache__/polyviewer.cpython-310.pyc +0 -0
  300. snappy/__pycache__/sage_helper.cpython-310.pyc +0 -0
  301. snappy/__pycache__/version.cpython-310.pyc +0 -0
  302. snappy/doc/_sources/verify_canon.rst.txt +0 -90
  303. snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
  304. snappy/doc/_static/js/html5shiv.min.js +0 -4
  305. snappy/doc/verify_canon.html +0 -304
  306. snappy/drilling/__pycache__/__init__.cpython-310.pyc +0 -0
  307. snappy/drilling/__pycache__/constants.cpython-310.pyc +0 -0
  308. snappy/drilling/__pycache__/crush.cpython-310.pyc +0 -0
  309. snappy/drilling/__pycache__/cusps.cpython-310.pyc +0 -0
  310. snappy/drilling/__pycache__/debug.cpython-310.pyc +0 -0
  311. snappy/drilling/__pycache__/epsilons.cpython-310.pyc +0 -0
  312. snappy/drilling/__pycache__/exceptions.cpython-310.pyc +0 -0
  313. snappy/drilling/__pycache__/fixed_points.cpython-310.pyc +0 -0
  314. snappy/drilling/__pycache__/geodesic_info.cpython-310.pyc +0 -0
  315. snappy/drilling/__pycache__/geodesic_tube.cpython-310.pyc +0 -0
  316. snappy/drilling/__pycache__/geometric_structure.cpython-310.pyc +0 -0
  317. snappy/drilling/__pycache__/line.cpython-310.pyc +0 -0
  318. snappy/drilling/__pycache__/moves.cpython-310.pyc +0 -0
  319. snappy/drilling/__pycache__/peripheral_curves.cpython-310.pyc +0 -0
  320. snappy/drilling/__pycache__/perturb.cpython-310.pyc +0 -0
  321. snappy/drilling/__pycache__/quotient_space.cpython-310.pyc +0 -0
  322. snappy/drilling/__pycache__/spatial_dict.cpython-310.pyc +0 -0
  323. snappy/drilling/__pycache__/subdivide.cpython-310.pyc +0 -0
  324. snappy/drilling/__pycache__/tracing.cpython-310.pyc +0 -0
  325. snappy/drilling/geodesic_tube.py +0 -441
  326. snappy/drilling/geometric_structure.py +0 -366
  327. snappy/drilling/line.py +0 -122
  328. snappy/drilling/quotient_space.py +0 -94
  329. snappy/drilling/spatial_dict.py +0 -128
  330. snappy/exterior_to_link/__pycache__/__init__.cpython-310.pyc +0 -0
  331. snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-310.pyc +0 -0
  332. snappy/exterior_to_link/__pycache__/exceptions.cpython-310.pyc +0 -0
  333. snappy/exterior_to_link/__pycache__/hyp_utils.cpython-310.pyc +0 -0
  334. snappy/exterior_to_link/__pycache__/link_projection.cpython-310.pyc +0 -0
  335. snappy/exterior_to_link/__pycache__/main.cpython-310.pyc +0 -0
  336. snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-310.pyc +0 -0
  337. snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-310.pyc +0 -0
  338. snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-310.pyc +0 -0
  339. snappy/exterior_to_link/__pycache__/pl_utils.cpython-310.pyc +0 -0
  340. snappy/exterior_to_link/__pycache__/put_in_S3.cpython-310.pyc +0 -0
  341. snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-310.pyc +0 -0
  342. snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-310.pyc +0 -0
  343. snappy/exterior_to_link/__pycache__/stored_moves.cpython-310.pyc +0 -0
  344. snappy/hyperboloid/__pycache__/__init__.cpython-310.pyc +0 -0
  345. snappy/manifolds/__pycache__/__init__.cpython-310.pyc +0 -0
  346. snappy/ptolemy/__pycache__/__init__.cpython-310.pyc +0 -0
  347. snappy/ptolemy/__pycache__/component.cpython-310.pyc +0 -0
  348. snappy/ptolemy/__pycache__/coordinates.cpython-310.pyc +0 -0
  349. snappy/ptolemy/__pycache__/fieldExtensions.cpython-310.pyc +0 -0
  350. snappy/ptolemy/__pycache__/findLoops.cpython-310.pyc +0 -0
  351. snappy/ptolemy/__pycache__/homology.cpython-310.pyc +0 -0
  352. snappy/ptolemy/__pycache__/manifoldMethods.cpython-310.pyc +0 -0
  353. snappy/ptolemy/__pycache__/matrix.cpython-310.pyc +0 -0
  354. snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-310.pyc +0 -0
  355. snappy/ptolemy/__pycache__/polynomial.cpython-310.pyc +0 -0
  356. snappy/ptolemy/__pycache__/processComponents.cpython-310.pyc +0 -0
  357. snappy/ptolemy/__pycache__/processFileBase.cpython-310.pyc +0 -0
  358. snappy/ptolemy/__pycache__/processFileDispatch.cpython-310.pyc +0 -0
  359. snappy/ptolemy/__pycache__/processMagmaFile.cpython-310.pyc +0 -0
  360. snappy/ptolemy/__pycache__/processRurFile.cpython-310.pyc +0 -0
  361. snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-310.pyc +0 -0
  362. snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-310.pyc +0 -0
  363. snappy/ptolemy/__pycache__/ptolemyVariety.cpython-310.pyc +0 -0
  364. snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-310.pyc +0 -0
  365. snappy/ptolemy/__pycache__/rur.cpython-310.pyc +0 -0
  366. snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-310.pyc +0 -0
  367. snappy/ptolemy/__pycache__/utilities.cpython-310.pyc +0 -0
  368. snappy/raytracing/__pycache__/__init__.cpython-310.pyc +0 -0
  369. snappy/raytracing/__pycache__/finite_raytracing_data.cpython-310.pyc +0 -0
  370. snappy/raytracing/__pycache__/gui_utilities.cpython-310.pyc +0 -0
  371. snappy/raytracing/__pycache__/hyperboloid_navigation.cpython-310.pyc +0 -0
  372. snappy/raytracing/__pycache__/hyperboloid_utilities.cpython-310.pyc +0 -0
  373. snappy/raytracing/__pycache__/ideal_raytracing_data.cpython-310.pyc +0 -0
  374. snappy/raytracing/__pycache__/inside_viewer.cpython-310.pyc +0 -0
  375. snappy/raytracing/__pycache__/raytracing_data.cpython-310.pyc +0 -0
  376. snappy/raytracing/__pycache__/raytracing_view.cpython-310.pyc +0 -0
  377. snappy/raytracing/__pycache__/upper_halfspace_utilities.cpython-310.pyc +0 -0
  378. snappy/raytracing/__pycache__/view_scale_controller.cpython-310.pyc +0 -0
  379. snappy/raytracing/zoom_slider/__pycache__/__init__.cpython-310.pyc +0 -0
  380. snappy/snap/__pycache__/__init__.cpython-310.pyc +0 -0
  381. snappy/snap/__pycache__/character_varieties.cpython-310.pyc +0 -0
  382. snappy/snap/__pycache__/fundamental_polyhedron.cpython-310.pyc +0 -0
  383. snappy/snap/__pycache__/interval_reps.cpython-310.pyc +0 -0
  384. snappy/snap/__pycache__/kernel_structures.cpython-310.pyc +0 -0
  385. snappy/snap/__pycache__/mcomplex_base.cpython-310.pyc +0 -0
  386. snappy/snap/__pycache__/nsagetools.cpython-310.pyc +0 -0
  387. snappy/snap/__pycache__/polished_reps.cpython-310.pyc +0 -0
  388. snappy/snap/__pycache__/shapes.cpython-310.pyc +0 -0
  389. snappy/snap/__pycache__/slice_obs_HKL.cpython-310.pyc +0 -0
  390. snappy/snap/__pycache__/utilities.cpython-310.pyc +0 -0
  391. snappy/snap/peripheral/__pycache__/__init__.cpython-310.pyc +0 -0
  392. snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-310.pyc +0 -0
  393. snappy/snap/peripheral/__pycache__/link.cpython-310.pyc +0 -0
  394. snappy/snap/peripheral/__pycache__/peripheral.cpython-310.pyc +0 -0
  395. snappy/snap/peripheral/__pycache__/surface.cpython-310.pyc +0 -0
  396. snappy/snap/t3mlite/__pycache__/__init__.cpython-310.pyc +0 -0
  397. snappy/snap/t3mlite/__pycache__/arrow.cpython-310.pyc +0 -0
  398. snappy/snap/t3mlite/__pycache__/corner.cpython-310.pyc +0 -0
  399. snappy/snap/t3mlite/__pycache__/edge.cpython-310.pyc +0 -0
  400. snappy/snap/t3mlite/__pycache__/face.cpython-310.pyc +0 -0
  401. snappy/snap/t3mlite/__pycache__/files.cpython-310.pyc +0 -0
  402. snappy/snap/t3mlite/__pycache__/homology.cpython-310.pyc +0 -0
  403. snappy/snap/t3mlite/__pycache__/linalg.cpython-310.pyc +0 -0
  404. snappy/snap/t3mlite/__pycache__/mcomplex.cpython-310.pyc +0 -0
  405. snappy/snap/t3mlite/__pycache__/perm4.cpython-310.pyc +0 -0
  406. snappy/snap/t3mlite/__pycache__/simplex.cpython-310.pyc +0 -0
  407. snappy/snap/t3mlite/__pycache__/spun.cpython-310.pyc +0 -0
  408. snappy/snap/t3mlite/__pycache__/surface.cpython-310.pyc +0 -0
  409. snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-310.pyc +0 -0
  410. snappy/snap/t3mlite/__pycache__/vertex.cpython-310.pyc +0 -0
  411. snappy/togl/__init__.py +0 -3
  412. snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
  413. snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
  414. snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  415. snappy/togl/darwin-tk8.7/Togl2.1/LICENSE +0 -28
  416. snappy/togl/darwin-tk8.7/Togl2.1/libTogl2.1.dylib +0 -0
  417. snappy/togl/darwin-tk8.7/Togl2.1/pkgIndex.tcl +0 -5
  418. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  419. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
  420. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  421. snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
  422. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
  423. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
  424. snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  425. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  426. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
  427. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
  428. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  429. snappy/twister/__pycache__/__init__.cpython-310.pyc +0 -0
  430. snappy/twister/__pycache__/main.cpython-310.pyc +0 -0
  431. snappy/upper_halfspace/__pycache__/__init__.cpython-310.pyc +0 -0
  432. snappy/upper_halfspace/__pycache__/ideal_point.cpython-310.pyc +0 -0
  433. snappy/verify/__pycache__/__init__.cpython-310.pyc +0 -0
  434. snappy/verify/__pycache__/cuspCrossSection.cpython-310.pyc +0 -0
  435. snappy/verify/__pycache__/cuspTranslations.cpython-310.pyc +0 -0
  436. snappy/verify/__pycache__/cusp_areas.cpython-310.pyc +0 -0
  437. snappy/verify/__pycache__/cusp_shapes.cpython-310.pyc +0 -0
  438. snappy/verify/__pycache__/exceptions.cpython-310.pyc +0 -0
  439. snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-310.pyc +0 -0
  440. snappy/verify/__pycache__/interval_tree.cpython-310.pyc +0 -0
  441. snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-310.pyc +0 -0
  442. snappy/verify/__pycache__/realAlgebra.cpython-310.pyc +0 -0
  443. snappy/verify/__pycache__/shapes.cpython-310.pyc +0 -0
  444. snappy/verify/__pycache__/short_slopes.cpython-310.pyc +0 -0
  445. snappy/verify/__pycache__/squareExtensions.cpython-310.pyc +0 -0
  446. snappy/verify/__pycache__/verifyCanonical.cpython-310.pyc +0 -0
  447. snappy/verify/__pycache__/verifyHyperbolicity.cpython-310.pyc +0 -0
  448. snappy/verify/__pycache__/volume.cpython-310.pyc +0 -0
  449. snappy/verify/complex_volume/__pycache__/__init__.cpython-310.pyc +0 -0
  450. snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-310.pyc +0 -0
  451. snappy/verify/complex_volume/__pycache__/closed.cpython-310.pyc +0 -0
  452. snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-310.pyc +0 -0
  453. snappy/verify/complex_volume/__pycache__/cusped.cpython-310.pyc +0 -0
  454. snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-310.pyc +0 -0
  455. snappy/verify/cuspCrossSection.py +0 -1422
  456. snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-310.pyc +0 -0
  457. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-310.pyc +0 -0
  458. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-310.pyc +0 -0
  459. snappy/verify/upper_halfspace/__pycache__/__init__.cpython-310.pyc +0 -0
  460. snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-310.pyc +0 -0
  461. snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-310.pyc +0 -0
  462. snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-310.pyc +0 -0
  463. snappy-3.1.1.dist-info/RECORD +0 -585
  464. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
@@ -1,23 +1,24 @@
1
+
2
+
1
3
  <!DOCTYPE html>
2
- <html class="writer-html5" lang="en" >
4
+ <html class="writer-html5" lang="en" data-content_root="./">
3
5
  <head>
4
- <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
6
+ <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
5
7
 
6
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>Triangulation &mdash; SnapPy 3.1.1 documentation</title>
8
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
9
- <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
10
- <link rel="stylesheet" href="_static/snappy_sphinx_rtd_theme.css" type="text/css" />
11
- <link rel="shortcut icon" href="_static/SnapPy.ico"/>
12
- <!--[if lt IE 9]>
13
- <script src="_static/js/html5shiv.min.js"></script>
14
- <![endif]-->
9
+ <title>Triangulation &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
+
15
14
 
16
- <script src="_static/jquery.js"></script>
17
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
18
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
19
- <script src="_static/doctools.js"></script>
20
- <script src="_static/sphinx_highlight.js"></script>
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>
21
22
  <script src="_static/js/theme.js"></script>
22
23
  <link rel="index" title="Index" href="genindex.html" />
23
24
  <link rel="search" title="Search" href="search.html" />
@@ -37,9 +38,6 @@
37
38
  SnapPy
38
39
  <img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
39
40
  </a>
40
- <div class="version">
41
- 3.1.1
42
- </div>
43
41
  <div role="search">
44
42
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
45
43
  <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
@@ -83,7 +81,6 @@
83
81
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.num_cusps"><code class="docutils literal notranslate"><span class="pre">Triangulation.num_cusps()</span></code></a></li>
84
82
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.num_tetrahedra"><code class="docutils literal notranslate"><span class="pre">Triangulation.num_tetrahedra()</span></code></a></li>
85
83
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.orientation_cover"><code class="docutils literal notranslate"><span class="pre">Triangulation.orientation_cover()</span></code></a></li>
86
- <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.pickle"><code class="docutils literal notranslate"><span class="pre">Triangulation.pickle()</span></code></a></li>
87
84
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.plink"><code class="docutils literal notranslate"><span class="pre">Triangulation.plink()</span></code></a></li>
88
85
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.ptolemy_generalized_obstruction_classes"><code class="docutils literal notranslate"><span class="pre">Triangulation.ptolemy_generalized_obstruction_classes()</span></code></a></li>
89
86
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.ptolemy_obstruction_classes"><code class="docutils literal notranslate"><span class="pre">Triangulation.ptolemy_obstruction_classes()</span></code></a></li>
@@ -95,6 +92,7 @@
95
92
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.set_peripheral_curves"><code class="docutils literal notranslate"><span class="pre">Triangulation.set_peripheral_curves()</span></code></a></li>
96
93
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.simplify"><code class="docutils literal notranslate"><span class="pre">Triangulation.simplify()</span></code></a></li>
97
94
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.slice_obstruction_HKL"><code class="docutils literal notranslate"><span class="pre">Triangulation.slice_obstruction_HKL()</span></code></a></li>
95
+ <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.symplectic_basis"><code class="docutils literal notranslate"><span class="pre">Triangulation.symplectic_basis()</span></code></a></li>
98
96
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.triangulation_isosig"><code class="docutils literal notranslate"><span class="pre">Triangulation.triangulation_isosig()</span></code></a></li>
99
97
  <li class="toctree-l4"><a class="reference internal" href="#snappy.Triangulation.with_hyperbolic_structure"><code class="docutils literal notranslate"><span class="pre">Triangulation.with_hyperbolic_structure()</span></code></a></li>
100
98
  </ul>
@@ -142,12 +140,12 @@
142
140
  <div itemprop="articleBody">
143
141
 
144
142
  <section id="triangulation">
145
- <h1>Triangulation<a class="headerlink" href="#triangulation" title="Permalink to this heading"></a></h1>
146
- <p>The main snappy class, namely Manifold, is derived from more
143
+ <h1>Triangulation<a class="headerlink" href="#triangulation" title="Link to this heading"></a></h1>
144
+ <p>The main snappy class, namely Manifold, is derived from the more
147
145
  basic class below.</p>
148
146
  <dl class="py class">
149
147
  <dt class="sig sig-object py" id="snappy.Triangulation">
150
- <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.</span></span><span class="sig-name descname"><span class="pre">Triangulation</span></span><a class="headerlink" href="#snappy.Triangulation" title="Permalink to this definition"></a></dt>
148
+ <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">snappy.</span></span><span class="sig-name descname"><span class="pre">Triangulation</span></span><a class="headerlink" href="#snappy.Triangulation" title="Link to this definition"></a></dt>
151
149
  <dd><p>A Triangulation object represents a compact 3-manifold with torus
152
150
  boundary components, given as an ideal triangulation of the
153
151
  manifold’s interior. A Dehn-filling can be specified for each
@@ -178,16 +176,16 @@ specify a link complement.</p></li>
178
176
  information on Dehn fillings added.</p>
179
177
  <ul>
180
178
  <li><p>SnapPea cusped census manifolds: e.g. ‘m123’, ‘s123’, ‘v123’.</p></li>
181
- <li><dl class="simple">
182
- <dt>Link complements:</dt><dd><ul class="simple">
179
+ <li><p>Link complements:</p>
180
+ <blockquote>
181
+ <div><ul class="simple">
183
182
  <li><p>Rolfsen’s table: e.g. ‘4_1’, ‘04_1’, ‘5^2_6’, ‘6_4^7’, ‘L20935’, ‘l104001’.</p></li>
184
183
  <li><p>Knots and links up to 14 crossings from tabulations by Hoste
185
184
  and Thistlethwaite: e.g. ‘K12a456’ or ‘L13n579’.</p></li>
186
185
  <li><p>Hoste-Thistlethwaite Knotscape table: e.g. ‘11a17’ or ‘12n345’</p></li>
187
186
  <li><p>Dowker-Thistlethwaite code: e.g. ‘DT:[(6,8,2,4)]’, ‘DT:dadbcda’</p></li>
188
187
  </ul>
189
- </dd>
190
- </dl>
188
+ </div></blockquote>
191
189
  </li>
192
190
  <li><p>Once-punctured torus bundles: e.g. ‘b++LLR’, ‘b+-llR’, ‘bo-RRL’, ‘bn+LRLR’</p></li>
193
191
  <li><p>Fibered manifold associated to a braid: ‘Braid:[1,2,-3,4]’</p>
@@ -210,7 +208,7 @@ projection file.</p></li>
210
208
  </ul>
211
209
  <dl class="py method">
212
210
  <dt class="sig sig-object py" id="snappy.Triangulation.DT_code">
213
- <span class="sig-name descname"><span class="pre">DT_code</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alpha</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flips</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.DT_code" title="Permalink to this definition"></a></dt>
211
+ <span class="sig-name descname"><span class="pre">DT_code</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alpha</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">flips</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.DT_code" title="Link to this definition"></a></dt>
214
212
  <dd><p>Return the Dowker-Thistlethwaite code of this link complement,
215
213
  if it is a link complement. The DT code is intended to be an
216
214
  immutable attribute, for use with knot and link exteriors
@@ -231,7 +229,7 @@ only, which is set only when the manifold was created.</p>
231
229
 
232
230
  <dl class="py method">
233
231
  <dt class="sig sig-object py" id="snappy.Triangulation.alexander_polynomial">
234
- <span class="sig-name descname"><span class="pre">alexander_polynomial</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.alexander_polynomial" title="Permalink to this definition"></a></dt>
232
+ <span class="sig-name descname"><span class="pre">alexander_polynomial</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.alexander_polynomial" title="Link to this definition"></a></dt>
235
233
  <dd><p>Computes the multivariable Alexander polynomial of the manifold:</p>
236
234
  <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;K12n123&#39;</span><span class="p">)</span>
237
235
  <span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">.</span><span class="n">alexander_polynomial</span><span class="p">()</span>
@@ -242,13 +240,14 @@ only, which is set only when the manifold was created.</p>
242
240
  <span class="n">a</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">b</span> <span class="o">+</span> <span class="n">a</span><span class="o">*</span><span class="n">b</span><span class="o">^</span><span class="mi">2</span> <span class="o">+</span> <span class="n">a</span><span class="o">*</span><span class="n">b</span> <span class="o">+</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
243
241
  </pre></div>
244
242
  </div>
245
- <p>Any provided keyword arguments are passed to fundamental_group and
243
+ <p>Any provided keyword arguments are passed to
244
+ <a class="reference internal" href="#snappy.Triangulation.fundamental_group" title="snappy.Triangulation.fundamental_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fundamental_group</span></code></a> and
246
245
  so affect the group presentation used in the computation.</p>
247
246
  </dd></dl>
248
247
 
249
248
  <dl class="py method">
250
249
  <dt class="sig sig-object py" id="snappy.Triangulation.copy">
251
- <span class="sig-name descname"><span class="pre">copy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.copy" title="Permalink to this definition"></a></dt>
250
+ <span class="sig-name descname"><span class="pre">copy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.copy" title="Link to this definition"></a></dt>
252
251
  <dd><p>Returns a copy of the triangulation.</p>
253
252
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m125&#39;</span><span class="p">)</span>
254
253
  <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
@@ -258,14 +257,13 @@ so affect the group presentation used in the computation.</p>
258
257
 
259
258
  <dl class="py method">
260
259
  <dt class="sig sig-object py" id="snappy.Triangulation.cover">
261
- <span class="sig-name descname"><span class="pre">cover</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">permutation_rep</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.cover" title="Permalink to this definition"></a></dt>
262
- <dd><p>Returns a Triangulation representing the finite cover
263
- specified by a transitive permutation representation. The
264
- representation is specified by a list of permutations, one for
265
- each generator of the simplified presentation of the
266
- fundamental group. Each permutation is specified as a list P
267
- such that set(P) == set(range(d)) where d is the degree of the
268
- cover.</p>
260
+ <span class="sig-name descname"><span class="pre">cover</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">permutation_rep</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#snappy.Triangulation" title="snappy.Triangulation"><span class="pre">snappy.Triangulation</span></a></span></span><a class="headerlink" href="#snappy.Triangulation.cover" title="Link to this definition"></a></dt>
261
+ <dd><p>Returns a <a class="reference internal" href="#snappy.Triangulation" title="snappy.Triangulation"><code class="xref py py-class docutils literal notranslate"><span class="pre">Triangulation</span></code></a> representing the finite cover specified
262
+ by a transitive permutation representation. The representation is
263
+ specified by a list of permutations, one for each generator of the
264
+ simplified presentation of the fundamental group. Each permutation is
265
+ specified as a list <code class="docutils literal notranslate"><span class="pre">P</span></code> such that <code class="docutils literal notranslate"><span class="pre">set(P)</span> <span class="pre">==</span> <span class="pre">set(range(d))</span></code> where
266
+ <code class="docutils literal notranslate"><span class="pre">d</span></code> is the degree of the cover.</p>
269
267
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
270
268
  <span class="gp">&gt;&gt;&gt; </span><span class="n">N0</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">cover</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">]])</span>
271
269
  <span class="gp">&gt;&gt;&gt; </span><span class="n">N0</span><span class="o">.</span><span class="n">homology</span><span class="p">()</span>
@@ -279,15 +277,15 @@ cover.</p>
279
277
  </pre></div>
280
278
  </div>
281
279
  <p>Within Sage the permutations can also be of type
282
- PermutationGroupElement, in which case they act on the set
283
- range(1, d + 1). Or, you can specify a GAP or Magma subgroup
284
- of the fundamental group. For examples, see the docstring for
285
- Manifold.cover</p>
280
+ <code class="docutils literal notranslate"><span class="pre">PermutationGroupElement</span></code>, in which case they act on the set
281
+ <code class="docutils literal notranslate"><span class="pre">range(1,</span> <span class="pre">d</span> <span class="pre">+</span> <span class="pre">1)</span></code>. Or, you can specify a GAP or Magma subgroup
282
+ of the fundamental group. For more examples, see the docstring for
283
+ <a class="reference internal" href="manifold.html#snappy.Manifold.cover" title="snappy.Manifold.cover"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Manifold.cover()</span></code></a>.</p>
286
284
  </dd></dl>
287
285
 
288
286
  <dl class="py method">
289
287
  <dt class="sig sig-object py" id="snappy.Triangulation.cover_info">
290
- <span class="sig-name descname"><span class="pre">cover_info</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.cover_info" title="Permalink to this definition"></a></dt>
288
+ <span class="sig-name descname"><span class="pre">cover_info</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.cover_info" title="Link to this definition"></a></dt>
291
289
  <dd><p>If this is a manifold or triangulation which was constructed as
292
290
  a covering space, return a dictionary describing the cover. Otherwise
293
291
  return 0. The dictionary keys are ‘base’, ‘type’ and ‘degree’.</p>
@@ -295,9 +293,8 @@ return 0. The dictionary keys are ‘base’, ‘type’ and ‘degree’.</p>
295
293
 
296
294
  <dl class="py method">
297
295
  <dt class="sig sig-object py" id="snappy.Triangulation.covers">
298
- <span class="sig-name descname"><span class="pre">covers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">degree</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">method</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cover_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.covers" title="Permalink to this definition"></a></dt>
299
- <dd><p>M.covers(degree, method=None, cover_type=’all’)</p>
300
- <p>Returns a list of Triangulations corresponding to all of the
296
+ <span class="sig-name descname"><span class="pre">covers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">degree</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">method</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cover_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#snappy.Triangulation" title="snappy.Triangulation"><span class="pre">snappy.Triangulation</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#snappy.Triangulation.covers" title="Link to this definition"></a></dt>
297
+ <dd><p>Returns a list of Triangulations corresponding to all of the
301
298
  finite covers of the given degree. The default method is
302
299
  ‘low_index’ for general covers and ‘snappea’ for cyclic
303
300
  covers. The former uses Sim’s algorithm while the latter
@@ -333,7 +330,7 @@ used it to do the heavy lifting by specifying method=’magma’.</p>
333
330
 
334
331
  <dl class="py method">
335
332
  <dt class="sig sig-object py" id="snappy.Triangulation.cusp_info">
336
- <span class="sig-name descname"><span class="pre">cusp_info</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data_spec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.cusp_info" title="Permalink to this definition"></a></dt>
333
+ <span class="sig-name descname"><span class="pre">cusp_info</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data_spec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.cusp_info" title="Link to this definition"></a></dt>
337
334
  <dd><p>Returns an info object containing information about the given
338
335
  cusp. Usage:</p>
339
336
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;v3227(0,0)(1,2)(3,2)&#39;</span><span class="p">)</span>
@@ -359,7 +356,7 @@ cusp. Usage:</p>
359
356
 
360
357
  <dl class="py method">
361
358
  <dt class="sig sig-object py" id="snappy.Triangulation.dehn_fill">
362
- <span class="sig-name descname"><span class="pre">dehn_fill</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filling_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.dehn_fill" title="Permalink to this definition"></a></dt>
359
+ <span class="sig-name descname"><span class="pre">dehn_fill</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filling_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#snappy.Triangulation.dehn_fill" title="Link to this definition"></a></dt>
363
360
  <dd><p>Set the Dehn filling coefficients of the cusps. This can be
364
361
  specified in the following ways, where the cusps are numbered
365
362
  by 0,1,…,(num_cusps - 1).</p>
@@ -395,12 +392,12 @@ by 0,1,…,(num_cusps - 1).</p>
395
392
  </div>
396
393
  </li>
397
394
  </ul>
398
- <p>Does not return a new Triangulation.</p>
395
+ <p>Does not return a new <a class="reference internal" href="#snappy.Triangulation" title="snappy.Triangulation"><code class="xref py py-class docutils literal notranslate"><span class="pre">Triangulation</span></code></a>.</p>
399
396
  </dd></dl>
400
397
 
401
398
  <dl class="py method">
402
399
  <dt class="sig sig-object py" id="snappy.Triangulation.edge_valences">
403
- <span class="sig-name descname"><span class="pre">edge_valences</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.edge_valences" title="Permalink to this definition"></a></dt>
400
+ <span class="sig-name descname"><span class="pre">edge_valences</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.edge_valences" title="Link to this definition"></a></dt>
404
401
  <dd><p>Returns a dictionary whose keys are the valences of the edges
405
402
  in the triangulation, and the value associated to a key is the
406
403
  number of edges of that valence.</p>
@@ -413,7 +410,7 @@ number of edges of that valence.</p>
413
410
 
414
411
  <dl class="py method">
415
412
  <dt class="sig sig-object py" id="snappy.Triangulation.exterior_to_link">
416
- <span class="sig-name descname"><span class="pre">exterior_to_link</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">check_input</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">check_answer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">careful_perturbation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">simplify_link</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pachner_search_tries</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.exterior_to_link" title="Permalink to this definition"></a></dt>
413
+ <span class="sig-name descname"><span class="pre">exterior_to_link</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">check_input</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">check_answer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">careful_perturbation</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">simplify_link</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pachner_search_tries</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="spherogram.html#spherogram.Link" title="spherogram.Link"><span class="pre">Link</span></a></span></span><a class="headerlink" href="#snappy.Triangulation.exterior_to_link" title="Link to this definition"></a></dt>
417
414
  <dd><p>For a triangulation of the exterior of a link in the 3-sphere,
418
415
  return a planar diagram for the link. The peripheral curves whose
419
416
  Dehn filling is the 3-sphere are <strong>part of the input</strong>, specified
@@ -477,7 +474,7 @@ each component of the link may not be preserved.</p>
477
474
 
478
475
  <dl class="py method">
479
476
  <dt class="sig sig-object py" id="snappy.Triangulation.filled_triangulation">
480
- <span class="sig-name descname"><span class="pre">filled_triangulation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cusps_to_fill</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.filled_triangulation" title="Permalink to this definition"></a></dt>
477
+ <span class="sig-name descname"><span class="pre">filled_triangulation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cusps_to_fill</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#snappy.Triangulation" title="snappy.Triangulation"><span class="pre">snappy.Triangulation</span></a></span></span><a class="headerlink" href="#snappy.Triangulation.filled_triangulation" title="Link to this definition"></a></dt>
481
478
  <dd><p>Return a new manifold where the specified cusps have been
482
479
  permanently filled in. Examples:</p>
483
480
  <p>Filling all the cusps:</p>
@@ -497,8 +494,8 @@ permanently filled in. Examples:</p>
497
494
 
498
495
  <dl class="py method">
499
496
  <dt class="sig sig-object py" id="snappy.Triangulation.fundamental_group">
500
- <span class="sig-name descname"><span class="pre">fundamental_group</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">simplify_presentation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fillings_may_affect_generators</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">minimize_number_of_generators</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">try_hard_to_shorten_relators</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.fundamental_group" title="Permalink to this definition"></a></dt>
501
- <dd><p>Returns a FundamentalGroup object representing the fundamental
497
+ <span class="sig-name descname"><span class="pre">fundamental_group</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">simplify_presentation</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fillings_may_affect_generators</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">minimize_number_of_generators</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">try_hard_to_shorten_relators</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">FundamentalGroup</span></span></span><a class="headerlink" href="#snappy.Triangulation.fundamental_group" title="Link to this definition"></a></dt>
498
+ <dd><p>Returns a <code class="xref py py-class docutils literal notranslate"><span class="pre">FundamentalGroup</span></code> object representing the fundamental
502
499
  group of the manifold. If integer Dehn surgery parameters
503
500
  have been set, then the corresponding peripheral elements are
504
501
  killed.</p>
@@ -532,7 +529,7 @@ killed.</p>
532
529
 
533
530
  <dl class="py method">
534
531
  <dt class="sig sig-object py" id="snappy.Triangulation.gluing_equations">
535
- <span class="sig-name descname"><span class="pre">gluing_equations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">form</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'log'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.gluing_equations" title="Permalink to this definition"></a></dt>
532
+ <span class="sig-name descname"><span class="pre">gluing_equations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">form</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'log'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.gluing_equations" title="Link to this definition"></a></dt>
536
533
  <dd><p>In the default mode, this function returns a matrix with rows
537
534
  of the form</p>
538
535
  <blockquote>
@@ -573,9 +570,8 @@ function returns a list of tuples of the form:</p>
573
570
 
574
571
  <dl class="py method">
575
572
  <dt class="sig sig-object py" id="snappy.Triangulation.gluing_equations_pgl">
576
- <span class="sig-name descname"><span class="pre">gluing_equations_pgl</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">N</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">equation_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.gluing_equations_pgl" title="Permalink to this definition"></a></dt>
577
- <dd><p>M.gluing_equations_pgl(N = 2, equation_type=’all’)</p>
578
- <p>Returns a NeumannZagierTypeEquations object that contains a matrix
573
+ <span class="sig-name descname"><span class="pre">gluing_equations_pgl</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">N</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">equation_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.gluing_equations_pgl" title="Link to this definition"></a></dt>
574
+ <dd><p>Returns a NeumannZagierTypeEquations object that contains a matrix
579
575
  encoding the gluing equations for boundary-parabolic PGL(N,C)
580
576
  representations together with explanations of the meaning
581
577
  of the rows and the columns of the matrix.</p>
@@ -584,7 +580,7 @@ as described in
584
580
  Stavros Garoufalidis, Matthias Goerner, Christian K. Zickert:
585
581
  “Gluing Equations for PGL(n,C)-Representations of 3-Manifolds”
586
582
  (<a class="reference external" href="http://arxiv.org/abs/1207.6711">http://arxiv.org/abs/1207.6711</a>).</p>
587
- <p>The result of the traditional gluing_equations() can be obtained from
583
+ <p>The result of the <a class="reference internal" href="#snappy.Triangulation.gluing_equations" title="snappy.Triangulation.gluing_equations"><code class="xref py py-meth docutils literal notranslate"><span class="pre">gluing_equations()</span></code></a> can be obtained from
588
584
  the general method by:</p>
589
585
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
590
586
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">gluing_equations_pgl</span><span class="p">()</span><span class="o">.</span><span class="n">matrix</span>
@@ -609,17 +605,17 @@ the columns and rows:</p>
609
605
  </div>
610
606
  <p>The first row of the matrix means that the edge equation for
611
607
  edge 0 is</p>
612
- <blockquote>
613
- <div><p>z_0000_0 ^ 2 * zp_0000_0 * z_0000_1 * zpp_0000_1 ^ 2 = 1.</p>
614
- </div></blockquote>
608
+ <div class="math notranslate nohighlight">
609
+ \[{z_{0000,0}}^2 * z'_{0000,0} * z_{0000,1} * {z''_{0000,1}}^2 = 1.\]</div>
615
610
  <p>Similarly, the next row encodes the edge equation for the other edge
616
611
  and the next two rows encode peripheral equations.</p>
617
- <p>Following the SnapPy convention, a z denotes the cross ratio z at the
618
- edge (0,1), a zp the cross ratio z’ at the edge (0,2) and a zpp the cross
619
- ratio z” at the edge (1,2). The entire symbol z_xxxx_y then
612
+ <p>Following the SnapPy convention, a <code class="docutils literal notranslate"><span class="pre">z</span></code> denotes the cross ratio
613
+ <span class="math notranslate nohighlight">\(z\)</span> at the edge (0,1), a <code class="docutils literal notranslate"><span class="pre">zp</span></code> the cross ratio <span class="math notranslate nohighlight">\(z'\)</span> at
614
+ the edge (0,2) and a <code class="docutils literal notranslate"><span class="pre">zpp</span></code> the cross
615
+ ratio <span class="math notranslate nohighlight">\(z''\)</span> at the edge (1,2). The entire symbol <code class="docutils literal notranslate"><span class="pre">z_xxxx_y</span></code> then
620
616
  denotes the cross ratio belonging to the subsimplex at integral
621
- point xxxx (always 0000 for N = 2) of the simplex y. Note: the
622
- SnapPy convention is different from the paper
617
+ point <code class="docutils literal notranslate"><span class="pre">xxxx</span></code> (always <code class="docutils literal notranslate"><span class="pre">0000</span></code> for <code class="docutils literal notranslate"><span class="pre">N</span> <span class="pre">=</span> <span class="pre">2</span></code>) of the simplex <code class="docutils literal notranslate"><span class="pre">y</span></code>.</p>
618
+ <p>Note: the SnapPy convention is different from the paper
623
619
  mentioned above, e.g., compare
624
620
  kernel_code/edge_classes.c with Figure 3. We follow the SnapPy
625
621
  convention here so that all computations done in SnapPy are
@@ -632,20 +628,20 @@ consistent.</p>
632
628
  </pre></div>
633
629
  </div>
634
630
  <p>A subset of all gluing equations can be obtained by setting the
635
- equation_type:</p>
631
+ <code class="docutils literal notranslate"><span class="pre">equation_type</span></code>:</p>
636
632
  <ul class="simple">
637
- <li><p>all gluing equations: all’</p></li>
638
- <li><p>non-peripheral equations: non_peripheral’</p>
633
+ <li><p>all gluing equations: <code class="docutils literal notranslate"><span class="pre">all</span></code></p></li>
634
+ <li><p>non-peripheral equations: <code class="docutils literal notranslate"><span class="pre">non_peripheral</span></code></p>
639
635
  <ul>
640
- <li><p>edge gluing equations: edge’</p></li>
641
- <li><p>face gluing equations: face’</p></li>
642
- <li><p>internal gluing equations: internal’</p></li>
636
+ <li><p>edge gluing equations: <code class="docutils literal notranslate"><span class="pre">edge</span></code></p></li>
637
+ <li><p>face gluing equations: <code class="docutils literal notranslate"><span class="pre">face</span></code></p></li>
638
+ <li><p>internal gluing equations: <code class="docutils literal notranslate"><span class="pre">internal</span></code></p></li>
643
639
  </ul>
644
640
  </li>
645
- <li><p>cusp gluing equations: peripheral’</p>
641
+ <li><p>cusp gluing equations: <code class="docutils literal notranslate"><span class="pre">peripheral</span></code></p>
646
642
  <ul>
647
- <li><p>cusp gluing equations for meridians: meridian’</p></li>
648
- <li><p>cusp gluing equations for longitudes: longitude’</p></li>
643
+ <li><p>cusp gluing equations for meridians: <code class="docutils literal notranslate"><span class="pre">meridian</span></code></p></li>
644
+ <li><p>cusp gluing equations for longitudes: <code class="docutils literal notranslate"><span class="pre">longitude</span></code></p></li>
649
645
  </ul>
650
646
  </li>
651
647
  </ul>
@@ -653,8 +649,8 @@ equation_type:</p>
653
649
 
654
650
  <dl class="py method">
655
651
  <dt class="sig sig-object py" id="snappy.Triangulation.has_finite_vertices">
656
- <span class="sig-name descname"><span class="pre">has_finite_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.has_finite_vertices" title="Permalink to this definition"></a></dt>
657
- <dd><p>Returns True if and only if the triangulation has finite (non-ideal)
652
+ <span class="sig-name descname"><span class="pre">has_finite_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#snappy.Triangulation.has_finite_vertices" title="Link to this definition"></a></dt>
653
+ <dd><p>Returns <code class="docutils literal notranslate"><span class="pre">True</span></code> if and only if the triangulation has finite (non-ideal)
658
654
  vertices.</p>
659
655
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s2">&quot;m004&quot;</span><span class="p">)</span>
660
656
  <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">has_finite_vertices</span><span class="p">()</span>
@@ -676,7 +672,7 @@ finite vertices:</p>
676
672
 
677
673
  <dl class="py method">
678
674
  <dt class="sig sig-object py" id="snappy.Triangulation.homological_longitude">
679
- <span class="sig-name descname"><span class="pre">homological_longitude</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cusp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.homological_longitude" title="Permalink to this definition"></a></dt>
675
+ <span class="sig-name descname"><span class="pre">homological_longitude</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cusp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.homological_longitude" title="Link to this definition"></a></dt>
680
676
  <dd><p>Returns the peripheral curve in the given cusp, if any, which is
681
677
  homologically trivial (with rational coefficients) in the manifold:</p>
682
678
  <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;m015&#39;</span><span class="p">)</span>
@@ -711,8 +707,8 @@ the manifold, an exception is raised:</p>
711
707
 
712
708
  <dl class="py method">
713
709
  <dt class="sig sig-object py" id="snappy.Triangulation.homology">
714
- <span class="sig-name descname"><span class="pre">homology</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.homology" title="Permalink to this definition"></a></dt>
715
- <dd><p>Returns an AbelianGroup representing the first integral
710
+ <span class="sig-name descname"><span class="pre">homology</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="additional_classes.html#snappy.AbelianGroup" title="SnapPy.AbelianGroup"><span class="pre">AbelianGroup</span></a></span></span><a class="headerlink" href="#snappy.Triangulation.homology" title="Link to this definition"></a></dt>
711
+ <dd><p>Returns an <a class="reference internal" href="additional_classes.html#snappy.AbelianGroup" title="snappy.AbelianGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">AbelianGroup</span></code></a> representing the first integral
716
712
  homology group of the underlying (Dehn filled) manifold.</p>
717
713
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m003&#39;</span><span class="p">)</span>
718
714
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">homology</span><span class="p">()</span>
@@ -723,7 +719,7 @@ homology group of the underlying (Dehn filled) manifold.</p>
723
719
 
724
720
  <dl class="py method">
725
721
  <dt class="sig sig-object py" id="snappy.Triangulation.is_orientable">
726
- <span class="sig-name descname"><span class="pre">is_orientable</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.is_orientable" title="Permalink to this definition"></a></dt>
722
+ <span class="sig-name descname"><span class="pre">is_orientable</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#snappy.Triangulation.is_orientable" title="Link to this definition"></a></dt>
727
723
  <dd><p>Return whether the underlying 3-manifold is orientable.</p>
728
724
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;x124&#39;</span><span class="p">)</span>
729
725
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">is_orientable</span><span class="p">()</span>
@@ -734,7 +730,7 @@ homology group of the underlying (Dehn filled) manifold.</p>
734
730
 
735
731
  <dl class="py method">
736
732
  <dt class="sig sig-object py" id="snappy.Triangulation.isomorphisms_to">
737
- <span class="sig-name descname"><span class="pre">isomorphisms_to</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">Triangulation</span> <span class="pre">other</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.isomorphisms_to" title="Permalink to this definition"></a></dt>
733
+ <span class="sig-name descname"><span class="pre">isomorphisms_to</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#snappy.Triangulation" title="snappy.Triangulation"><span class="pre">Triangulation</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">TriangulationHP</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Isometry</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#snappy.Triangulation.isomorphisms_to" title="Link to this definition"></a></dt>
738
734
  <dd><p>Returns a complete list of combinatorial isomorphisms between
739
735
  the two triangulations:</p>
740
736
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;5^2_1&#39;</span><span class="p">)</span>
@@ -757,17 +753,17 @@ meridian of cusp 1.</p>
757
753
 
758
754
  <dl class="py method">
759
755
  <dt class="sig sig-object py" id="snappy.Triangulation.link">
760
- <span class="sig-name descname"><span class="pre">link</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.link" title="Permalink to this definition"></a></dt>
756
+ <span class="sig-name descname"><span class="pre">link</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.link" title="Link to this definition"></a></dt>
761
757
  <dd><p>If the manifold is stored as a link complement in your
762
758
  current session then it returns the number of components
763
759
  and crossing of the link. To view and interact with the
764
760
  link see <a class="reference internal" href="spherogram.html#spherogram.Link.view" title="spherogram.Link.view"><code class="xref py py-meth docutils literal notranslate"><span class="pre">spherogram.Link.view()</span></code></a>
765
- and <a class="reference internal" href="manifold.html#snappy.Manifold.plink" title="snappy.Manifold.plink"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Manifold.plink()</span></code></a>.</p>
761
+ and <a class="reference internal" href="#snappy.Triangulation.plink" title="snappy.Triangulation.plink"><code class="xref py py-meth docutils literal notranslate"><span class="pre">plink</span></code></a>.</p>
766
762
  </dd></dl>
767
763
 
768
764
  <dl class="py method">
769
765
  <dt class="sig sig-object py" id="snappy.Triangulation.name">
770
- <span class="sig-name descname"><span class="pre">name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.name" title="Permalink to this definition"></a></dt>
766
+ <span class="sig-name descname"><span class="pre">name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#snappy.Triangulation.name" title="Link to this definition"></a></dt>
771
767
  <dd><p>Return the name of the triangulation.</p>
772
768
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;4_1&#39;</span><span class="p">)</span>
773
769
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">name</span><span class="p">()</span>
@@ -778,7 +774,7 @@ and <a class="reference internal" href="manifold.html#snappy.Manifold.plink" tit
778
774
 
779
775
  <dl class="py method">
780
776
  <dt class="sig sig-object py" id="snappy.Triangulation.normal_boundary_slopes">
781
- <span class="sig-name descname"><span class="pre">normal_boundary_slopes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'FXrays'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.normal_boundary_slopes" title="Permalink to this definition"></a></dt>
777
+ <span class="sig-name descname"><span class="pre">normal_boundary_slopes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'FXrays'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.normal_boundary_slopes" title="Link to this definition"></a></dt>
782
778
  <dd><p>For a one-cusped manifold, returns all the nonempty boundary slopes of
783
779
  spun normal surfaces. Provided the triangulation supports a
784
780
  genuine hyperbolic structure, then by <a class="reference external" href="http://arxiv.org/abs/math/0503027">Thurston and Walsh</a> any strict boundary slope
@@ -791,8 +787,9 @@ semifiber) must be listed here.</p>
791
787
  </div>
792
788
  <p>If the <code class="docutils literal notranslate"><span class="pre">subset</span></code> flag is set to <code class="docutils literal notranslate"><span class="pre">'kabaya'</span></code>, then it only
793
789
  returns boundary slopes associated to vertex surfaces with a quad
794
- in every tetrahedron; by Theorem 1.1. of <a class="reference external" href="http://arxiv.org/abs/1102.4588">[DG]</a> these are all strict boundary
795
- slopes.</p>
790
+ in every tetrahedron; by Theorem 1.1. of
791
+ <a class="reference external" href="http://arxiv.org/abs/1102.4588">Dunfield and Garoufalidis ‘12</a>
792
+ these are all strict boundary slopes.</p>
796
793
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">N</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;m113&#39;</span><span class="p">)</span>
797
794
  <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">normal_boundary_slopes</span><span class="p">()</span>
798
795
  <span class="go">[(1, 1), (1, 2), (2, -1), (2, 3), (8, 11)]</span>
@@ -811,7 +808,7 @@ giving isolated rays in the space of embedded normal surfaces.</p>
811
808
 
812
809
  <dl class="py method">
813
810
  <dt class="sig sig-object py" id="snappy.Triangulation.normal_surfaces">
814
- <span class="sig-name descname"><span class="pre">normal_surfaces</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'FXrays'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.normal_surfaces" title="Permalink to this definition"></a></dt>
811
+ <span class="sig-name descname"><span class="pre">normal_surfaces</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'FXrays'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.normal_surfaces" title="Link to this definition"></a></dt>
815
812
  <dd><p>All the vertex spun-normal surfaces in the current triangulation.</p>
816
813
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
817
814
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">normal_surfaces</span><span class="p">()</span>
@@ -825,7 +822,7 @@ giving isolated rays in the space of embedded normal surfaces.</p>
825
822
 
826
823
  <dl class="py method">
827
824
  <dt class="sig sig-object py" id="snappy.Triangulation.num_cusps">
828
- <span class="sig-name descname"><span class="pre">num_cusps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cusp_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.num_cusps" title="Permalink to this definition"></a></dt>
825
+ <span class="sig-name descname"><span class="pre">num_cusps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cusp_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">int</span></span></span><a class="headerlink" href="#snappy.Triangulation.num_cusps" title="Link to this definition"></a></dt>
829
826
  <dd><p>Return the total number of cusps. By giving the optional argument
830
827
  ‘orientable’ or ‘nonorientable’ it will only count cusps of that type.</p>
831
828
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m125&#39;</span><span class="p">)</span>
@@ -837,7 +834,7 @@ giving isolated rays in the space of embedded normal surfaces.</p>
837
834
 
838
835
  <dl class="py method">
839
836
  <dt class="sig sig-object py" id="snappy.Triangulation.num_tetrahedra">
840
- <span class="sig-name descname"><span class="pre">num_tetrahedra</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.num_tetrahedra" title="Permalink to this definition"></a></dt>
837
+ <span class="sig-name descname"><span class="pre">num_tetrahedra</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">int</span></span></span><a class="headerlink" href="#snappy.Triangulation.num_tetrahedra" title="Link to this definition"></a></dt>
841
838
  <dd><p>Return the number of tetrahedra in the triangulation.</p>
842
839
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
843
840
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">num_tetrahedra</span><span class="p">()</span>
@@ -848,7 +845,7 @@ giving isolated rays in the space of embedded normal surfaces.</p>
848
845
 
849
846
  <dl class="py method">
850
847
  <dt class="sig sig-object py" id="snappy.Triangulation.orientation_cover">
851
- <span class="sig-name descname"><span class="pre">orientation_cover</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.orientation_cover" title="Permalink to this definition"></a></dt>
848
+ <span class="sig-name descname"><span class="pre">orientation_cover</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.orientation_cover" title="Link to this definition"></a></dt>
852
849
  <dd><p>For a non-orientable Triangulation, returns the 2-fold cover which
853
850
  is orientable.</p>
854
851
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">X</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;x123&#39;</span><span class="p">)</span>
@@ -863,14 +860,9 @@ is orientable.</p>
863
860
  </div>
864
861
  </dd></dl>
865
862
 
866
- <dl class="py method">
867
- <dt class="sig sig-object py" id="snappy.Triangulation.pickle">
868
- <span class="sig-name descname"><span class="pre">pickle</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.pickle" title="Permalink to this definition"></a></dt>
869
- <dd></dd></dl>
870
-
871
863
  <dl class="py method">
872
864
  <dt class="sig sig-object py" id="snappy.Triangulation.plink">
873
- <span class="sig-name descname"><span class="pre">plink</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.plink" title="Permalink to this definition"></a></dt>
865
+ <span class="sig-name descname"><span class="pre">plink</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.plink" title="Link to this definition"></a></dt>
874
866
  <dd><p>Brings up a link editor window if the manifold is stored
875
867
  as a link complement in your current session.</p>
876
868
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;4_1&#39;</span><span class="p">)</span> <span class="c1"># stored as a triangulation with a link</span>
@@ -887,9 +879,8 @@ as a link complement in your current session.</p>
887
879
 
888
880
  <dl class="py method">
889
881
  <dt class="sig sig-object py" id="snappy.Triangulation.ptolemy_generalized_obstruction_classes">
890
- <span class="sig-name descname"><span class="pre">ptolemy_generalized_obstruction_classes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">N</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.ptolemy_generalized_obstruction_classes" title="Permalink to this definition"></a></dt>
891
- <dd><p>M.ptolemy_generalized_obstruction_classes(N)</p>
892
- <p>Returns the obstruction classes needed to compute
882
+ <span class="sig-name descname"><span class="pre">ptolemy_generalized_obstruction_classes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">N</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.ptolemy_generalized_obstruction_classes" title="Link to this definition"></a></dt>
883
+ <dd><p>Returns the obstruction classes needed to compute
893
884
  PGL(N,C)-representations for any N, i.e., it returns a list with
894
885
  a representative cocycle for each element in
895
886
  H^2(M, boundary M; Z/N) / (Z/N)^* where (Z/N)^* are the units in Z/N.
@@ -947,7 +938,7 @@ four face classes.</p>
947
938
 
948
939
  <dl class="py method">
949
940
  <dt class="sig sig-object py" id="snappy.Triangulation.ptolemy_obstruction_classes">
950
- <span class="sig-name descname"><span class="pre">ptolemy_obstruction_classes</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.ptolemy_obstruction_classes" title="Permalink to this definition"></a></dt>
941
+ <span class="sig-name descname"><span class="pre">ptolemy_obstruction_classes</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.ptolemy_obstruction_classes" title="Link to this definition"></a></dt>
951
942
  <dd><p>Returns the obstruction classes needed to compute
952
943
  pSL(N,C) = SL(N,C)/{+1,-1} representations for even N, i.e., it
953
944
  returns a list with a representative cocycle for each class in
@@ -1003,9 +994,8 @@ hence the cocycle takes the same value on those two faces (s_3_0 = s_1_1).</p>
1003
994
 
1004
995
  <dl class="py method">
1005
996
  <dt class="sig sig-object py" id="snappy.Triangulation.ptolemy_variety">
1006
- <span class="sig-name descname"><span class="pre">ptolemy_variety</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">N</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obstruction_class</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">simplify</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eliminate_fixed_ptolemys</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.ptolemy_variety" title="Permalink to this definition"></a></dt>
1007
- <dd><p>M.ptolemy_variety(N, obstruction_class = None, simplify = True, eliminate_fixed_ptolemys = False)</p>
1008
- <p>Returns a Ptolemy variety as described in</p>
997
+ <span class="sig-name descname"><span class="pre">ptolemy_variety</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">N</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obstruction_class</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">simplify</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eliminate_fixed_ptolemys</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.ptolemy_variety" title="Link to this definition"></a></dt>
998
+ <dd><p>Returns a Ptolemy variety as described in</p>
1009
999
  <ul class="simple">
1010
1000
  <li><p>Stavros Garoufalidis, Dyland Thurston, Christian K. Zickert:
1011
1001
  “The Complex Volume of SL(n,C)-Representations of 3-Manifolds”
@@ -1172,7 +1162,7 @@ on how to compute cross ratios, volumes and other invariants):</p>
1172
1162
 
1173
1163
  <dl class="py method">
1174
1164
  <dt class="sig sig-object py" id="snappy.Triangulation.randomize">
1175
- <span class="sig-name descname"><span class="pre">randomize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">blowup_multiple</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">passes_at_fours</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.randomize" title="Permalink to this definition"></a></dt>
1165
+ <span class="sig-name descname"><span class="pre">randomize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">blowup_multiple</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">passes_at_fours</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.randomize" title="Link to this definition"></a></dt>
1176
1166
  <dd><p>Perform random Pachner moves on the underlying triangulation,
1177
1167
  including some initial 3 -&gt; 2 moves that increase the number of
1178
1168
  tetrahedra by blowup_multiple.</p>
@@ -1184,7 +1174,7 @@ tetrahedra by blowup_multiple.</p>
1184
1174
 
1185
1175
  <dl class="py method">
1186
1176
  <dt class="sig sig-object py" id="snappy.Triangulation.reverse_orientation">
1187
- <span class="sig-name descname"><span class="pre">reverse_orientation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.reverse_orientation" title="Permalink to this definition"></a></dt>
1177
+ <span class="sig-name descname"><span class="pre">reverse_orientation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#snappy.Triangulation.reverse_orientation" title="Link to this definition"></a></dt>
1188
1178
  <dd><p>Reverses the orientation of the Triangulation, presuming that
1189
1179
  it is orientable.</p>
1190
1180
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;m015&#39;</span><span class="p">)</span>
@@ -1198,7 +1188,7 @@ it is orientable.</p>
1198
1188
 
1199
1189
  <dl class="py method">
1200
1190
  <dt class="sig sig-object py" id="snappy.Triangulation.save">
1201
- <span class="sig-name descname"><span class="pre">save</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">file_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.save" title="Permalink to this definition"></a></dt>
1191
+ <span class="sig-name descname"><span class="pre">save</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">file_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.save" title="Link to this definition"></a></dt>
1202
1192
  <dd><p>Save the triangulation as a SnapPea triangulation file.</p>
1203
1193
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
1204
1194
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s1">&#39;fig-eight.tri&#39;</span><span class="p">)</span>
@@ -1216,7 +1206,7 @@ with Dehn coefficients (2,3).</p>
1216
1206
 
1217
1207
  <dl class="py method">
1218
1208
  <dt class="sig sig-object py" id="snappy.Triangulation.set_name">
1219
- <span class="sig-name descname"><span class="pre">set_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_name</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.set_name" title="Permalink to this definition"></a></dt>
1209
+ <span class="sig-name descname"><span class="pre">set_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#snappy.Triangulation.set_name" title="Link to this definition"></a></dt>
1220
1210
  <dd><p>Give the triangulation a new name.</p>
1221
1211
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;4_1&#39;</span><span class="p">)</span>
1222
1212
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">set_name</span><span class="p">(</span><span class="s1">&#39;figure-eight-comp&#39;</span><span class="p">)</span>
@@ -1228,7 +1218,7 @@ with Dehn coefficients (2,3).</p>
1228
1218
 
1229
1219
  <dl class="py method">
1230
1220
  <dt class="sig sig-object py" id="snappy.Triangulation.set_peripheral_curves">
1231
- <span class="sig-name descname"><span class="pre">set_peripheral_curves</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">peripheral_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_matrices</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.set_peripheral_curves" title="Permalink to this definition"></a></dt>
1221
+ <span class="sig-name descname"><span class="pre">set_peripheral_curves</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">peripheral_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_matrices</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.set_peripheral_curves" title="Link to this definition"></a></dt>
1232
1222
  <dd><p>Each cusp has a preferred marking. In the case of a torus
1233
1223
  cusp, this is pair of essential simple curves meeting in one
1234
1224
  point; equivalently, a basis of the first homology of the
@@ -1243,7 +1233,7 @@ as peripheral_data.</p>
1243
1233
 
1244
1234
  <dl class="py method">
1245
1235
  <dt class="sig sig-object py" id="snappy.Triangulation.simplify">
1246
- <span class="sig-name descname"><span class="pre">simplify</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">passes_at_fours</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.simplify" title="Permalink to this definition"></a></dt>
1236
+ <span class="sig-name descname"><span class="pre">simplify</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">passes_at_fours</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.simplify" title="Link to this definition"></a></dt>
1247
1237
  <dd><p>Try to simplify the triangulation by doing Pachner moves.</p>
1248
1238
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;12n123&#39;</span><span class="p">)</span>
1249
1239
  <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">simplify</span><span class="p">()</span>
@@ -1268,7 +1258,7 @@ before giving up.</p>
1268
1258
 
1269
1259
  <dl class="py method">
1270
1260
  <dt class="sig sig-object py" id="snappy.Triangulation.slice_obstruction_HKL">
1271
- <span class="sig-name descname"><span class="pre">slice_obstruction_HKL</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">primes_spec</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">check_in_S3</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.slice_obstruction_HKL" title="Permalink to this definition"></a></dt>
1261
+ <span class="sig-name descname"><span class="pre">slice_obstruction_HKL</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">primes_spec</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">check_in_S3</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.slice_obstruction_HKL" title="Link to this definition"></a></dt>
1272
1262
  <dd><p>For the exterior of a knot in S^3, searches for a topological
1273
1263
  slicing obstruction from:</p>
1274
1264
  <p>Herald, Kirk, Livingston, Math Zeit., 2010
@@ -1284,7 +1274,6 @@ slice), and otherwise returns None:</p>
1284
1274
  <span class="n">sage</span><span class="p">:</span> <span class="n">spec</span> <span class="o">=</span> <span class="p">[(</span><span class="mi">10</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">20</span><span class="p">]),</span> <span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">])]</span>
1285
1275
  <span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">.</span><span class="n">slice_obstruction_HKL</span><span class="p">(</span><span class="n">spec</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1286
1276
  <span class="n">Looking</span> <span class="n">at</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="o">...</span>
1287
- <span class="n">Looking</span> <span class="n">at</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="o">...</span>
1288
1277
  <span class="n">Looking</span> <span class="n">at</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span> <span class="o">...</span>
1289
1278
  <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span>
1290
1279
  </pre></div>
@@ -1293,7 +1282,6 @@ slice), and otherwise returns None:</p>
1293
1282
  the q by just q_max:</p>
1294
1283
  <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">spec</span> <span class="o">=</span> <span class="p">[([</span><span class="mi">3</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span> <span class="mi">10</span><span class="p">)]</span>
1295
1284
  <span class="n">sage</span><span class="p">:</span> <span class="n">M</span><span class="o">.</span><span class="n">slice_obstruction_HKL</span><span class="p">(</span><span class="n">spec</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1296
- <span class="n">Looking</span> <span class="n">at</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="o">...</span>
1297
1285
  <span class="n">Looking</span> <span class="n">at</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span> <span class="o">...</span>
1298
1286
  <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span>
1299
1287
  </pre></div>
@@ -1312,123 +1300,244 @@ broadly, but other cases requires computing many more twisted
1312
1300
  Alexander polynomials.</p>
1313
1301
  </dd></dl>
1314
1302
 
1303
+ <dl class="py method">
1304
+ <dt class="sig sig-object py" id="snappy.Triangulation.symplectic_basis">
1305
+ <span class="sig-name descname"><span class="pre">symplectic_basis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verify</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.symplectic_basis" title="Link to this definition"></a></dt>
1306
+ <dd><p>Extend the Neumann-Zagier matrix to one which is symplectic
1307
+ (up to factors of 2) using oscillating curves, see
1308
+ <a class="reference external" href="https://arxiv.org/abs/2208.06969">Mathews and Purcell ‘22</a>.
1309
+ Only accepts triangulations with 1 cusp.</p>
1310
+ <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">&quot;4_1&quot;</span><span class="p">)</span>
1311
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">symplectic_basis</span><span class="p">()</span>
1312
+ <span class="go">[-1 0 -1 -1]</span>
1313
+ <span class="go">[ 2 0 -2 0]</span>
1314
+ <span class="go">[-2 -1 -2 -1]</span>
1315
+ <span class="go">[ 0 -1 -2 -1]</span>
1316
+ </pre></div>
1317
+ </div>
1318
+ <dl class="field-list simple">
1319
+ <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1320
+ <dd class="field-odd"><p><strong>verify</strong> – Explicitly test if the resulting matrix is symplectic.</p>
1321
+ </dd>
1322
+ </dl>
1323
+ </dd></dl>
1324
+
1315
1325
  <dl class="py method">
1316
1326
  <dt class="sig sig-object py" id="snappy.Triangulation.triangulation_isosig">
1317
- <span class="sig-name descname"><span class="pre">triangulation_isosig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">decorated</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_cusp_ordering</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_curve_orientations</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_orientation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.triangulation_isosig" title="Permalink to this definition"></a></dt>
1318
- <dd><p>Returns a compact text representation of the triangulation, called a
1319
- “decorated isomorphism signature”</p>
1320
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
1327
+ <span class="sig-name descname"><span class="pre">triangulation_isosig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">decorated</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_cusp_ordering</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_curves</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_curve_orientations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_filling_orientations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_orientation</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#snappy.Triangulation.triangulation_isosig" title="Link to this definition"></a></dt>
1328
+ <dd><p>Returns the “(decorated) isomorphism signature”, a compact text
1329
+ representation of the triangulation:</p>
1330
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
1321
1331
  <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1322
1332
  <span class="go">&#39;cPcbbbiht_BaCB&#39;</span>
1323
1333
  </pre></div>
1324
1334
  </div>
1325
- <p>You can use this string to recreate an isomorphic triangulation later</p>
1326
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">A</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;y233&#39;</span><span class="p">)</span>
1327
- <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1328
- <span class="go">&#39;hLMzMkbcdefggghhhqxqhx_BaaB&#39;</span>
1329
- <span class="gp">&gt;&gt;&gt; </span><span class="n">B</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;hLMzMkbcdefggghhhqxqhx_BaaB&#39;</span><span class="p">)</span>
1330
- <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span> <span class="o">==</span> <span class="n">B</span>
1335
+ <p>This string can be used later to recreate an isomorphic triangulation:</p>
1336
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">U</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;cPcbbbiht_BaCB&#39;</span><span class="p">)</span>
1337
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">==</span> <span class="n">U</span>
1331
1338
  <span class="go">True</span>
1332
1339
  </pre></div>
1333
1340
  </div>
1334
- <p>By default, the returned string encodes the peripheral curves (and
1335
- slopes of Dehn-fillings if any are present), but you can request
1336
- only the “isomorphism signature” which can be given to
1337
- <a class="reference external" href="https://regina-normal.github.io/">Regina</a>.</p>
1338
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">E</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;K3_1&#39;</span><span class="p">)</span> <span class="c1"># the (-2, 3, 7) exterior</span>
1339
- <span class="gp">&gt;&gt;&gt; </span><span class="n">isosig</span> <span class="o">=</span> <span class="n">E</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span> <span class="o">=</span> <span class="kc">False</span><span class="p">);</span> <span class="n">isosig</span>
1340
- <span class="go">&#39;dLQacccjsnk&#39;</span>
1341
- <span class="gp">&gt;&gt;&gt; </span><span class="n">F</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="n">isosig</span><span class="p">)</span>
1342
- <span class="gp">&gt;&gt;&gt; </span><span class="n">E</span><span class="o">.</span><span class="n">isomorphisms_to</span><span class="p">(</span><span class="n">F</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
1343
- <span class="go">0 -&gt; 0</span>
1344
- <span class="go">[1 18]</span>
1345
- <span class="go">[0 1]</span>
1346
- <span class="go">Extends to link</span>
1347
- <span class="gp">&gt;&gt;&gt; </span><span class="n">E</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1348
- <span class="go">&#39;dLQacccjsnk_BaRsB&#39;</span>
1349
- <span class="gp">&gt;&gt;&gt; </span><span class="n">F</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1350
- <span class="go">&#39;dLQacccjsnk_BaaB&#39;</span>
1351
- <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;dLQacccjsnk_BaRsB&#39;</span><span class="p">)</span>
1352
- <span class="gp">&gt;&gt;&gt; </span><span class="n">E</span><span class="o">.</span><span class="n">isomorphisms_to</span><span class="p">(</span><span class="n">G</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
1353
- <span class="go">0 -&gt; 0</span>
1354
- <span class="go">[1 0]</span>
1355
- <span class="go">[0 1]</span>
1356
- <span class="go">Extends to link</span>
1357
- </pre></div>
1358
- </div>
1359
- <p>If you do not care about the indexing of the cusps when using a
1360
- decorated signature, use ignore_cusp_ordering</p>
1361
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">&quot;L14n64110(1,2)(2,3)(-2,1)(3,4)(0,0)&quot;</span><span class="p">)</span>
1362
- <span class="gp">&gt;&gt;&gt; </span><span class="n">isosig</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">ignore_cusp_ordering</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
1363
- <span class="gp">&gt;&gt;&gt; </span><span class="n">isosig</span>
1364
- <span class="go">&#39;xLLvLvMLPMPLAMQQcceflnjmmmospsrttvvvtswwwiieiifdeauinasltltahmbjn_bacBbaaBBaBbBbbaabba(2,3)(-2,1)(1,2)(3,4)(0,0)&#39;</span>
1365
- <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="n">isosig</span><span class="p">)</span><span class="o">.</span><span class="n">filled_triangulation</span><span class="p">()</span>
1366
- <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">is_isometric_to</span><span class="p">(</span><span class="n">M</span><span class="o">.</span><span class="n">filled_triangulation</span><span class="p">())</span>
1367
- <span class="go">True</span>
1368
- </pre></div>
1369
- </div>
1370
- <p>If you do not care about the orientations of the peripheral curves,
1371
- use ignore_curve_orientations</p>
1372
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">&quot;L6a1&quot;</span><span class="p">)</span>
1373
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1374
- <span class="go">&#39;gLLAQcdeefffdopuado_BabbBaab&#39;</span>
1375
- <span class="gp">&gt;&gt;&gt; </span><span class="n">isosig</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">ignore_curve_orientations</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
1376
- <span class="gp">&gt;&gt;&gt; </span><span class="n">isosig</span>
1377
- <span class="go">&#39;gLLAQcdeefffdopuado_babbbaab&#39;</span>
1378
- <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="n">isosig</span><span class="p">)</span>
1379
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">isomorphisms_to</span><span class="p">(</span><span class="n">N</span><span class="p">)</span>
1341
+ <p>The isomorphism signature is also used to compute the
1342
+ <a class="reference internal" href="manifold.html#snappy.Manifold.isometry_signature" title="snappy.Manifold.isometry_signature"><code class="xref py py-meth docutils literal notranslate"><span class="pre">isometry_signature</span></code></a>.
1343
+ It comes in two flavors controlled by the <code class="xref py py-attr docutils literal notranslate"><span class="pre">decorated</span></code> flag.</p>
1344
+ <p><strong>Undecorated isomorphism signature</strong></p>
1345
+ <p>The undecorated isomorphism signature is a complete invariant of the
1346
+ (oriented) triangulation up to combinatorial isomorphism:</p>
1347
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m015&#39;</span><span class="p">)</span>
1348
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1349
+ <span class="go">&#39;dLQbcccdero&#39;</span>
1350
+ </pre></div>
1351
+ </div>
1352
+ <p>It was introduced in
1353
+ <a class="reference external" href="http://arxiv.org/abs/1110.6080">Burton ‘11</a>. It canonizes and
1354
+ generalizes the ealier dehydration string by
1355
+ <a class="reference external" href="https://doi.org/10.1090/S0025-5718-99-01036-4">Callahan, Hildebrand and Weeks ‘99</a>.
1356
+ The undecorated isomorphism signature can also be given to
1357
+ <a class="reference external" href="https://regina-normal.github.io/">Regina</a>’s
1358
+ <code class="docutils literal notranslate"><span class="pre">Triangulation3.fromIsoSig</span></code>.</p>
1359
+ <p>By default, the orientation (if orientable) is ignored. More
1360
+ precisely, it computes the string for both orientations (if orientable)
1361
+ and uses the lexicographically smaller string:</p>
1362
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m015&#39;</span><span class="p">)</span>
1363
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1364
+ <span class="go">&#39;dLQbcccdero&#39;</span>
1365
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">reverse_orientation</span><span class="p">()</span>
1366
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1367
+ <span class="go">&#39;dLQbcccdero&#39;</span>
1368
+ </pre></div>
1369
+ </div>
1370
+ <p>When specifying <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_orientation</span> <span class="pre">=</span> <span class="pre">False</span></code>, the result
1371
+ encodes the orientation (if orientable). Now the result is
1372
+ different if we change the orientation of a chiral triangulation:</p>
1373
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m015&#39;</span><span class="p">)</span>
1374
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">ignore_orientation</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1375
+ <span class="go">&#39;dLQbcccdero&#39;</span>
1376
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">reverse_orientation</span><span class="p">()</span>
1377
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">ignore_orientation</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1378
+ <span class="go">&#39;dLQbccceekg&#39;</span>
1379
+ </pre></div>
1380
+ </div>
1381
+ <p><strong>Decorated isomorphism signature (default)</strong></p>
1382
+ <p>SnapPy can decorate the isomorphism signature to include the following
1383
+ peripheral information in a canonical way (that is invariant under
1384
+ the action by combinatorial isomorphisms of the triangulation):</p>
1385
+ <ol class="arabic simple">
1386
+ <li><p>Indexing of the cusps (that is, ideal vertices).</p>
1387
+ <ul class="simple">
1388
+ <li><p>Included by default.
1389
+ Can be suppressed with <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_cusp_ordering</span> <span class="pre">=</span> <span class="pre">True</span></code>.</p></li>
1390
+ </ul>
1391
+ </li>
1392
+ <li><p>Peripheral curves (aka meridian and longitude, up to homotopy).</p>
1393
+ <ul class="simple">
1394
+ <li><p>Included by default.
1395
+ Can be suppressed with <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_curves</span> <span class="pre">=</span> <span class="pre">True</span></code>.</p></li>
1396
+ <li><p>By default, the decoration encodes the oriented peripheral curves.
1397
+ By specifying <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_curve_orientations</span> <span class="pre">=</span> <span class="pre">True</span></code>, it encodes
1398
+ the unoriented peripheral curves instead.</p></li>
1399
+ </ul>
1400
+ </li>
1401
+ <li><p>Dehn-fillings (if present).</p>
1402
+ <ul class="simple">
1403
+ <li><p>By default, the decoration encodes the oriented Dehn-fillings.
1404
+ That is, we also encodes the orientation of the peripheral curve
1405
+ that is used for the Dehn-filling (this explanation only
1406
+ works if the coefficients are integral).
1407
+ By specifying <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_filling_orientations</span> <span class="pre">=</span> <span class="pre">True</span></code>, the
1408
+ decoration encodes the unoriented Dehn-fillings.
1409
+ That is, it normalizes the Dehn-filling coefficients by picking
1410
+ a canonical pair among <span class="math notranslate nohighlight">\((m,l)\)</span> and <span class="math notranslate nohighlight">\((-m,-l)\)</span>.</p></li>
1411
+ </ul>
1412
+ </li>
1413
+ </ol>
1414
+ <p>Details of the encoding are explained in the
1415
+ <a class="reference external" href="https://github.com/3-manifolds/SnapPy/blob/master/python/decorated_isosig.py">SnapPy source code</a>.</p>
1416
+ <p><strong>Example</strong></p>
1417
+ <p>Let us consider the links <span class="math notranslate nohighlight">\(9^2_{34}\)</span> and <code class="docutils literal notranslate"><span class="pre">L9a21</span></code>. Note that we use
1418
+ <a class="reference internal" href="manifold.html#snappy.Manifold.canonical_retriangulation" title="snappy.Manifold.canonical_retriangulation"><code class="xref py py-meth docutils literal notranslate"><span class="pre">canonical_retriangulation</span></code></a>
1419
+ to make the following examples say something intrinsic about the
1420
+ hyperbolic manifold:</p>
1421
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">snappy</span> <span class="kn">import</span> <span class="n">Manifold</span>
1422
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;9^2_34&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">canonical_retriangulation</span><span class="p">()</span>
1423
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;L9a21&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">canonical_retriangulation</span><span class="p">()</span>
1424
+ </pre></div>
1425
+ </div>
1426
+ <p>The decorated isosig recovers the entire peripheral information faithfully
1427
+ (including orientation, see below):</p>
1428
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1429
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_baBabbbBbC&#39;</span>
1430
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">K</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_baBabbbBbC&#39;</span><span class="p">)</span>
1431
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">isomorphisms_to</span><span class="p">(</span><span class="n">K</span><span class="p">)</span>
1380
1432
  <span class="go">[0 -&gt; 0 1 -&gt; 1</span>
1381
- <span class="go">[-1 0] [-1 0]</span>
1382
- <span class="go">[ 0 1] [ 0 1]</span>
1383
- <span class="go">Extends to link, 0 -&gt; 0 1 -&gt; 1</span>
1384
- <span class="go">[1 0] [1 0]</span>
1385
- <span class="go">[0 -1] [0 -1]</span>
1433
+ <span class="go">[1 0] [1 0]</span>
1434
+ <span class="go">[0 1] [0 1]</span>
1386
1435
  <span class="go">Extends to link]</span>
1387
1436
  </pre></div>
1388
1437
  </div>
1389
- <p>By default, the isomorphism signature does not capture the orientation
1390
- of an orientable triangulation. If you specify
1391
- <cite>ignore_orientation = False</cite>, the isomorphism signature for an oriented
1392
- triangulation and its mirror image will be different if the
1393
- triangulation is cheiral.</p>
1394
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">&quot;m006&quot;</span><span class="p">)</span>
1395
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">ignore_orientation</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
1396
- <span class="go">&#39;dLQacccjnjs&#39;</span>
1397
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">reverse_orientation</span><span class="p">()</span>
1398
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">ignore_orientation</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
1399
- <span class="go">&#39;dLQacccnsnk&#39;</span>
1400
- </pre></div>
1401
- </div>
1402
- <p>Note that a decorated triangulation isosig with the default values
1403
- <cite>ignore_orientation = True</cite> but <cite>ignore_curve_orientations = False</cite>
1404
- still captures the orientations of the triangulation through the
1405
- peripheral curves.</p>
1406
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s2">&quot;m006&quot;</span><span class="p">)</span>
1407
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1408
- <span class="go">&#39;dLQacccjnjs_aBbB&#39;</span>
1409
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">reverse_orientation</span><span class="p">()</span>
1410
- <span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">()</span>
1411
- <span class="go">&#39;dLQacccjnjs_aBBb&#39;</span>
1412
- </pre></div>
1413
- </div>
1414
- <p>The code has been copied from <a class="reference external" href="https://regina-normal.github.io/">Regina</a> where
1415
- the corresponding method is called “isoSig”.</p>
1416
- <p>Unlike dehydrations for 3-manifold triangulations, an
1417
- isomorphism signature uniquely determines a triangulation up
1418
- to combinatorial isomorphism. That is, two triangulations of
1419
- 3-dimensional manifolds are combinatorially isomorphic if and
1420
- only if their isomorphism signatures are the same string. For
1421
- full details, see <a class="reference external" href="http://arxiv.org/abs/1110.6080">Simplification paths in the Pachner graphs
1422
- of closed orientable 3-manifold triangulations, Burton, 2011</a>.</p>
1423
- <p>For details about how the peripheral decorations work, see
1424
- the SnapPy source code.</p>
1438
+ <p>The two links have isometric complements:</p>
1439
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1440
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo&#39;</span>
1441
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1442
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo&#39;</span>
1443
+ </pre></div>
1444
+ </div>
1445
+ <p>However, the complements have different handedness:</p>
1446
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span><span class="n">ignore_orientation</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1447
+ <span class="go">&#39;oLLzLPwzQQccdeghjiiklmnmnnuvuvvavovvffffo&#39;</span>
1448
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">decorated</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span><span class="n">ignore_orientation</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
1449
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo&#39;</span>
1450
+ </pre></div>
1451
+ </div>
1452
+ <p>Also, the cusps/components of the link are indexed differently:</p>
1453
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">ignore_curves</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1454
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_ba&#39;</span>
1455
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">ignore_curves</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1456
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_ab&#39;</span>
1457
+ </pre></div>
1458
+ </div>
1459
+ <p>Ignoring the indexing, we also see that the oriented merdians and
1460
+ longitudes do not match:</p>
1461
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">ignore_cusp_ordering</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1462
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_bBbCBabb&#39;</span>
1463
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">ignore_cusp_ordering</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1464
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_BbbCbabb&#39;</span>
1465
+ </pre></div>
1466
+ </div>
1467
+ <p>However, they are the same links (ignoring indexing and orientation):</p>
1468
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">ignore_cusp_ordering</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">ignore_curve_orientations</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1469
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_bBBcbabb&#39;</span>
1470
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span><span class="n">ignore_cusp_ordering</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">ignore_curve_orientations</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1471
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo_bBBcbabb&#39;</span>
1472
+ </pre></div>
1473
+ </div>
1474
+ <p>Let us create two surgery presentations from the links (note that we
1475
+ fill after
1476
+ <a class="reference internal" href="manifold.html#snappy.Manifold.canonical_retriangulation" title="snappy.Manifold.canonical_retriangulation"><code class="xref py py-meth docutils literal notranslate"><span class="pre">canonical_retriangulation</span></code></a>
1477
+ since it rejects Dehn-fillings):</p>
1478
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">dehn_fill</span><span class="p">((</span><span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
1479
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">dehn_fill</span><span class="p">((</span><span class="mi">4</span><span class="p">,</span><span class="o">-</span><span class="mi">5</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span>
1480
+ </pre></div>
1481
+ </div>
1482
+ <p>They are equivalent surgery presentations (of the same manifold):</p>
1483
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span>
1484
+ <span class="gp">... </span> <span class="n">ignore_cusp_ordering</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
1485
+ <span class="gp">... </span> <span class="n">ignore_curves</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
1486
+ <span class="gp">... </span> <span class="n">ignore_filling_orientations</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1487
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo(0,0)(1,5)&#39;</span>
1488
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">triangulation_isosig</span><span class="p">(</span>
1489
+ <span class="gp">... </span> <span class="n">ignore_cusp_ordering</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
1490
+ <span class="gp">... </span> <span class="n">ignore_curves</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
1491
+ <span class="gp">... </span> <span class="n">ignore_filling_orientations</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
1492
+ <span class="go">&#39;oLLvzQLLQQccdhifihnlmkmlnnpvuvbvouggbggoo(0,0)(1,5)&#39;</span>
1493
+ </pre></div>
1494
+ </div>
1495
+ <p><strong>Orientation</strong></p>
1496
+ <p>Note that <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_orientation=True</span></code> only applies to the undecorated
1497
+ part of the isomorphism signature. The decoration can still capture the
1498
+ the orientation.
1499
+ More, precisely, the result of <a class="reference internal" href="#snappy.Triangulation.triangulation_isosig" title="snappy.Triangulation.triangulation_isosig"><code class="xref py py-meth docutils literal notranslate"><span class="pre">triangulation_isosig()</span></code></a> depends on
1500
+ the orientation (if the triangulation is orientable and chiral) if any
1501
+ of the following is true:</p>
1502
+ <ol class="arabic simple">
1503
+ <li><p><code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_orientation</span> <span class="pre">=</span> <span class="pre">False</span></code>.</p></li>
1504
+ <li><p><code class="xref py py-attr docutils literal notranslate"><span class="pre">decorated</span> <span class="pre">=</span> <span class="pre">True</span></code> and
1505
+ <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_curves</span> <span class="pre">=</span> <span class="pre">False</span></code> and
1506
+ <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_filling_orientations</span> <span class="pre">=</span> <span class="pre">False</span></code>.</p></li>
1507
+ </ol>
1508
+ <p>In these cases, re-constructing a triangulation from the isomorphism
1509
+ signature yields a triangulation with the same handedness.</p>
1510
+ <dl class="field-list simple">
1511
+ <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1512
+ <dd class="field-odd"><ul class="simple">
1513
+ <li><p><strong>decorated</strong> – Include peripheral information such as indexing of the cusps,
1514
+ (oriented or unoriented) peripheral curves and
1515
+ (oriented or unoriented) Dehn-fillings.</p></li>
1516
+ <li><p><strong>ignore_cusp_ordering</strong> – Do not encode the indexing of the cusps.
1517
+ Only relevant if <code class="xref py py-attr docutils literal notranslate"><span class="pre">decorated</span> <span class="pre">=</span> <span class="pre">True</span></code>.</p></li>
1518
+ <li><p><strong>ignore_curves</strong> – Do not encode the peripheral curves.
1519
+ Only relevant if <code class="xref py py-attr docutils literal notranslate"><span class="pre">decorated</span> <span class="pre">=</span> <span class="pre">True</span></code>.
1520
+ This is new in SnapPy version 3.2.
1521
+ If <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_curves</span> <span class="pre">=</span> <span class="pre">True</span></code>, the result of this method cannot
1522
+ be given to prior versions.</p></li>
1523
+ <li><p><strong>ignore_curve_orientations</strong> – Do not encode the orientations of the peripheral curves.
1524
+ Only relevant if <code class="xref py py-attr docutils literal notranslate"><span class="pre">decorated</span> <span class="pre">=</span> <span class="pre">True</span></code> and
1525
+ <code class="xref py py-attr docutils literal notranslate"><span class="pre">ignore_curves</span> <span class="pre">=</span> <span class="pre">False</span></code>.</p></li>
1526
+ <li><p><strong>ignore_filling_orientations</strong> – Do not encode the orientations of the Dehn-fillings.
1527
+ Only relevant if <code class="xref py py-attr docutils literal notranslate"><span class="pre">decorated</span> <span class="pre">=</span> <span class="pre">True</span></code>.</p></li>
1528
+ <li><p><strong>ignore_orientation</strong> – Do not encode the orientation of the triangulation in the
1529
+ undecorated part of the triangulation isosig.
1530
+ See above section about orientation.</p></li>
1531
+ </ul>
1532
+ </dd>
1533
+ </dl>
1425
1534
  </dd></dl>
1426
1535
 
1427
1536
  <dl class="py method">
1428
1537
  <dt class="sig sig-object py" id="snappy.Triangulation.with_hyperbolic_structure">
1429
- <span class="sig-name descname"><span class="pre">with_hyperbolic_structure</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.with_hyperbolic_structure" title="Permalink to this definition"></a></dt>
1538
+ <span class="sig-name descname"><span class="pre">with_hyperbolic_structure</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.Triangulation.with_hyperbolic_structure" title="Link to this definition"></a></dt>
1430
1539
  <dd><p>Add a (possibly degenerate) hyperbolic structure, turning the
1431
- Triangulation into a Manifold.</p>
1540
+ <a class="reference internal" href="#snappy.Triangulation" title="snappy.Triangulation"><code class="xref py py-class docutils literal notranslate"><span class="pre">Triangulation</span></code></a> into a <a class="reference internal" href="manifold.html#snappy.Manifold" title="snappy.Manifold"><code class="xref py py-class docutils literal notranslate"><span class="pre">Manifold</span></code></a>.</p>
1432
1541
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">M</span> <span class="o">=</span> <span class="n">Triangulation</span><span class="p">(</span><span class="s1">&#39;m004&#39;</span><span class="p">)</span>
1433
1542
  <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">with_hyperbolic_structure</span><span class="p">()</span>
1434
1543
  <span class="gp">&gt;&gt;&gt; </span><span class="n">N</span><span class="o">.</span><span class="n">volume</span><span class="p">()</span>
@@ -1452,7 +1561,7 @@ Triangulation into a Manifold.</p>
1452
1561
  <hr/>
1453
1562
 
1454
1563
  <div role="contentinfo">
1455
- <p>&#169; Copyright 2009-2023, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
1564
+ <p>&#169; Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
1456
1565
  </div>
1457
1566
 
1458
1567
  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a