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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (401) hide show
  1. snappy/CyOpenGL.cpython-38-darwin.so +0 -0
  2. snappy/SnapPy.cpython-38-darwin.so +0 -0
  3. snappy/SnapPyHP.cpython-38-darwin.so +0 -0
  4. snappy/__init__.py +373 -426
  5. snappy/app.py +240 -75
  6. snappy/app_menus.py +93 -78
  7. snappy/browser.py +87 -63
  8. snappy/cache.py +5 -8
  9. snappy/canonical.py +249 -0
  10. snappy/{verify/cusp_shapes.py → cusps/__init__.py} +11 -19
  11. snappy/cusps/cusp_area_matrix.py +101 -0
  12. snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +39 -54
  13. snappy/cusps/maximal_cusp_area_matrix.py +136 -0
  14. snappy/cusps/test.py +21 -0
  15. snappy/cusps/trig_cusp_area_matrix.py +63 -0
  16. snappy/database.py +40 -31
  17. snappy/db_utilities.py +13 -14
  18. snappy/decorated_isosig.py +377 -133
  19. snappy/dev/extended_ptolemy/complexVolumesClosed.py +42 -9
  20. snappy/dev/extended_ptolemy/extended.py +32 -25
  21. snappy/dev/extended_ptolemy/giac_rur.py +23 -8
  22. snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
  23. snappy/dev/vericlosed/computeApproxHyperbolicStructureOrb.py +2 -1
  24. snappy/dev/vericlosed/gimbalLoopFinder.py +5 -5
  25. snappy/dev/vericlosed/hyperbolicStructure.py +3 -3
  26. snappy/dev/vericlosed/oneVertexTruncatedComplex.py +2 -2
  27. snappy/dev/vericlosed/truncatedComplex.py +3 -2
  28. snappy/dev/vericlosed/verifyHyperbolicStructureEngine.py +4 -3
  29. snappy/doc/_images/geodesics.jpg +0 -0
  30. snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
  31. snappy/doc/_images/m125_paper_plane.jpg +0 -0
  32. snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
  33. snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
  34. snappy/doc/_sources/additional_classes.rst.txt +1 -0
  35. snappy/doc/_sources/credits.rst.txt +6 -1
  36. snappy/doc/_sources/development.rst.txt +69 -50
  37. snappy/doc/_sources/index.rst.txt +101 -66
  38. snappy/doc/_sources/installing.rst.txt +148 -165
  39. snappy/doc/_sources/news.rst.txt +136 -32
  40. snappy/doc/_sources/ptolemy.rst.txt +1 -1
  41. snappy/doc/_sources/ptolemy_examples1.rst.txt +9 -8
  42. snappy/doc/_sources/ptolemy_examples2.rst.txt +3 -3
  43. snappy/doc/_sources/ptolemy_examples3.rst.txt +14 -14
  44. snappy/doc/_sources/ptolemy_prelim.rst.txt +1 -1
  45. snappy/doc/_sources/snap.rst.txt +2 -2
  46. snappy/doc/_sources/snappy.rst.txt +1 -1
  47. snappy/doc/_sources/triangulation.rst.txt +3 -2
  48. snappy/doc/_sources/verify.rst.txt +89 -29
  49. snappy/doc/_sources/verify_internals.rst.txt +5 -16
  50. snappy/doc/_static/SnapPy-horizontal-128.png +0 -0
  51. snappy/doc/_static/SnapPy.ico +0 -0
  52. snappy/doc/_static/_sphinx_javascript_frameworks_compat.js +123 -0
  53. snappy/doc/_static/basic.css +47 -27
  54. snappy/doc/_static/css/badge_only.css +1 -0
  55. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  56. snappy/doc/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  57. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  58. snappy/doc/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  59. snappy/doc/_static/css/fonts/fontawesome-webfont.eot +0 -0
  60. snappy/doc/_static/css/fonts/fontawesome-webfont.svg +2671 -0
  61. snappy/doc/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  62. snappy/doc/_static/css/fonts/fontawesome-webfont.woff +0 -0
  63. snappy/doc/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  64. snappy/doc/_static/css/fonts/lato-bold-italic.woff +0 -0
  65. snappy/doc/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  66. snappy/doc/_static/css/fonts/lato-bold.woff +0 -0
  67. snappy/doc/_static/css/fonts/lato-bold.woff2 +0 -0
  68. snappy/doc/_static/css/fonts/lato-normal-italic.woff +0 -0
  69. snappy/doc/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  70. snappy/doc/_static/css/fonts/lato-normal.woff +0 -0
  71. snappy/doc/_static/css/fonts/lato-normal.woff2 +0 -0
  72. snappy/doc/_static/css/theme.css +4 -0
  73. snappy/doc/_static/doctools.js +107 -274
  74. snappy/doc/_static/documentation_options.js +6 -5
  75. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  76. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  77. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  78. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  79. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  80. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  81. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  82. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  83. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  84. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  85. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  86. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  87. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  88. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  89. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  90. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  91. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  92. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  93. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  94. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  95. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  96. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  97. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  98. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  99. snappy/doc/_static/jquery.js +2 -2
  100. snappy/doc/_static/js/badge_only.js +1 -0
  101. snappy/doc/_static/js/theme.js +1 -0
  102. snappy/doc/_static/js/versions.js +228 -0
  103. snappy/doc/_static/language_data.js +3 -101
  104. snappy/doc/_static/pygments.css +1 -0
  105. snappy/doc/_static/searchtools.js +489 -398
  106. snappy/doc/_static/snappy_furo.css +33 -0
  107. snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -0
  108. snappy/doc/_static/sphinx_highlight.js +154 -0
  109. snappy/doc/additional_classes.html +688 -263
  110. snappy/doc/bugs.html +107 -94
  111. snappy/doc/censuses.html +155 -127
  112. snappy/doc/credits.html +115 -104
  113. snappy/doc/development.html +184 -146
  114. snappy/doc/genindex.html +287 -204
  115. snappy/doc/index.html +189 -150
  116. snappy/doc/installing.html +259 -266
  117. snappy/doc/manifold.html +1626 -592
  118. snappy/doc/manifoldhp.html +119 -105
  119. snappy/doc/news.html +198 -104
  120. snappy/doc/objects.inv +0 -0
  121. snappy/doc/other.html +117 -105
  122. snappy/doc/platonic_census.html +161 -114
  123. snappy/doc/plink.html +113 -105
  124. snappy/doc/ptolemy.html +131 -108
  125. snappy/doc/ptolemy_classes.html +242 -223
  126. snappy/doc/ptolemy_examples1.html +144 -130
  127. snappy/doc/ptolemy_examples2.html +141 -129
  128. snappy/doc/ptolemy_examples3.html +148 -132
  129. snappy/doc/ptolemy_examples4.html +131 -111
  130. snappy/doc/ptolemy_prelim.html +162 -138
  131. snappy/doc/py-modindex.html +104 -69
  132. snappy/doc/screenshots.html +117 -108
  133. snappy/doc/search.html +115 -84
  134. snappy/doc/searchindex.js +1 -1
  135. snappy/doc/snap.html +109 -96
  136. snappy/doc/snappy.html +134 -97
  137. snappy/doc/spherogram.html +259 -187
  138. snappy/doc/todo.html +107 -94
  139. snappy/doc/triangulation.html +1380 -111
  140. snappy/doc/tutorial.html +107 -94
  141. snappy/doc/verify.html +194 -125
  142. snappy/doc/verify_internals.html +248 -686
  143. snappy/drilling/__init__.py +456 -0
  144. snappy/drilling/barycentric.py +103 -0
  145. snappy/drilling/constants.py +5 -0
  146. snappy/drilling/crush.py +270 -0
  147. snappy/drilling/cusps.py +125 -0
  148. snappy/drilling/debug.py +242 -0
  149. snappy/drilling/epsilons.py +6 -0
  150. snappy/drilling/exceptions.py +55 -0
  151. snappy/drilling/moves.py +620 -0
  152. snappy/drilling/peripheral_curves.py +210 -0
  153. snappy/drilling/perturb.py +188 -0
  154. snappy/drilling/shorten.py +36 -0
  155. snappy/drilling/subdivide.py +274 -0
  156. snappy/drilling/test.py +23 -0
  157. snappy/drilling/test_cases.py +126 -0
  158. snappy/drilling/tracing.py +351 -0
  159. snappy/exceptions.py +23 -3
  160. snappy/export_stl.py +20 -14
  161. snappy/exterior_to_link/__init__.py +2 -0
  162. snappy/exterior_to_link/barycentric_geometry.py +463 -0
  163. snappy/exterior_to_link/exceptions.py +6 -0
  164. snappy/exterior_to_link/geodesic_map.json +14408 -0
  165. snappy/exterior_to_link/hyp_utils.py +112 -0
  166. snappy/exterior_to_link/link_projection.py +323 -0
  167. snappy/exterior_to_link/main.py +197 -0
  168. snappy/exterior_to_link/mcomplex_with_expansion.py +261 -0
  169. snappy/exterior_to_link/mcomplex_with_link.py +687 -0
  170. snappy/exterior_to_link/mcomplex_with_memory.py +162 -0
  171. snappy/exterior_to_link/pl_utils.py +491 -0
  172. snappy/exterior_to_link/put_in_S3.py +156 -0
  173. snappy/exterior_to_link/rational_linear_algebra.py +123 -0
  174. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +135 -0
  175. snappy/exterior_to_link/simplify_to_base_tri.py +114 -0
  176. snappy/exterior_to_link/stored_moves.py +475 -0
  177. snappy/exterior_to_link/test.py +31 -0
  178. snappy/geometric_structure/__init__.py +212 -0
  179. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  180. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
  181. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
  182. snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
  183. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
  184. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
  185. snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
  186. snappy/geometric_structure/geodesic/__init__.py +0 -0
  187. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  188. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  189. snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
  190. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  191. snappy/geometric_structure/geodesic/constants.py +6 -0
  192. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  193. snappy/geometric_structure/geodesic/fixed_points.py +93 -0
  194. snappy/geometric_structure/geodesic/geodesic_start_point_info.py +435 -0
  195. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  196. snappy/geometric_structure/geodesic/line.py +30 -0
  197. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  198. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
  199. snappy/geometric_structure/test.py +22 -0
  200. snappy/gui.py +36 -36
  201. snappy/horoviewer.py +50 -48
  202. snappy/hyperboloid/__init__.py +212 -0
  203. snappy/hyperboloid/distances.py +245 -0
  204. snappy/hyperboloid/horoball.py +19 -0
  205. snappy/hyperboloid/line.py +35 -0
  206. snappy/hyperboloid/point.py +9 -0
  207. snappy/hyperboloid/triangle.py +29 -0
  208. snappy/{infodialog.py → infowindow.py} +32 -33
  209. snappy/isometry_signature.py +382 -0
  210. snappy/len_spec/__init__.py +596 -0
  211. snappy/len_spec/geodesic_info.py +110 -0
  212. snappy/len_spec/geodesic_key_info_dict.py +117 -0
  213. snappy/len_spec/geodesic_piece.py +143 -0
  214. snappy/len_spec/geometric_structure.py +182 -0
  215. snappy/len_spec/geometry.py +80 -0
  216. snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
  217. snappy/len_spec/spine.py +206 -0
  218. snappy/len_spec/test.py +24 -0
  219. snappy/len_spec/test_cases.py +69 -0
  220. snappy/len_spec/tile.py +275 -0
  221. snappy/len_spec/word.py +86 -0
  222. snappy/manifolds/__init__.py +1 -1
  223. snappy/math_basics.py +176 -0
  224. snappy/matrix.py +525 -0
  225. snappy/number.py +97 -21
  226. snappy/numeric_output_checker.py +37 -27
  227. snappy/pari.py +30 -69
  228. snappy/phone_home.py +25 -20
  229. snappy/polyviewer.py +39 -37
  230. snappy/ptolemy/__init__.py +4 -6
  231. snappy/ptolemy/component.py +14 -12
  232. snappy/ptolemy/coordinates.py +312 -295
  233. snappy/ptolemy/fieldExtensions.py +14 -12
  234. snappy/ptolemy/findLoops.py +43 -31
  235. snappy/ptolemy/geometricRep.py +24 -26
  236. snappy/ptolemy/homology.py +12 -7
  237. snappy/ptolemy/manifoldMethods.py +69 -70
  238. snappy/ptolemy/matrix.py +65 -26
  239. snappy/ptolemy/numericalSolutionsToGroebnerBasis.py +18 -14
  240. snappy/ptolemy/polynomial.py +125 -119
  241. snappy/ptolemy/processComponents.py +36 -30
  242. snappy/ptolemy/processFileBase.py +79 -18
  243. snappy/ptolemy/processFileDispatch.py +13 -14
  244. snappy/ptolemy/processMagmaFile.py +44 -39
  245. snappy/ptolemy/processRurFile.py +18 -11
  246. snappy/ptolemy/ptolemyGeneralizedObstructionClass.py +20 -17
  247. snappy/ptolemy/ptolemyObstructionClass.py +13 -17
  248. snappy/ptolemy/ptolemyVariety.py +190 -121
  249. snappy/ptolemy/ptolemyVarietyPrimeIdealGroebnerBasis.py +20 -19
  250. snappy/ptolemy/reginaWrapper.py +25 -29
  251. snappy/ptolemy/rur.py +6 -14
  252. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +27 -22
  253. snappy/ptolemy/test.py +247 -188
  254. snappy/ptolemy/utilities.py +41 -43
  255. snappy/raytracing/__init__.py +64 -0
  256. snappy/raytracing/additional_horospheres.py +64 -0
  257. snappy/raytracing/additional_len_spec_choices.py +63 -0
  258. snappy/raytracing/cohomology_fractal.py +10 -6
  259. snappy/raytracing/eyeball.py +123 -0
  260. snappy/raytracing/finite_raytracing_data.py +48 -38
  261. snappy/raytracing/finite_viewer.py +218 -210
  262. snappy/raytracing/geodesic_tube_info.py +174 -0
  263. snappy/raytracing/geodesics.py +246 -0
  264. snappy/raytracing/geodesics_window.py +258 -0
  265. snappy/raytracing/gui_utilities.py +152 -40
  266. snappy/raytracing/hyperboloid_navigation.py +102 -52
  267. snappy/raytracing/hyperboloid_utilities.py +114 -261
  268. snappy/raytracing/ideal_raytracing_data.py +256 -179
  269. snappy/raytracing/inside_viewer.py +522 -253
  270. snappy/raytracing/pack.py +22 -0
  271. snappy/raytracing/raytracing_data.py +46 -34
  272. snappy/raytracing/raytracing_view.py +190 -109
  273. snappy/raytracing/shaders/Eye.png +0 -0
  274. snappy/raytracing/shaders/NonGeometric.png +0 -0
  275. snappy/raytracing/shaders/__init__.py +60 -4
  276. snappy/raytracing/shaders/fragment.glsl +575 -148
  277. snappy/raytracing/test.py +29 -0
  278. snappy/raytracing/tooltip.py +146 -0
  279. snappy/raytracing/upper_halfspace_utilities.py +98 -0
  280. snappy/raytracing/view_scale_controller.py +98 -0
  281. snappy/raytracing/zoom_slider/__init__.py +32 -29
  282. snappy/raytracing/zoom_slider/test.py +2 -0
  283. snappy/sage_helper.py +69 -123
  284. snappy/{preferences.py → settings.py} +167 -145
  285. snappy/shell.py +4 -0
  286. snappy/snap/__init__.py +12 -8
  287. snappy/snap/character_varieties.py +24 -18
  288. snappy/snap/find_field.py +35 -34
  289. snappy/snap/fundamental_polyhedron.py +99 -85
  290. snappy/snap/generators.py +6 -8
  291. snappy/snap/interval_reps.py +18 -6
  292. snappy/snap/kernel_structures.py +8 -3
  293. snappy/snap/mcomplex_base.py +1 -2
  294. snappy/snap/nsagetools.py +107 -53
  295. snappy/snap/peripheral/__init__.py +1 -1
  296. snappy/snap/peripheral/dual_cellulation.py +15 -7
  297. snappy/snap/peripheral/link.py +20 -16
  298. snappy/snap/peripheral/peripheral.py +22 -14
  299. snappy/snap/peripheral/surface.py +47 -50
  300. snappy/snap/peripheral/test.py +8 -8
  301. snappy/snap/polished_reps.py +65 -40
  302. snappy/snap/shapes.py +41 -22
  303. snappy/snap/slice_obs_HKL.py +64 -25
  304. snappy/snap/t3mlite/arrow.py +88 -51
  305. snappy/snap/t3mlite/corner.py +5 -6
  306. snappy/snap/t3mlite/edge.py +32 -21
  307. snappy/snap/t3mlite/face.py +7 -9
  308. snappy/snap/t3mlite/files.py +31 -23
  309. snappy/snap/t3mlite/homology.py +14 -10
  310. snappy/snap/t3mlite/linalg.py +158 -56
  311. snappy/snap/t3mlite/mcomplex.py +739 -291
  312. snappy/snap/t3mlite/perm4.py +236 -84
  313. snappy/snap/t3mlite/setup.py +9 -10
  314. snappy/snap/t3mlite/simplex.py +65 -48
  315. snappy/snap/t3mlite/spun.py +42 -30
  316. snappy/snap/t3mlite/surface.py +45 -45
  317. snappy/snap/t3mlite/test.py +3 -0
  318. snappy/snap/t3mlite/test_vs_regina.py +17 -13
  319. snappy/snap/t3mlite/tetrahedron.py +25 -24
  320. snappy/snap/t3mlite/vertex.py +8 -13
  321. snappy/snap/test.py +45 -52
  322. snappy/snap/utilities.py +66 -65
  323. snappy/test.py +155 -158
  324. snappy/test_cases.py +263 -0
  325. snappy/testing.py +131 -0
  326. snappy/tiling/__init__.py +2 -0
  327. snappy/tiling/canonical_key_dict.py +59 -0
  328. snappy/tiling/dict_based_set.py +79 -0
  329. snappy/tiling/floor.py +49 -0
  330. snappy/tiling/hyperboloid_dict.py +54 -0
  331. snappy/tiling/iter_utils.py +78 -0
  332. snappy/tiling/lifted_tetrahedron.py +22 -0
  333. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  334. snappy/tiling/real_hash_dict.py +164 -0
  335. snappy/tiling/test.py +23 -0
  336. snappy/tiling/tile.py +215 -0
  337. snappy/tiling/triangle.py +33 -0
  338. snappy/tkterminal.py +313 -203
  339. snappy/twister/main.py +1 -8
  340. snappy/twister/twister_core.cpython-38-darwin.so +0 -0
  341. snappy/upper_halfspace/__init__.py +146 -0
  342. snappy/upper_halfspace/ideal_point.py +26 -0
  343. snappy/verify/__init__.py +4 -8
  344. snappy/verify/{verifyCanonical.py → canonical.py} +114 -97
  345. snappy/verify/complex_volume/__init__.py +3 -2
  346. snappy/verify/complex_volume/adjust_torsion.py +13 -11
  347. snappy/verify/complex_volume/closed.py +29 -24
  348. snappy/verify/complex_volume/compute_ptolemys.py +8 -6
  349. snappy/verify/complex_volume/cusped.py +10 -9
  350. snappy/verify/complex_volume/extended_bloch.py +14 -12
  351. snappy/verify/{cuspTranslations.py → cusp_translations.py} +15 -14
  352. snappy/verify/edge_equations.py +80 -0
  353. snappy/verify/exceptions.py +23 -56
  354. snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +19 -15
  355. snappy/verify/interval_newton_shapes_engine.py +51 -211
  356. snappy/verify/interval_tree.py +27 -25
  357. snappy/verify/krawczyk_shapes_engine.py +47 -50
  358. snappy/verify/maximal_cusp_area_matrix/__init__.py +17 -86
  359. snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +58 -48
  360. snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +53 -57
  361. snappy/verify/{realAlgebra.py → real_algebra.py} +26 -20
  362. snappy/verify/shapes.py +10 -7
  363. snappy/verify/short_slopes.py +41 -42
  364. snappy/verify/{squareExtensions.py → square_extensions.py} +96 -92
  365. snappy/verify/test.py +59 -57
  366. snappy/verify/upper_halfspace/extended_matrix.py +5 -5
  367. snappy/verify/upper_halfspace/finite_point.py +44 -31
  368. snappy/verify/upper_halfspace/ideal_point.py +69 -57
  369. snappy/verify/volume.py +15 -12
  370. snappy/version.py +2 -3
  371. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/METADATA +14 -12
  372. snappy-3.2.dist-info/RECORD +503 -0
  373. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
  374. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -1
  375. {snappy-3.0.3.dist-info → snappy-3.2.dist-info}/top_level.txt +10 -1
  376. snappy/doc/_sources/verify_canon.rst.txt +0 -90
  377. snappy/doc/_static/classic.css +0 -266
  378. snappy/doc/_static/jquery-3.5.1.js +0 -10872
  379. snappy/doc/_static/sidebar.js +0 -159
  380. snappy/doc/_static/underscore-1.13.1.js +0 -2042
  381. snappy/doc/_static/underscore.js +0 -6
  382. snappy/doc/verify_canon.html +0 -283
  383. snappy/ppm_to_png.py +0 -243
  384. snappy/togl/__init__.py +0 -3
  385. snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
  386. snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
  387. snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  388. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  389. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
  390. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  391. snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
  392. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
  393. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
  394. snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  395. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  396. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
  397. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
  398. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  399. snappy/verify/cuspCrossSection.py +0 -1413
  400. snappy/verify/mathHelpers.py +0 -64
  401. snappy-3.0.3.dist-info/RECORD +0 -360
@@ -1,107 +1,295 @@
1
1
 
2
- <!DOCTYPE html>
3
2
 
4
- <html>
5
- <head>
6
- <meta charset="utf-8" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
8
-
9
- <title>Additional Classes &#8212; SnapPy 3.0.3 documentation</title>
10
- <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
11
- <link rel="stylesheet" type="text/css" href="_static/classic.css" />
12
-
13
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
14
- <script src="_static/jquery.js"></script>
15
- <script src="_static/underscore.js"></script>
16
- <script src="_static/doctools.js"></script>
17
-
3
+ <!DOCTYPE html>
4
+ <html class="writer-html5" lang="en" data-content_root="./">
5
+ <head>
6
+ <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
7
+
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <title>Additional Classes &mdash; SnapPy 3.2 documentation</title>
10
+ <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
11
+ <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
12
+ <link rel="stylesheet" type="text/css" href="_static/snappy_sphinx_rtd_theme.css?v=1b8ec2a8" />
13
+
14
+
15
+ <link rel="shortcut icon" href="_static/SnapPy.ico"/>
16
+ <script src="_static/jquery.js?v=5d32c60e"></script>
17
+ <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
18
+ <script src="_static/documentation_options.js?v=828ea960"></script>
19
+ <script src="_static/doctools.js?v=9a2dae69"></script>
20
+ <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
21
+ <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
22
+ <script src="_static/js/theme.js"></script>
18
23
  <link rel="index" title="Index" href="genindex.html" />
19
24
  <link rel="search" title="Search" href="search.html" />
20
25
  <link rel="next" title="Census manifolds" href="censuses.html" />
21
26
  <link rel="prev" title="Triangulation" href="triangulation.html" />
22
- </head><body>
23
- <div class="related" role="navigation" aria-label="related navigation">
24
- <h3>Navigation</h3>
25
- <ul>
26
- <li class="right" style="margin-right: 10px">
27
- <a href="genindex.html" title="General Index"
28
- accesskey="I">index</a></li>
29
- <li class="right" >
30
- <a href="py-modindex.html" title="Python Module Index"
31
- >modules</a> |</li>
32
- <li class="right" >
33
- <a href="censuses.html" title="Census manifolds"
34
- accesskey="N">next</a> |</li>
35
- <li class="right" >
36
- <a href="triangulation.html" title="Triangulation"
37
- accesskey="P">previous</a> |</li>
38
- <li class="nav-item nav-item-0"><a href="index.html">SnapPy 3.0.3 documentation</a> &#187;</li>
39
- <li class="nav-item nav-item-1"><a href="snappy.html" accesskey="U">The snappy module and its classes</a> &#187;</li>
40
- <li class="nav-item nav-item-this"><a href="">Additional Classes</a></li>
41
- </ul>
42
- </div>
43
-
44
- <div class="document">
45
- <div class="documentwrapper">
46
- <div class="bodywrapper">
47
- <div class="body" role="main">
48
-
27
+ </head>
28
+
29
+ <body class="wy-body-for-nav">
30
+ <div class="wy-grid-for-nav">
31
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
32
+ <div class="wy-side-scroll">
33
+ <div class="wy-side-nav-search" >
34
+
35
+
36
+
37
+ <a href="index.html" class="icon icon-home">
38
+ SnapPy
39
+ <img src="_static/SnapPy-horizontal-128.png" class="logo" alt="Logo"/>
40
+ </a>
41
+ <div role="search">
42
+ <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
43
+ <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
44
+ <input type="hidden" name="check_keywords" value="yes" />
45
+ <input type="hidden" name="area" value="default" />
46
+ </form>
47
+ </div>
48
+ </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
49
+ <ul class="current">
50
+ <li class="toctree-l1"><a class="reference internal" href="installing.html">Installing SnapPy</a></li>
51
+ <li class="toctree-l1"><a class="reference internal" href="screenshots.html">Screenshots: SnapPy in action</a></li>
52
+ <li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
53
+ <li class="toctree-l1 current"><a class="reference internal" href="snappy.html">The snappy module and its classes</a><ul class="current">
54
+ <li class="toctree-l2"><a class="reference internal" href="manifold.html">Manifold: the main class</a></li>
55
+ <li class="toctree-l2"><a class="reference internal" href="manifoldhp.html">ManifoldHP: High-precision variant</a></li>
56
+ <li class="toctree-l2"><a class="reference internal" href="triangulation.html">Triangulation</a></li>
57
+ <li class="toctree-l2 current"><a class="current reference internal" href="#">Additional Classes</a><ul>
58
+ <li class="toctree-l3"><a class="reference internal" href="#abeliangroup">AbelianGroup</a><ul>
59
+ <li class="toctree-l4"><a class="reference internal" href="#snappy.AbelianGroup"><code class="docutils literal notranslate"><span class="pre">AbelianGroup</span></code></a><ul>
60
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.AbelianGroup.betti_number"><code class="docutils literal notranslate"><span class="pre">AbelianGroup.betti_number()</span></code></a></li>
61
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.AbelianGroup.elementary_divisors"><code class="docutils literal notranslate"><span class="pre">AbelianGroup.elementary_divisors()</span></code></a></li>
62
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.AbelianGroup.order"><code class="docutils literal notranslate"><span class="pre">AbelianGroup.order()</span></code></a></li>
63
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.AbelianGroup.rank"><code class="docutils literal notranslate"><span class="pre">AbelianGroup.rank()</span></code></a></li>
64
+ </ul>
65
+ </li>
66
+ </ul>
67
+ </li>
68
+ <li class="toctree-l3"><a class="reference internal" href="#fundamentalgroup">FundamentalGroup</a><ul>
69
+ <li class="toctree-l4"><a class="reference internal" href="#snappy.HolonomyGroup"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup</span></code></a><ul>
70
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.O31"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.O31()</span></code></a></li>
71
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.SL2C"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.SL2C()</span></code></a></li>
72
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.category"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.category()</span></code></a></li>
73
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.character_variety_vars_and_polys"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.character_variety_vars_and_polys()</span></code></a></li>
74
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.complex_length"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.complex_length()</span></code></a></li>
75
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.dump"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.dump()</span></code></a></li>
76
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.dumps"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.dumps()</span></code></a></li>
77
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.gap_string"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.gap_string()</span></code></a></li>
78
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.generators"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.generators()</span></code></a></li>
79
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.generators_in_originals"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.generators_in_originals()</span></code></a></li>
80
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.get_custom_name"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.get_custom_name()</span></code></a></li>
81
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.longitude"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.longitude()</span></code></a></li>
82
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.magma_string"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.magma_string()</span></code></a></li>
83
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.meridian"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.meridian()</span></code></a></li>
84
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.num_generators"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.num_generators()</span></code></a></li>
85
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.num_original_generators"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.num_original_generators()</span></code></a></li>
86
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.num_relators"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.num_relators()</span></code></a></li>
87
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.original_generators"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.original_generators()</span></code></a></li>
88
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.parent"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.parent()</span></code></a></li>
89
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.peripheral_curves"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.peripheral_curves()</span></code></a></li>
90
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.relators"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.relators()</span></code></a></li>
91
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.rename"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.rename()</span></code></a></li>
92
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.reset_name"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.reset_name()</span></code></a></li>
93
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.sage"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.sage()</span></code></a></li>
94
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.HolonomyGroup.save"><code class="docutils literal notranslate"><span class="pre">HolonomyGroup.save()</span></code></a></li>
95
+ </ul>
96
+ </li>
97
+ </ul>
98
+ </li>
99
+ <li class="toctree-l3"><a class="reference internal" href="#symmetrygroup">SymmetryGroup</a><ul>
100
+ <li class="toctree-l4"><a class="reference internal" href="#snappy.SymmetryGroup"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup</span></code></a><ul>
101
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.abelian_description"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.abelian_description()</span></code></a></li>
102
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.abelianization"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.abelianization()</span></code></a></li>
103
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.center"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.center()</span></code></a></li>
104
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.commutator_subgroup"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.commutator_subgroup()</span></code></a></li>
105
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.direct_product_description"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.direct_product_description()</span></code></a></li>
106
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_S5"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_S5()</span></code></a></li>
107
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_abelian"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_abelian()</span></code></a></li>
108
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_amphicheiral"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_amphicheiral()</span></code></a></li>
109
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_dihedral"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_dihedral()</span></code></a></li>
110
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_direct_product"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_direct_product()</span></code></a></li>
111
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_full_group"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_full_group()</span></code></a></li>
112
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_invertible_knot"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_invertible_knot()</span></code></a></li>
113
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.is_polyhedral"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.is_polyhedral()</span></code></a></li>
114
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.isometries"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.isometries()</span></code></a></li>
115
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.multiply_elements"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.multiply_elements()</span></code></a></li>
116
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.order"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.order()</span></code></a></li>
117
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.SymmetryGroup.polyhedral_description"><code class="docutils literal notranslate"><span class="pre">SymmetryGroup.polyhedral_description()</span></code></a></li>
118
+ </ul>
119
+ </li>
120
+ </ul>
121
+ </li>
122
+ <li class="toctree-l3"><a class="reference internal" href="#dirichletdomain">DirichletDomain</a><ul>
123
+ <li class="toctree-l4"><a class="reference internal" href="#snappy.DirichletDomain"><code class="docutils literal notranslate"><span class="pre">DirichletDomain</span></code></a><ul>
124
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.edge_list"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.edge_list()</span></code></a></li>
125
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.export_stl"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.export_stl()</span></code></a></li>
126
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.face_list"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.face_list()</span></code></a></li>
127
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.in_radius"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.in_radius()</span></code></a></li>
128
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.length_spectrum_dicts"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.length_spectrum_dicts()</span></code></a></li>
129
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.manifold"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.manifold()</span></code></a></li>
130
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.num_edges"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.num_edges()</span></code></a></li>
131
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.num_faces"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.num_faces()</span></code></a></li>
132
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.num_finite_vertices"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.num_finite_vertices()</span></code></a></li>
133
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.num_ideal_vertices"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.num_ideal_vertices()</span></code></a></li>
134
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.num_vertices"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.num_vertices()</span></code></a></li>
135
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.out_radius"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.out_radius()</span></code></a></li>
136
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.pairing_matrices"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.pairing_matrices()</span></code></a></li>
137
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.pairing_words"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.pairing_words()</span></code></a></li>
138
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.save"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.save()</span></code></a></li>
139
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.spine_radius"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.spine_radius()</span></code></a></li>
140
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.triangulation"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.triangulation()</span></code></a></li>
141
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.vertex_list"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.vertex_list()</span></code></a></li>
142
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.DirichletDomain.volume"><code class="docutils literal notranslate"><span class="pre">DirichletDomain.volume()</span></code></a></li>
143
+ </ul>
144
+ </li>
145
+ </ul>
146
+ </li>
147
+ <li class="toctree-l3"><a class="reference internal" href="#cuspneighborhood">CuspNeighborhood</a><ul>
148
+ <li class="toctree-l4"><a class="reference internal" href="#snappy.CuspNeighborhood"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood</span></code></a><ul>
149
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.Ford_domain"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.Ford_domain()</span></code></a></li>
150
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.all_translations"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.all_translations()</span></code></a></li>
151
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.check_index"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.check_index()</span></code></a></li>
152
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.get_displacement"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.get_displacement()</span></code></a></li>
153
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.get_tie"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.get_tie()</span></code></a></li>
154
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.horoballs"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.horoballs()</span></code></a></li>
155
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.manifold"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.manifold()</span></code></a></li>
156
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.max_reach"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.max_reach()</span></code></a></li>
157
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.num_cusps"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.num_cusps()</span></code></a></li>
158
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.original_index"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.original_index()</span></code></a></li>
159
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.reach"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.reach()</span></code></a></li>
160
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.set_displacement"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.set_displacement()</span></code></a></li>
161
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.set_tie"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.set_tie()</span></code></a></li>
162
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.stopper"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.stopper()</span></code></a></li>
163
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.stopping_displacement"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.stopping_displacement()</span></code></a></li>
164
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.topology"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.topology()</span></code></a></li>
165
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.translations"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.translations()</span></code></a></li>
166
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.triangulation"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.triangulation()</span></code></a></li>
167
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.view"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.view()</span></code></a></li>
168
+ <li class="toctree-l5"><a class="reference internal" href="#snappy.CuspNeighborhood.volume"><code class="docutils literal notranslate"><span class="pre">CuspNeighborhood.volume()</span></code></a></li>
169
+ </ul>
170
+ </li>
171
+ </ul>
172
+ </li>
173
+ </ul>
174
+ </li>
175
+ <li class="toctree-l2"><a class="reference internal" href="censuses.html">Census manifolds</a></li>
176
+ </ul>
177
+ </li>
178
+ <li class="toctree-l1"><a class="reference internal" href="plink.html">Using SnapPy’s link editor</a></li>
179
+ <li class="toctree-l1"><a class="reference internal" href="spherogram.html">Links: planar diagrams and invariants</a></li>
180
+ <li class="toctree-l1"><a class="reference internal" href="snap.html">Number theory of hyperbolic 3-manifolds</a></li>
181
+ <li class="toctree-l1"><a class="reference internal" href="verify.html">Verified computations</a></li>
182
+ <li class="toctree-l1"><a class="reference internal" href="other.html">Other components</a></li>
183
+ <li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
184
+ <li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
185
+ <li class="toctree-l1"><a class="reference internal" href="bugs.html">Reporting bugs and other problems</a></li>
186
+ <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do List</a></li>
187
+ <li class="toctree-l1"><a class="reference internal" href="development.html">Development Basics</a></li>
188
+ </ul>
189
+
190
+ </div>
191
+ </div>
192
+ </nav>
193
+
194
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
195
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
196
+ <a href="index.html">SnapPy</a>
197
+ </nav>
198
+
199
+ <div class="wy-nav-content">
200
+ <div class="rst-content">
201
+ <div role="navigation" aria-label="Page navigation">
202
+ <ul class="wy-breadcrumbs">
203
+ <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
204
+ <li class="breadcrumb-item"><a href="snappy.html">The snappy module and its classes</a></li>
205
+ <li class="breadcrumb-item active">Additional Classes</li>
206
+ <li class="wy-breadcrumbs-aside">
207
+ </li>
208
+ </ul>
209
+ <hr/>
210
+ </div>
211
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
212
+ <div itemprop="articleBody">
213
+
49
214
  <section id="module-snappy">
50
- <span id="additional-classes"></span><h1>Additional Classes<a class="headerlink" href="#module-snappy" title="Permalink to this headline">¶</a></h1>
215
+ <span id="additional-classes"></span><h1>Additional Classes<a class="headerlink" href="#module-snappy" title="Link to this heading"></a></h1>
216
+ <p>SnapPy is a Cython wrapping of Jeff Weeks’ SnapPea kernel.</p>
217
+ <dl class="simple">
218
+ <dt>The module defines the following classes:</dt><dd><p>Triangulation, Manifold, ManifoldHP, AbelianGroup, FundamentalGroup,
219
+ HolonomyGroup, HolonomyGroupHP, DirichletDomain, DirichletDomainHP,
220
+ CuspNeighborhood, CuspNeighborhoodHP, SymmetryGroup,
221
+ AlternatingKnotExteriors, NonalternatingKnotExteriors, SnapPeaFatalError,
222
+ InsufficientPrecisionError, pari, twister, OrientableCuspedCensus,
223
+ NonorientableCuspedCensus, OrientableClosedCensus,
224
+ NonorientableClosedCensus, LinkExteriors, CensusKnots, HTLinkExteriors,
225
+ TetrahedralOrientableCuspedCensus, TetrahedralNonorientableCuspedCensus,
226
+ OctahedralOrientableCuspedCensus, OctahedralNonorientableCuspedCensus,
227
+ CubicalOrientableCuspedCensus, CubicalNonorientableCuspedCensus,
228
+ DodecahedralOrientableCuspedCensus, DodecahedralNonorientableCuspedCensus,
229
+ IcosahedralNonorientableClosedCensus, IcosahedralOrientableClosedCensus,
230
+ CubicalNonorientableClosedCensus, CubicalOrientableClosedCensus,
231
+ DodecahedralNonorientableClosedCensus, DodecahedralOrientableClosedCensus,
232
+ Crossing, Strand, Link, Tangle, RationalTangle, ZeroTangle,
233
+ InfinityTangle, IdentityBraid, random_link, DTcodec.</p>
234
+ </dd>
235
+ </dl>
51
236
  <section id="abeliangroup">
52
- <h2>AbelianGroup<a class="headerlink" href="#abeliangroup" title="Permalink to this headline">¶</a></h2>
237
+ <h2>AbelianGroup<a class="headerlink" href="#abeliangroup" title="Link to this heading"></a></h2>
53
238
  <dl class="py class">
54
239
  <dt class="sig sig-object py" id="snappy.AbelianGroup">
55
- <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">AbelianGroup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">presentation</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">elementary_divisors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup" title="Permalink to this definition">¶</a></dt>
240
+ <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">AbelianGroup</span></span><a class="headerlink" href="#snappy.AbelianGroup" title="Link to this definition"></a></dt>
56
241
  <dd><p>An AbelianGroup object represents a finitely generated abelian group,
57
242
  usually the first homology group of a snappy Manifold.</p>
58
- <p>Instantiate as AbelianGroup(P) where P is a presentation matrix
59
- given as a list of lists of integers. Alternatively, use
60
- AbelianGroup(elementary_divisors=[n_1, n_2, … ]) where the n_i
61
- are the elementary divisors of the group.</p>
62
- <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">AbelianGroup</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">2</span><span class="p">],[</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">6</span><span class="p">]])</span>
63
- <span class="go">Z/2 + Z</span>
64
- <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span> <span class="o">=</span> <span class="n">AbelianGroup</span><span class="p">(</span><span class="n">elementary_divisors</span><span class="o">=</span><span class="p">[</span><span class="mi">5</span><span class="p">,</span><span class="mi">15</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">])</span>
243
+ <p>Instantiate an abelian group by its elementary divisors:</p>
244
+ <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">AbelianGroup</span><span class="p">(</span><span class="n">elementary_divisors</span><span class="o">=</span><span class="p">[</span><span class="mi">5</span><span class="p">,</span><span class="mi">15</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">])</span>
65
245
  <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span>
66
246
  <span class="go">Z/5 + Z/15 + Z + Z</span>
67
- <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
68
- <span class="go">15</span>
69
- <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span><span class="o">.</span><span class="n">betti_number</span><span class="p">()</span>
247
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
248
+ <span class="go">5</span>
249
+ </pre></div>
250
+ </div>
251
+ <p>Alternatively, instantiate an abelian group as AbelianGroup(P) where P is a
252
+ presentation matrix given as a list of lists of integers.
253
+ Snappy stores an abelian group as a list of elementary divisors:</p>
254
+ <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">B</span> <span class="o">=</span> <span class="n">AbelianGroup</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">2</span><span class="p">],[</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">6</span><span class="p">]])</span>
255
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">B</span>
256
+ <span class="go">Z/2 + Z</span>
257
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">B</span><span class="o">.</span><span class="n">elementary_divisors</span><span class="p">()</span>
258
+ <span class="go">[2, 0]</span>
259
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">B</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
260
+ <span class="go">0</span>
261
+ <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">B</span><span class="p">)</span>
70
262
  <span class="go">2</span>
71
- <span class="gp">&gt;&gt;&gt; </span><span class="n">A</span><span class="o">.</span><span class="n">order</span><span class="p">()</span>
263
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">B</span><span class="o">.</span><span class="n">rank</span><span class="p">()</span>
264
+ <span class="go">2</span>
265
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">B</span><span class="o">.</span><span class="n">betti_number</span><span class="p">()</span>
266
+ <span class="go">1</span>
267
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">B</span><span class="o">.</span><span class="n">order</span><span class="p">()</span>
72
268
  <span class="go">&#39;infinite&#39;</span>
73
- <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
74
- <span class="go">4</span>
75
269
  </pre></div>
76
270
  </div>
77
271
  <dl class="py method">
78
272
  <dt class="sig sig-object py" id="snappy.AbelianGroup.betti_number">
79
- <span class="sig-name descname"><span class="pre">betti_number</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.betti_number" title="Permalink to this definition">¶</a></dt>
273
+ <span class="sig-name descname"><span class="pre">betti_number</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.betti_number" title="Link to this definition"></a></dt>
80
274
  <dd><p>The rank of the maximal free abelian subgroup.</p>
81
275
  </dd></dl>
82
276
 
83
- <dl class="py attribute">
84
- <dt class="sig sig-object py" id="snappy.AbelianGroup.coefficients">
85
- <span class="sig-name descname"><span class="pre">coefficients</span></span><a class="headerlink" href="#snappy.AbelianGroup.coefficients" title="Permalink to this definition">¶</a></dt>
86
- <dd><p>coefficients: object</p>
87
- </dd></dl>
88
-
89
277
  <dl class="py method">
90
278
  <dt class="sig sig-object py" id="snappy.AbelianGroup.elementary_divisors">
91
- <span class="sig-name descname"><span class="pre">elementary_divisors</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.elementary_divisors" title="Permalink to this definition">¶</a></dt>
92
- <dd><p>The elementary_divisors of this finitely generated abelian group.</p>
279
+ <span class="sig-name descname"><span class="pre">elementary_divisors</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.elementary_divisors" title="Link to this definition"></a></dt>
280
+ <dd><p>The elementary divisors of this finitely generated abelian group.</p>
93
281
  </dd></dl>
94
282
 
95
283
  <dl class="py method">
96
284
  <dt class="sig sig-object py" id="snappy.AbelianGroup.order">
97
- <span class="sig-name descname"><span class="pre">order</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.order" title="Permalink to this definition">¶</a></dt>
285
+ <span class="sig-name descname"><span class="pre">order</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.order" title="Link to this definition"></a></dt>
98
286
  <dd><p>The order of the group. Returns the string ‘infinite’ if the
99
287
  group is infinite.</p>
100
288
  </dd></dl>
101
289
 
102
290
  <dl class="py method">
103
291
  <dt class="sig sig-object py" id="snappy.AbelianGroup.rank">
104
- <span class="sig-name descname"><span class="pre">rank</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.rank" title="Permalink to this definition">¶</a></dt>
292
+ <span class="sig-name descname"><span class="pre">rank</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.AbelianGroup.rank" title="Link to this definition"></a></dt>
105
293
  <dd><p>The rank of the group.</p>
106
294
  </dd></dl>
107
295
 
@@ -109,47 +297,91 @@ group is infinite.</p>
109
297
 
110
298
  </section>
111
299
  <section id="fundamentalgroup">
112
- <h2>FundamentalGroup<a class="headerlink" href="#fundamentalgroup" title="Permalink to this headline">¶</a></h2>
300
+ <h2>FundamentalGroup<a class="headerlink" href="#fundamentalgroup" title="Link to this heading"></a></h2>
113
301
  <dl class="py class">
114
302
  <dt class="sig sig-object py" id="snappy.HolonomyGroup">
115
- <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">HolonomyGroup</span></span><a class="headerlink" href="#snappy.HolonomyGroup" title="Permalink to this definition">¶</a></dt>
116
- <dd><p>A HolonomyGroup is a FundamentalGroup with added structure
117
- consisting of a holonomy representation into O(3,1), and an
118
- arbitrarily chosen lift of the holonomy representation to SL(2,C).
119
- The holonomy is determined by the shapes of the tetrahedra, so a
120
- HolonomyGroup is associated to a Manifold, while a Triangulation
121
- only has a FundamentalGroup. Methods are provided to evaluate the
122
- representations on a group element.</p>
123
- <p>A FundamentalGroup represents a presentation of the fundamental
303
+ <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">HolonomyGroup</span></span><a class="headerlink" href="#snappy.HolonomyGroup" title="Link to this definition"></a></dt>
304
+ <dd><p>A FundamentalGroup represents a presentation of the fundamental
124
305
  group of a SnapPea Triangulation. Group elements are described as
125
306
  words in the generators a,b,…, where the inverse of a is denoted
126
307
  A. Words are represented by python strings (and the concatenation
127
308
  operator is named ‘+’, according to Python conventions).</p>
128
- <p>Instantiate via M.fundamental_group(), where M is a Manifold.</p>
309
+ <p>Instantiate via <code class="docutils literal notranslate"><span class="pre">T.fundamental_group()</span></code>, where T is a triangulation:</p>
310
+ <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;m125&#39;</span><span class="p">)</span>
311
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">T</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
312
+ <span class="go">Generators:</span>
313
+ <span class="go"> a,b</span>
314
+ <span class="go">Relators:</span>
315
+ <span class="go"> aabaBBAABAbb</span>
316
+ <span class="gp">&gt;&gt;&gt; </span><span class="nb">type</span><span class="p">(</span><span class="n">T</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">())</span>
317
+ <span class="go">&lt;class &#39;SnapPy.FundamentalGroup&#39;&gt;</span>
318
+ </pre></div>
319
+ </div>
320
+ <p>A HolonomyGroup is a FundamentalGroup with added structure
321
+ consisting of a holonomy representation into O(3,1), and an
322
+ arbitrarily chosen lift of the holonomy representation to SL(2,C).
323
+ The holonomy is determined by the shapes of the tetrahedra, so a
324
+ HolonomyGroup is associated to a Manifold, while a Triangulation
325
+ only has a FundamentalGroup:</p>
326
+ <p>Instantiate via <code class="docutils literal notranslate"><span class="pre">M.fundamental_group()</span></code>, where M is a Manifold:</p>
327
+ <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;m125&#39;</span><span class="p">)</span>
328
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
329
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span>
330
+ <span class="go">Generators:</span>
331
+ <span class="go"> a,b</span>
332
+ <span class="go">Relators:</span>
333
+ <span class="go"> aabaBBAABAbb</span>
334
+ <span class="gp">&gt;&gt;&gt; </span><span class="nb">type</span><span class="p">(</span><span class="n">G</span><span class="p">)</span>
335
+ <span class="go">&lt;class &#39;SnapPy.HolonomyGroup&#39;&gt;</span>
336
+ </pre></div>
337
+ </div>
338
+ <p>In the class HolonomyGroup, methods are provided to evaluate the
339
+ representations on a group element. Other methods are shared
340
+ with the FundamentalGroup class.</p>
341
+ <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">O31</span><span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">)</span>
342
+ <span class="go">[ 2.50000000000000 -0.500000000000000 -2.12132034355964 -0.707106781186547]</span>
343
+ <span class="go">[ 0.500000000000002 -0.500000000000001 -0.707106781186549 0.707106781186547]</span>
344
+ <span class="go">[ -0.707106781186548 -0.707106781186547 1.00000000000000 0]</span>
345
+ <span class="go">[ 2.12132034355964 -0.707106781186548 -2.00000000000000 -1.00000000000000]</span>
346
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">SL2C</span><span class="p">(</span><span class="s1">&#39;aaB&#39;</span><span class="p">)</span>
347
+ <span class="go">[-1.00000000000000 + 4.00000000000000*I 2.12132034355964 - 0.707106781186545*I]</span>
348
+ <span class="go">[2.12132034355964 - 0.707106781186549*I -1.00000000000000 - 1.00000000000000*I]</span>
349
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">complex_length</span><span class="p">(</span><span class="s1">&#39;ab&#39;</span><span class="p">)</span>
350
+ <span class="go">1.06127506190504 - 2.23703575928741*I</span>
351
+ </pre></div>
352
+ </div>
129
353
  <dl class="py method">
130
354
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.O31">
131
- <span class="sig-name descname"><span class="pre">O31</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">word</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.O31" title="Permalink to this definition">¶</a></dt>
355
+ <span class="sig-name descname"><span class="pre">O31</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">word</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><a class="headerlink" href="#snappy.HolonomyGroup.O31" title="Link to this definition"></a></dt>
132
356
  <dd><p>Return the image of the element represented by the input word
133
- under the holonomy representation, where Isom(H^3) is
134
- identified with SO(3,1).</p>
357
+ under the holonomy representation, where
358
+ <span class="math notranslate nohighlight">\(\text{Isom}(\mathbb{H}^3)\)</span> is
359
+ identified with <span class="math notranslate nohighlight">\(\text{SO}(3,1)\)</span>.</p>
135
360
  </dd></dl>
136
361
 
137
362
  <dl class="py method">
138
363
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.SL2C">
139
- <span class="sig-name descname"><span class="pre">SL2C</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">word</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.SL2C" title="Permalink to this definition">¶</a></dt>
364
+ <span class="sig-name descname"><span class="pre">SL2C</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">word</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><a class="headerlink" href="#snappy.HolonomyGroup.SL2C" title="Link to this definition"></a></dt>
140
365
  <dd><p>Return the image of the element represented by the input word
141
- under some SL(2,C) representation that lifts the holonomy
142
- representation. Note: the choice of lift is not guaranteed to
366
+ under some <span class="math notranslate nohighlight">\(\text{SL}(2,\mathbb{C})\)</span>-representation that
367
+ lifts the holonomy representation.
368
+ Note: the choice of lift is not guaranteed to
143
369
  vary continuously when filling coefficients are changed.</p>
144
370
  </dd></dl>
145
371
 
372
+ <dl class="py method">
373
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.category">
374
+ <span class="sig-name descname"><span class="pre">category</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.category" title="Link to this definition"></a></dt>
375
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 514)</p>
376
+ </dd></dl>
377
+
146
378
  <dl class="py method">
147
379
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.character_variety_vars_and_polys">
148
- <span class="sig-name descname"><span class="pre">character_variety_vars_and_polys</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">as_ideal</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.HolonomyGroup.character_variety_vars_and_polys" title="Permalink to this definition">¶</a></dt>
380
+ <span class="sig-name descname"><span class="pre">character_variety_vars_and_polys</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">as_ideal</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.HolonomyGroup.character_variety_vars_and_polys" title="Link to this definition"></a></dt>
149
381
  <dd><p>Returns a list of variables and a list polynomials where the
150
382
  polynomials generate the ideal defining the SL(2, C) character
151
- variety of this group. Each variables is of the form “Tw” where
152
- “w” is a word in the generators and represents the trace
383
+ variety of this group. Each variable is of the form “Tw” where
384
+ “w” is a word in the generators and “Tw” represents the trace
153
385
  function of that word.</p>
154
386
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">H</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;dLQacccbjkg&#39;</span><span class="p">)</span> <span class="c1"># Hopf link exterior.</span>
155
387
  <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">H</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
@@ -157,15 +389,17 @@ function of that word.</p>
157
389
  <span class="gp">&gt;&gt;&gt; </span><span class="nb">vars</span>
158
390
  <span class="go">[Ta, Tb, Tab]</span>
159
391
  <span class="gp">&gt;&gt;&gt; </span><span class="n">polys</span>
160
- <span class="go">[Ta^3 - Tab*Tb*Ta^2 + (Tb^2 + (Tab^2 - 4))*Ta, </span>
392
+ <span class="go">[Ta^3 - Tab*Tb*Ta^2 + (Tb^2 + (Tab^2 - 4))*Ta,</span>
161
393
  <span class="go"> Ta^2 - Tab*Tb*Ta + (Tb^2 + (Tab^2 - 4))]</span>
162
394
  </pre></div>
163
395
  </div>
164
396
  <p>When used inside Sage, you can ask for the answer as a proper
165
397
  ideal:</p>
166
- <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;m003&#39;</span><span class="p">)</span>
398
+ <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;m000&#39;</span><span class="p">)</span> <span class="c1"># Gieseking manifold</span>
167
399
  <span class="n">sage</span><span class="p">:</span> <span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
168
400
  <span class="n">sage</span><span class="p">:</span> <span class="n">I</span> <span class="o">=</span> <span class="n">G</span><span class="o">.</span><span class="n">character_variety_vars_and_polys</span><span class="p">(</span><span class="n">as_ideal</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
401
+ <span class="n">sage</span><span class="p">:</span> <span class="n">I</span>
402
+ <span class="n">Ideal</span> <span class="p">(</span><span class="o">-</span><span class="n">Ta</span><span class="o">^</span><span class="mi">3</span><span class="o">*</span><span class="n">Tb</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">Tab</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">^</span><span class="mi">4</span><span class="o">*</span><span class="n">Tb</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">Tb</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">Tb</span><span class="o">*</span><span class="n">Tab</span><span class="o">^</span><span class="mi">2</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">*</span><span class="n">Tb</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">Tab</span> <span class="o">-</span> <span class="mi">5</span><span class="o">*</span><span class="n">Ta</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">Tb</span> <span class="o">-</span> <span class="n">Tb</span><span class="o">^</span><span class="mi">3</span> <span class="o">-</span> <span class="n">Tb</span><span class="o">*</span><span class="n">Tab</span><span class="o">^</span><span class="mi">2</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">*</span><span class="n">Tab</span> <span class="o">-</span> <span class="n">Ta</span> <span class="o">+</span> <span class="mi">3</span><span class="o">*</span><span class="n">Tb</span><span class="p">,</span> <span class="n">Tb</span><span class="o">*</span><span class="n">Tab</span> <span class="o">-</span> <span class="n">Ta</span> <span class="o">-</span> <span class="n">Tb</span><span class="p">,</span> <span class="o">-</span><span class="n">Ta</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">Tb</span><span class="o">^</span><span class="mi">2</span><span class="o">*</span><span class="n">Tab</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">^</span><span class="mi">3</span><span class="o">*</span><span class="n">Tb</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">*</span><span class="n">Tb</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="n">Ta</span><span class="o">*</span><span class="n">Tb</span><span class="o">*</span><span class="n">Tab</span><span class="o">^</span><span class="mi">2</span> <span class="o">-</span> <span class="mi">4</span><span class="o">*</span><span class="n">Ta</span><span class="o">*</span><span class="n">Tb</span> <span class="o">+</span> <span class="n">Tab</span> <span class="o">-</span> <span class="mi">2</span><span class="p">)</span> <span class="n">of</span> <span class="n">Multivariate</span> <span class="n">Polynomial</span> <span class="n">Ring</span> <span class="ow">in</span> <span class="n">Ta</span><span class="p">,</span> <span class="n">Tb</span><span class="p">,</span> <span class="n">Tab</span> <span class="n">over</span> <span class="n">Rational</span> <span class="n">Field</span>
169
403
  <span class="n">sage</span><span class="p">:</span> <span class="n">I</span><span class="o">.</span><span class="n">dimension</span><span class="p">()</span>
170
404
  <span class="mi">1</span>
171
405
  </pre></div>
@@ -174,38 +408,151 @@ ideal:</p>
174
408
 
175
409
  <dl class="py method">
176
410
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.complex_length">
177
- <span class="sig-name descname"><span class="pre">complex_length</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">word</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.complex_length" title="Permalink to this definition">¶</a></dt>
411
+ <span class="sig-name descname"><span class="pre">complex_length</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">word</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><a class="headerlink" href="#snappy.HolonomyGroup.complex_length" title="Link to this definition"></a></dt>
178
412
  <dd><p>Return the complex length of the isometry represented by the
179
413
  input word.</p>
180
414
  </dd></dl>
181
415
 
416
+ <dl class="py method">
417
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.dump">
418
+ <span class="sig-name descname"><span class="pre">dump</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compress</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.HolonomyGroup.dump" title="Link to this definition"></a></dt>
419
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 475)</p>
420
+ <p>Same as self.save(filename, compress)</p>
421
+ </dd></dl>
422
+
423
+ <dl class="py method">
424
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.dumps">
425
+ <span class="sig-name descname"><span class="pre">dumps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">compress</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.HolonomyGroup.dumps" title="Link to this definition"></a></dt>
426
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 481)</p>
427
+ <p>Dump <code class="docutils literal notranslate"><span class="pre">self</span></code> to a string <code class="docutils literal notranslate"><span class="pre">s</span></code>, which can later be reconstituted
428
+ as <code class="docutils literal notranslate"><span class="pre">self</span></code> using <code class="docutils literal notranslate"><span class="pre">loads(s)</span></code>.</p>
429
+ <p>There is an optional boolean argument <code class="docutils literal notranslate"><span class="pre">compress</span></code> which defaults to <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
430
+ <p>EXAMPLES:</p>
431
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="kn">from</span> <span class="nn">sage.misc.persist</span> <span class="kn">import</span> <span class="n">comp</span>
432
+ <span class="n">sage</span><span class="p">:</span> <span class="n">O</span> <span class="o">=</span> <span class="n">SageObject</span><span class="p">()</span>
433
+ <span class="n">sage</span><span class="p">:</span> <span class="n">p_comp</span> <span class="o">=</span> <span class="n">O</span><span class="o">.</span><span class="n">dumps</span><span class="p">()</span>
434
+ <span class="n">sage</span><span class="p">:</span> <span class="n">p_uncomp</span> <span class="o">=</span> <span class="n">O</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">compress</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
435
+ <span class="n">sage</span><span class="p">:</span> <span class="n">comp</span><span class="o">.</span><span class="n">decompress</span><span class="p">(</span><span class="n">p_comp</span><span class="p">)</span> <span class="o">==</span> <span class="n">p_uncomp</span>
436
+ <span class="kc">True</span>
437
+ <span class="n">sage</span><span class="p">:</span> <span class="kn">import</span> <span class="nn">pickletools</span>
438
+ <span class="n">sage</span><span class="p">:</span> <span class="n">pickletools</span><span class="o">.</span><span class="n">dis</span><span class="p">(</span><span class="n">p_uncomp</span><span class="p">)</span>
439
+ <span class="mi">0</span><span class="p">:</span> \<span class="n">x80</span> <span class="n">PROTO</span> <span class="mi">2</span>
440
+ <span class="mi">2</span><span class="p">:</span> <span class="n">c</span> <span class="n">GLOBAL</span> <span class="s1">&#39;sage.structure.sage_object SageObject&#39;</span>
441
+ <span class="mi">41</span><span class="p">:</span> <span class="n">q</span> <span class="n">BINPUT</span> <span class="o">...</span>
442
+ <span class="mi">43</span><span class="p">:</span> <span class="p">)</span> <span class="n">EMPTY_TUPLE</span>
443
+ <span class="mi">44</span><span class="p">:</span> \<span class="n">x81</span> <span class="n">NEWOBJ</span>
444
+ <span class="mi">45</span><span class="p">:</span> <span class="n">q</span> <span class="n">BINPUT</span> <span class="o">...</span>
445
+ <span class="mi">47</span><span class="p">:</span> <span class="o">.</span> <span class="n">STOP</span>
446
+ <span class="n">highest</span> <span class="n">protocol</span> <span class="n">among</span> <span class="n">opcodes</span> <span class="o">=</span> <span class="mi">2</span>
447
+ </pre></div>
448
+ </div>
449
+ </dd></dl>
450
+
182
451
  <dl class="py method">
183
452
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.gap_string">
184
- <span class="sig-name descname"><span class="pre">gap_string</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.gap_string" title="Permalink to this definition">¶</a></dt>
185
- <dd><p>Returns a string which will define this group within GAP.</p>
453
+ <span class="sig-name descname"><span class="pre">gap_string</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.gap_string" title="Link to this definition"></a></dt>
454
+ <dd><p>Returns a string which will define this group within GAP:</p>
455
+ <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;b++LLR&#39;</span><span class="p">)</span>
456
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
457
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span>
458
+ <span class="go">Generators:</span>
459
+ <span class="go"> a,b</span>
460
+ <span class="go">Relators:</span>
461
+ <span class="go"> aaaaBAbbAB</span>
462
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">gap_string</span><span class="p">()</span>
463
+ <span class="go">&#39;CallFuncList(function() local F, a, b; F := FreeGroup(&quot;a&quot;, &quot;b&quot;); a := F.1; b := F.2; return F/[a*a*a*a*b^-1*a^-1*b*b*a^-1*b^-1]; end,[])&#39;</span>
464
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">magma_string</span><span class="p">()</span>
465
+ <span class="go">&#39;Group&lt;a,b|a*a*a*a*b^-1*a^-1*b*b*a^-1*b^-1&gt;&#39;</span>
466
+ </pre></div>
467
+ </div>
186
468
  </dd></dl>
187
469
 
188
470
  <dl class="py method">
189
471
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.generators">
190
- <span class="sig-name descname"><span class="pre">generators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.generators" title="Permalink to this definition">¶</a></dt>
472
+ <span class="sig-name descname"><span class="pre">generators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.generators" title="Link to this definition"></a></dt>
191
473
  <dd><p>Return the letters representing the generators in the presentation.</p>
474
+ <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;9_42&#39;</span><span class="p">)</span>
475
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span> <span class="c1">#Presentation simplified by default</span>
476
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span>
477
+ <span class="go">Generators:</span>
478
+ <span class="go"> a,b</span>
479
+ <span class="go">Relators:</span>
480
+ <span class="go"> aaaabbABBBAbb</span>
481
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">H</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span> <span class="c1">#Unsimplified presentation</span>
482
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">H</span>
483
+ <span class="go">Generators:</span>
484
+ <span class="go"> a,b,c,d,e</span>
485
+ <span class="go">Relators:</span>
486
+ <span class="go"> ECbC</span>
487
+ <span class="go"> dEb</span>
488
+ <span class="go"> dAcaB</span>
489
+ <span class="go"> dbaE</span>
490
+ </pre></div>
491
+ </div>
492
+ <p>SnapPy stores a FundamentalGroup as a presentation of the group.
493
+ The following commands demonstrate how generators in the unsimplified
494
+ and simplified presentations above correspond:</p>
495
+ <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">generators</span><span class="p">()</span>
496
+ <span class="go">[&#39;a&#39;, &#39;b&#39;]</span>
497
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">H</span><span class="o">.</span><span class="n">generators</span><span class="p">()</span>
498
+ <span class="go">[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;e&#39;]</span>
499
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">generators_in_originals</span><span class="p">()</span>
500
+ <span class="go">[&#39;BABcBcbCABcBcbCCbCba&#39;, &#39;BcBCbCbab&#39;]</span>
501
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">original_generators</span><span class="p">()</span>
502
+ <span class="go">[&#39;BBAbba&#39;, &#39;A&#39;, &#39;AB&#39;, &#39;abba&#39;, &#39;bba&#39;]</span>
503
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">num_generators</span><span class="p">()</span>
504
+ <span class="go">2</span>
505
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">num_original_generators</span><span class="p">()</span>
506
+ <span class="go">5</span>
507
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">H</span><span class="o">.</span><span class="n">num_generators</span><span class="p">()</span>
508
+ <span class="go">5</span>
509
+ </pre></div>
510
+ </div>
192
511
  </dd></dl>
193
512
 
194
513
  <dl class="py method">
195
514
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.generators_in_originals">
196
- <span class="sig-name descname"><span class="pre">generators_in_originals</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose_form</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">raw_form</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.HolonomyGroup.generators_in_originals" title="Permalink to this definition">¶</a></dt>
515
+ <span class="sig-name descname"><span class="pre">generators_in_originals</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose_form</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">raw_form</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">as_int_list</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.HolonomyGroup.generators_in_originals" title="Link to this definition"></a></dt>
197
516
  <dd><p>Return the current generators in terms of the original
198
- geometric generators (before simplification).</p>
517
+ geometric generators. Note that by default fundamental_group()
518
+ returns a simplified presentation of the group.</p>
199
519
  <p>If the flag “raw_form” is set to True, it returns a sequence of
200
520
  instructions for expressing the current generators in terms of
201
521
  the original ones. This is sometimes much more concise, though
202
522
  the format is somewhat obscure. See the source code of this
203
- function in SnapPy.pyx for details.</p>
523
+ function in fundamental_group.pyx for details.</p>
524
+ <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;K7_1&#39;</span><span class="p">)</span>
525
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
526
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">generators_in_originals</span><span class="p">()</span>
527
+ <span class="go">[&#39;DBcACbABcaCbDBcACbABcaCbACbaBcaCbd&#39;,</span>
528
+ <span class="go"> &#39;DBcACbABcaCbDBcACbABcaCbCbDBcACbABcaBcACbaBcaCbdACbaBcaCbdBcBcACbaBcaCbd&#39;]</span>
529
+ </pre></div>
530
+ </div>
531
+ </dd></dl>
532
+
533
+ <dl class="py method">
534
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.get_custom_name">
535
+ <span class="sig-name descname"><span class="pre">get_custom_name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.get_custom_name" title="Link to this definition"></a></dt>
536
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 150)</p>
537
+ <p>Return the custom name of this object, or <code class="docutils literal notranslate"><span class="pre">None</span></code> if it is not
538
+ renamed.</p>
539
+ <p>EXAMPLES:</p>
540
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.&lt;</span><span class="n">x</span><span class="o">&gt;</span> <span class="o">=</span> <span class="n">QQ</span><span class="p">[]</span>
541
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.</span><span class="n">get_custom_name</span><span class="p">()</span> <span class="ow">is</span> <span class="kc">None</span>
542
+ <span class="kc">True</span>
543
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s1">&#39;A polynomial ring&#39;</span><span class="p">)</span>
544
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.</span><span class="n">get_custom_name</span><span class="p">()</span>
545
+ <span class="s1">&#39;A polynomial ring&#39;</span>
546
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.</span><span class="n">reset_name</span><span class="p">()</span>
547
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.</span><span class="n">get_custom_name</span><span class="p">()</span> <span class="ow">is</span> <span class="kc">None</span>
548
+ <span class="kc">True</span>
549
+ </pre></div>
550
+ </div>
204
551
  </dd></dl>
205
552
 
206
553
  <dl class="py method">
207
554
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.longitude">
208
- <span class="sig-name descname"><span class="pre">longitude</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">int</span> <span class="pre">which_cusp=0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">as_int_list=False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.longitude" title="Permalink to this definition">¶</a></dt>
555
+ <span class="sig-name descname"><span class="pre">longitude</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">as_int_list</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.HolonomyGroup.longitude" title="Link to this definition"></a></dt>
209
556
  <dd><p>Returns a word representing a conjugate of the current
210
557
  longitude for the given cusp. Guaranteed to commute with the
211
558
  meridian for the same cusp. Note: for Klein bottle cusps,
@@ -213,7 +560,7 @@ the longitude must be defined carefully.</p>
213
560
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">G</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><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
214
561
  <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">longitude</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
215
562
  <span class="go">&#39;aBAbABab&#39;</span>
216
- <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">longitude</span><span class="p">()</span> <span class="c1"># shortcut for the above. </span>
563
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">longitude</span><span class="p">()</span> <span class="c1"># shortcut for the above.</span>
217
564
  <span class="go">&#39;aBAbABab&#39;</span>
218
565
  </pre></div>
219
566
  </div>
@@ -221,13 +568,13 @@ the longitude must be defined carefully.</p>
221
568
 
222
569
  <dl class="py method">
223
570
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.magma_string">
224
- <span class="sig-name descname"><span class="pre">magma_string</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.magma_string" title="Permalink to this definition">¶</a></dt>
571
+ <span class="sig-name descname"><span class="pre">magma_string</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.magma_string" title="Link to this definition"></a></dt>
225
572
  <dd><p>Returns a string which will define this group within MAGMA.</p>
226
573
  </dd></dl>
227
574
 
228
575
  <dl class="py method">
229
576
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.meridian">
230
- <span class="sig-name descname"><span class="pre">meridian</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">int</span> <span class="pre">which_cusp=0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">as_int_list=False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.meridian" title="Permalink to this definition">¶</a></dt>
577
+ <span class="sig-name descname"><span class="pre">meridian</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">as_int_list</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.HolonomyGroup.meridian" title="Link to this definition"></a></dt>
231
578
  <dd><p>Returns a word representing a conjugate of the current
232
579
  meridian for the given cusp. Guaranteed to commute with the
233
580
  longitude for the same cusp.</p>
@@ -242,32 +589,53 @@ longitude for the same cusp.</p>
242
589
 
243
590
  <dl class="py method">
244
591
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.num_generators">
245
- <span class="sig-name descname"><span class="pre">num_generators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.num_generators" title="Permalink to this definition">¶</a></dt>
592
+ <span class="sig-name descname"><span class="pre">num_generators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.num_generators" title="Link to this definition"></a></dt>
246
593
  <dd><p>Return the number of generators for the presentation.</p>
247
594
  </dd></dl>
248
595
 
249
596
  <dl class="py method">
250
597
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.num_original_generators">
251
- <span class="sig-name descname"><span class="pre">num_original_generators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.num_original_generators" title="Permalink to this definition">¶</a></dt>
598
+ <span class="sig-name descname"><span class="pre">num_original_generators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.num_original_generators" title="Link to this definition"></a></dt>
252
599
  <dd><p>Return the number of geometric generators (before simplification).</p>
253
600
  </dd></dl>
254
601
 
255
602
  <dl class="py method">
256
603
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.num_relators">
257
- <span class="sig-name descname"><span class="pre">num_relators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.num_relators" title="Permalink to this definition">¶</a></dt>
604
+ <span class="sig-name descname"><span class="pre">num_relators</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.num_relators" title="Link to this definition"></a></dt>
258
605
  <dd><p>Return the number of generators for the presentation.</p>
259
606
  </dd></dl>
260
607
 
261
608
  <dl class="py method">
262
609
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.original_generators">
263
- <span class="sig-name descname"><span class="pre">original_generators</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose_form</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.HolonomyGroup.original_generators" title="Permalink to this definition">¶</a></dt>
610
+ <span class="sig-name descname"><span class="pre">original_generators</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose_form</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">as_int_list</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.HolonomyGroup.original_generators" title="Link to this definition"></a></dt>
264
611
  <dd><p>Return the original geometric generators (before
265
612
  simplification) in terms of the current generators.</p>
613
+ <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;v0000&#39;</span><span class="p">)</span>
614
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
615
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">original_generators</span><span class="p">(</span><span class="n">as_int_list</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
616
+ <span class="go">[[1], [-1, -2, 1, 2], [-1, 2], [-2, -1, 2], [2]]</span>
617
+ </pre></div>
618
+ </div>
619
+ </dd></dl>
620
+
621
+ <dl class="py method">
622
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.parent">
623
+ <span class="sig-name descname"><span class="pre">parent</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.parent" title="Link to this definition"></a></dt>
624
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 549)</p>
625
+ <p>Return the type of <code class="docutils literal notranslate"><span class="pre">self</span></code> to support the coercion framework.</p>
626
+ <p>EXAMPLES:</p>
627
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sage: t = log(sqrt(2) - 1) + log(sqrt(2) + 1); t # needs sage.symbolic
628
+ log(sqrt(2) + 1) + log(sqrt(2) - 1)
629
+ sage: u = t.maxima_methods() # needs sage.symbolic
630
+ sage: u.parent() # needs sage.symbolic
631
+ &lt;class &#39;sage.symbolic.maxima_wrapper.MaximaWrapper&#39;&gt;
632
+ </pre></div>
633
+ </div>
266
634
  </dd></dl>
267
635
 
268
636
  <dl class="py method">
269
637
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.peripheral_curves">
270
- <span class="sig-name descname"><span class="pre">peripheral_curves</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">as_int_list</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.HolonomyGroup.peripheral_curves" title="Permalink to this definition">¶</a></dt>
638
+ <span class="sig-name descname"><span class="pre">peripheral_curves</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">as_int_list</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.HolonomyGroup.peripheral_curves" title="Link to this definition"></a></dt>
271
639
  <dd><p>Returns a list of meridian-longitude pairs for all cusps.</p>
272
640
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;m125&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">fundamental_group</span><span class="p">()</span>
273
641
  <span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">peripheral_curves</span><span class="p">()</span>
@@ -278,31 +646,116 @@ simplification) in terms of the current generators.</p>
278
646
 
279
647
  <dl class="py method">
280
648
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.relators">
281
- <span class="sig-name descname"><span class="pre">relators</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose_form</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">as_int_list</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.HolonomyGroup.relators" title="Permalink to this definition">¶</a></dt>
649
+ <span class="sig-name descname"><span class="pre">relators</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verbose_form</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">as_int_list</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.HolonomyGroup.relators" title="Link to this definition"></a></dt>
282
650
  <dd><p>Return a list of words representing the relators in the presentation.</p>
283
651
  <p>If the optional argument verbose_form is True, then the
284
652
  relator is returned in the form “a*b*a^-1*b^-1” instead of “abAB”.</p>
285
653
  </dd></dl>
286
654
 
655
+ <dl class="py method">
656
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.rename">
657
+ <span class="sig-name descname"><span class="pre">rename</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</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.HolonomyGroup.rename" title="Link to this definition"></a></dt>
658
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 68)</p>
659
+ <p>Change <code class="docutils literal notranslate"><span class="pre">self</span></code> so it prints as x, where x is a string.</p>
660
+ <p>If x is <code class="docutils literal notranslate"><span class="pre">None</span></code>, the existing custom name is removed.</p>
661
+ <div class="admonition note">
662
+ <p class="admonition-title">Note</p>
663
+ <p>This is <em>only</em> supported for Python classes that derive
664
+ from SageObject.</p>
665
+ </div>
666
+ <p>EXAMPLES:</p>
667
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">x</span> <span class="o">=</span> <span class="n">PolynomialRing</span><span class="p">(</span><span class="n">QQ</span><span class="p">,</span> <span class="s1">&#39;x&#39;</span><span class="p">,</span> <span class="n">sparse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">gen</span><span class="p">()</span>
668
+ <span class="n">sage</span><span class="p">:</span> <span class="n">g</span> <span class="o">=</span> <span class="n">x</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="n">x</span> <span class="o">-</span> <span class="mi">5</span>
669
+ <span class="n">sage</span><span class="p">:</span> <span class="n">g</span>
670
+ <span class="n">x</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="n">x</span> <span class="o">-</span> <span class="mi">5</span>
671
+ <span class="n">sage</span><span class="p">:</span> <span class="n">g</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s1">&#39;a polynomial&#39;</span><span class="p">)</span>
672
+ <span class="n">sage</span><span class="p">:</span> <span class="n">g</span>
673
+ <span class="n">a</span> <span class="n">polynomial</span>
674
+ <span class="n">sage</span><span class="p">:</span> <span class="n">g</span> <span class="o">+</span> <span class="n">x</span>
675
+ <span class="n">x</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">2</span><span class="o">*</span><span class="n">x</span> <span class="o">-</span> <span class="mi">5</span>
676
+ <span class="n">sage</span><span class="p">:</span> <span class="n">h</span> <span class="o">=</span> <span class="n">g</span><span class="o">^</span><span class="mi">100</span>
677
+ <span class="n">sage</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">h</span><span class="p">)[:</span><span class="mi">20</span><span class="p">]</span>
678
+ <span class="s1">&#39;x^300 + 100*x^298 - &#39;</span>
679
+ <span class="n">sage</span><span class="p">:</span> <span class="n">h</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s1">&#39;x^300 + ...&#39;</span><span class="p">)</span>
680
+ <span class="n">sage</span><span class="p">:</span> <span class="n">h</span>
681
+ <span class="n">x</span><span class="o">^</span><span class="mi">300</span> <span class="o">+</span> <span class="o">...</span>
682
+ <span class="n">sage</span><span class="p">:</span> <span class="n">g</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
683
+ <span class="n">sage</span><span class="p">:</span> <span class="n">g</span>
684
+ <span class="n">x</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="n">x</span> <span class="o">-</span> <span class="mi">5</span>
685
+ </pre></div>
686
+ </div>
687
+ <p>Real numbers are not Python classes, so rename is not supported:</p>
688
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">a</span> <span class="o">=</span> <span class="mf">3.14</span>
689
+ <span class="n">sage</span><span class="p">:</span> <span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="c1"># needs sage.rings.real_mpfr</span>
690
+ <span class="o">&lt;...</span> <span class="s1">&#39;sage.rings.real_mpfr.RealLiteral&#39;</span><span class="o">&gt;</span>
691
+ <span class="n">sage</span><span class="p">:</span> <span class="n">a</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s1">&#39;pi&#39;</span><span class="p">)</span> <span class="c1"># needs sage.rings.real_mpfr</span>
692
+ <span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
693
+ <span class="o">...</span>
694
+ <span class="ne">NotImplementedError</span><span class="p">:</span> <span class="nb">object</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">support</span> <span class="n">renaming</span><span class="p">:</span> <span class="mf">3.14000000000000</span>
695
+ </pre></div>
696
+ </div>
697
+ <div class="admonition note">
698
+ <p class="admonition-title">Note</p>
699
+ <p>The reason C-extension types are not supported by default
700
+ is if they were then every single one would have to carry
701
+ around an extra attribute, which would be slower and waste
702
+ a lot of memory.</p>
703
+ <p>To support them for a specific class, add a
704
+ <code class="docutils literal notranslate"><span class="pre">cdef</span> <span class="pre">public</span> <span class="pre">_SageObject__custom_name</span></code> attribute.</p>
705
+ </div>
706
+ </dd></dl>
707
+
708
+ <dl class="py method">
709
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.reset_name">
710
+ <span class="sig-name descname"><span class="pre">reset_name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.reset_name" title="Link to this definition"></a></dt>
711
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 131)</p>
712
+ <p>Remove the custom name of an object.</p>
713
+ <p>EXAMPLES:</p>
714
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.&lt;</span><span class="n">x</span><span class="o">&gt;</span> <span class="o">=</span> <span class="n">QQ</span><span class="p">[]</span>
715
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span>
716
+ <span class="n">Univariate</span> <span class="n">Polynomial</span> <span class="n">Ring</span> <span class="ow">in</span> <span class="n">x</span> <span class="n">over</span> <span class="n">Rational</span> <span class="n">Field</span>
717
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s1">&#39;A polynomial ring&#39;</span><span class="p">)</span>
718
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span>
719
+ <span class="n">A</span> <span class="n">polynomial</span> <span class="n">ring</span>
720
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span><span class="o">.</span><span class="n">reset_name</span><span class="p">()</span>
721
+ <span class="n">sage</span><span class="p">:</span> <span class="n">P</span>
722
+ <span class="n">Univariate</span> <span class="n">Polynomial</span> <span class="n">Ring</span> <span class="ow">in</span> <span class="n">x</span> <span class="n">over</span> <span class="n">Rational</span> <span class="n">Field</span>
723
+ </pre></div>
724
+ </div>
725
+ </dd></dl>
726
+
287
727
  <dl class="py method">
288
728
  <dt class="sig sig-object py" id="snappy.HolonomyGroup.sage">
289
- <span class="sig-name descname"><span class="pre">sage</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.sage" title="Permalink to this definition">¶</a></dt>
729
+ <span class="sig-name descname"><span class="pre">sage</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.sage" title="Link to this definition"></a></dt>
290
730
  <dd><p>Returns the corresponding Sage FinitelyPresentedGroup</p>
291
731
  </dd></dl>
292
732
 
293
733
  <dl class="py method">
294
- <dt class="sig sig-object py" id="snappy.HolonomyGroup.use_field_conversion">
295
- <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">use_field_conversion</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cls</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.HolonomyGroup.use_field_conversion" title="Permalink to this definition">¶</a></dt>
296
- <dd></dd></dl>
734
+ <dt class="sig sig-object py" id="snappy.HolonomyGroup.save">
735
+ <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">filename</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">compress</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.HolonomyGroup.save" title="Link to this definition"></a></dt>
736
+ <dd><p>File: sage/structure/sage_object.pyx (starting at line 446)</p>
737
+ <p>Save <code class="docutils literal notranslate"><span class="pre">self</span></code> to the given filename.</p>
738
+ <p>EXAMPLES:</p>
739
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="c1"># needs sage.symbolic</span>
740
+ <span class="n">sage</span><span class="p">:</span> <span class="n">x</span> <span class="o">=</span> <span class="n">SR</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span>
741
+ <span class="n">sage</span><span class="p">:</span> <span class="n">f</span> <span class="o">=</span> <span class="n">x</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">5</span>
742
+ <span class="n">sage</span><span class="p">:</span> <span class="kn">from</span> <span class="nn">tempfile</span> <span class="kn">import</span> <span class="n">NamedTemporaryFile</span>
743
+ <span class="n">sage</span><span class="p">:</span> <span class="k">with</span> <span class="n">NamedTemporaryFile</span><span class="p">(</span><span class="n">suffix</span><span class="o">=</span><span class="s1">&#39;.sobj&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">t</span><span class="p">:</span>
744
+ <span class="o">....</span><span class="p">:</span> <span class="n">f</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
745
+ <span class="o">....</span><span class="p">:</span> <span class="n">load</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
746
+ <span class="n">x</span><span class="o">^</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">5</span>
747
+ </pre></div>
748
+ </div>
749
+ </dd></dl>
297
750
 
298
751
  </dd></dl>
299
752
 
300
753
  </section>
301
754
  <section id="symmetrygroup">
302
- <h2>SymmetryGroup<a class="headerlink" href="#symmetrygroup" title="Permalink to this headline">¶</a></h2>
755
+ <h2>SymmetryGroup<a class="headerlink" href="#symmetrygroup" title="Link to this heading"></a></h2>
303
756
  <dl class="py class">
304
757
  <dt class="sig sig-object py" id="snappy.SymmetryGroup">
305
- <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">SymmetryGroup</span></span><a class="headerlink" href="#snappy.SymmetryGroup" title="Permalink to this definition">¶</a></dt>
758
+ <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">SymmetryGroup</span></span><a class="headerlink" href="#snappy.SymmetryGroup" title="Link to this definition"></a></dt>
306
759
  <dd><p>A SymmetryGroup is a group of self-isometries of hyperbolic
307
760
  3-manifold. Instantiate as follows:</p>
308
761
  <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>
@@ -312,7 +765,7 @@ relator is returned in the form “a*b*a^-1*b^-1” instead of “abAB”.</p>
312
765
  </div>
313
766
  <dl class="py method">
314
767
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.abelian_description">
315
- <span class="sig-name descname"><span class="pre">abelian_description</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.abelian_description" title="Permalink to this definition">¶</a></dt>
768
+ <span class="sig-name descname"><span class="pre">abelian_description</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.abelian_description" title="Link to this definition"></a></dt>
316
769
  <dd><p>If the symmetry group is abelian, return it as an AbelianGroup</p>
317
770
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;v3379&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
318
771
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">abelian_description</span><span class="p">()</span>
@@ -323,7 +776,7 @@ relator is returned in the form “a*b*a^-1*b^-1” instead of “abAB”.</p>
323
776
 
324
777
  <dl class="py method">
325
778
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.abelianization">
326
- <span class="sig-name descname"><span class="pre">abelianization</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.abelianization" title="Permalink to this definition">¶</a></dt>
779
+ <span class="sig-name descname"><span class="pre">abelianization</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.abelianization" title="Link to this definition"></a></dt>
327
780
  <dd><p>Return the abelianization of the symmetry group</p>
328
781
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
329
782
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">abelianization</span><span class="p">()</span>
@@ -334,7 +787,7 @@ relator is returned in the form “a*b*a^-1*b^-1” instead of “abAB”.</p>
334
787
 
335
788
  <dl class="py method">
336
789
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.center">
337
- <span class="sig-name descname"><span class="pre">center</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.center" title="Permalink to this definition">¶</a></dt>
790
+ <span class="sig-name descname"><span class="pre">center</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.center" title="Link to this definition"></a></dt>
338
791
  <dd><p>Return the center of the symmetry group</p>
339
792
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
340
793
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>
@@ -345,7 +798,7 @@ relator is returned in the form “a*b*a^-1*b^-1” instead of “abAB”.</p>
345
798
 
346
799
  <dl class="py method">
347
800
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.commutator_subgroup">
348
- <span class="sig-name descname"><span class="pre">commutator_subgroup</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.commutator_subgroup" title="Permalink to this definition">¶</a></dt>
801
+ <span class="sig-name descname"><span class="pre">commutator_subgroup</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.commutator_subgroup" title="Link to this definition"></a></dt>
349
802
  <dd><p>Return the commutator subgroup of the SymmetryGroup</p>
350
803
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
351
804
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span>
@@ -358,7 +811,7 @@ relator is returned in the form “a*b*a^-1*b^-1” instead of “abAB”.</p>
358
811
 
359
812
  <dl class="py method">
360
813
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.direct_product_description">
361
- <span class="sig-name descname"><span class="pre">direct_product_description</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.direct_product_description" title="Permalink to this definition">¶</a></dt>
814
+ <span class="sig-name descname"><span class="pre">direct_product_description</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.direct_product_description" title="Link to this definition"></a></dt>
362
815
  <dd><p>If the SymmetryGroup is a nontrivial direct product with at
363
816
  least one nonabelian factor, return a pair of SymmetryGroups
364
817
  consisting of the (two) factors.</p>
@@ -371,13 +824,13 @@ consisting of the (two) factors.</p>
371
824
 
372
825
  <dl class="py method">
373
826
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_S5">
374
- <span class="sig-name descname"><span class="pre">is_S5</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_S5" title="Permalink to this definition">¶</a></dt>
827
+ <span class="sig-name descname"><span class="pre">is_S5</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_S5" title="Link to this definition"></a></dt>
375
828
  <dd><p>Returns whether the group is the symmetric group on five things.</p>
376
829
  </dd></dl>
377
830
 
378
831
  <dl class="py method">
379
832
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_abelian">
380
- <span class="sig-name descname"><span class="pre">is_abelian</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_abelian" title="Permalink to this definition">¶</a></dt>
833
+ <span class="sig-name descname"><span class="pre">is_abelian</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_abelian" title="Link to this definition"></a></dt>
381
834
  <dd><p>Return whether the symmetry group is abelian.</p>
382
835
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
383
836
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">is_abelian</span><span class="p">()</span>
@@ -388,7 +841,7 @@ consisting of the (two) factors.</p>
388
841
 
389
842
  <dl class="py method">
390
843
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_amphicheiral">
391
- <span class="sig-name descname"><span class="pre">is_amphicheiral</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_amphicheiral" title="Permalink to this definition">¶</a></dt>
844
+ <span class="sig-name descname"><span class="pre">is_amphicheiral</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_amphicheiral" title="Link to this definition"></a></dt>
392
845
  <dd><p>Return whether the manifold has an orientation reversing symmetry.</p>
393
846
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
394
847
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">is_amphicheiral</span><span class="p">()</span>
@@ -399,7 +852,7 @@ consisting of the (two) factors.</p>
399
852
 
400
853
  <dl class="py method">
401
854
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_dihedral">
402
- <span class="sig-name descname"><span class="pre">is_dihedral</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_dihedral" title="Permalink to this definition">¶</a></dt>
855
+ <span class="sig-name descname"><span class="pre">is_dihedral</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_dihedral" title="Link to this definition"></a></dt>
403
856
  <dd><p>Return whether the symmetry group is dihedral.</p>
404
857
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
405
858
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">is_dihedral</span><span class="p">()</span>
@@ -410,7 +863,7 @@ consisting of the (two) factors.</p>
410
863
 
411
864
  <dl class="py method">
412
865
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_direct_product">
413
- <span class="sig-name descname"><span class="pre">is_direct_product</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_direct_product" title="Permalink to this definition">¶</a></dt>
866
+ <span class="sig-name descname"><span class="pre">is_direct_product</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_direct_product" title="Link to this definition"></a></dt>
414
867
  <dd><p>Return whether the SymmetryGroup is a nontrivial direct
415
868
  product with at least one nonabelian factor.</p>
416
869
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;s960&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
@@ -424,7 +877,7 @@ product with at least one nonabelian factor.</p>
424
877
 
425
878
  <dl class="py method">
426
879
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_full_group">
427
- <span class="sig-name descname"><span class="pre">is_full_group</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_full_group" title="Permalink to this definition">¶</a></dt>
880
+ <span class="sig-name descname"><span class="pre">is_full_group</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_full_group" title="Link to this definition"></a></dt>
428
881
  <dd><p>Return whether the full symmetry group has been found.</p>
429
882
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
430
883
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">is_full_group</span><span class="p">()</span>
@@ -435,7 +888,7 @@ product with at least one nonabelian factor.</p>
435
888
 
436
889
  <dl class="py method">
437
890
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_invertible_knot">
438
- <span class="sig-name descname"><span class="pre">is_invertible_knot</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_invertible_knot" title="Permalink to this definition">¶</a></dt>
891
+ <span class="sig-name descname"><span class="pre">is_invertible_knot</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_invertible_knot" title="Link to this definition"></a></dt>
439
892
  <dd><p>Return whether a one-cusped has a symmetry that acts on the
440
893
  cusp via the matrix -I.</p>
441
894
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</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><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
@@ -447,19 +900,19 @@ cusp via the matrix -I.</p>
447
900
 
448
901
  <dl class="py method">
449
902
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.is_polyhedral">
450
- <span class="sig-name descname"><span class="pre">is_polyhedral</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_polyhedral" title="Permalink to this definition">¶</a></dt>
903
+ <span class="sig-name descname"><span class="pre">is_polyhedral</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.is_polyhedral" title="Link to this definition"></a></dt>
451
904
  <dd><p>Returns whether the symmetry group is a (possibly binary)
452
905
  polyhedral group.</p>
453
906
  </dd></dl>
454
907
 
455
908
  <dl class="py method">
456
909
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.isometries">
457
- <span class="sig-name descname"><span class="pre">isometries</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.isometries" title="Permalink to this definition">¶</a></dt>
910
+ <span class="sig-name descname"><span class="pre">isometries</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.isometries" title="Link to this definition"></a></dt>
458
911
  <dd><p>Return a detailed list of all the isometries in the symmetry group.</p>
459
912
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;s959&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
460
913
  <span class="gp">&gt;&gt;&gt; </span><span class="n">isoms</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">isometries</span><span class="p">()</span>
461
914
  <span class="gp">&gt;&gt;&gt; </span><span class="n">isoms</span><span class="p">[</span><span class="mi">8</span><span class="p">]</span>
462
- <span class="go">0 -&gt; 1 1 -&gt; 0 </span>
915
+ <span class="go">0 -&gt; 1 1 -&gt; 0</span>
463
916
  <span class="go">[-1 -1] [ 0 1]</span>
464
917
  <span class="go">[ 1 0] [-1 -1]</span>
465
918
  <span class="go">Does not extend to link</span>
@@ -469,7 +922,7 @@ polyhedral group.</p>
469
922
 
470
923
  <dl class="py method">
471
924
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.multiply_elements">
472
- <span class="sig-name descname"><span class="pre">multiply_elements</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">i</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.multiply_elements" title="Permalink to this definition">¶</a></dt>
925
+ <span class="sig-name descname"><span class="pre">multiply_elements</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">i</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.multiply_elements" title="Link to this definition"></a></dt>
473
926
  <dd><p>Returns the product of group elements i and j. The convention
474
927
  is that products of symmetries read right to left. That is,
475
928
  the composition (symmetry[i] o symmetry[j]) acts by first
@@ -483,7 +936,7 @@ doing symmetry[j], then symmetry[i].</p>
483
936
 
484
937
  <dl class="py method">
485
938
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.order">
486
- <span class="sig-name descname"><span class="pre">order</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.order" title="Permalink to this definition">¶</a></dt>
939
+ <span class="sig-name descname"><span class="pre">order</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.order" title="Link to this definition"></a></dt>
487
940
  <dd><p>Return the order of the symmetry group</p>
488
941
  <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">S</span> <span class="o">=</span> <span class="n">Manifold</span><span class="p">(</span><span class="s1">&#39;s000&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">symmetry_group</span><span class="p">()</span>
489
942
  <span class="gp">&gt;&gt;&gt; </span><span class="n">S</span><span class="o">.</span><span class="n">order</span><span class="p">()</span>
@@ -494,7 +947,7 @@ doing symmetry[j], then symmetry[i].</p>
494
947
 
495
948
  <dl class="py method">
496
949
  <dt class="sig sig-object py" id="snappy.SymmetryGroup.polyhedral_description">
497
- <span class="sig-name descname"><span class="pre">polyhedral_description</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.polyhedral_description" title="Permalink to this definition">¶</a></dt>
950
+ <span class="sig-name descname"><span class="pre">polyhedral_description</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.SymmetryGroup.polyhedral_description" title="Link to this definition"></a></dt>
498
951
  <dd><p>If the symmetry group is a (possibly binary)
499
952
  polyhedral group, return a description of it.</p>
500
953
  </dd></dl>
@@ -503,15 +956,16 @@ polyhedral group, return a description of it.</p>
503
956
 
504
957
  </section>
505
958
  <section id="dirichletdomain">
506
- <h2>DirichletDomain<a class="headerlink" href="#dirichletdomain" title="Permalink to this headline">¶</a></h2>
959
+ <h2>DirichletDomain<a class="headerlink" href="#dirichletdomain" title="Link to this heading"></a></h2>
507
960
  <dl class="py class">
508
961
  <dt class="sig sig-object py" id="snappy.DirichletDomain">
509
- <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">DirichletDomain</span></span><a class="headerlink" href="#snappy.DirichletDomain" title="Permalink to this definition">¶</a></dt>
510
- <dd><p>A DirichletDomain object represents a Dirichlet Domain of
962
+ <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">DirichletDomain</span></span><a class="headerlink" href="#snappy.DirichletDomain" title="Link to this definition"></a></dt>
963
+ <dd><p>A DirichletDomain object represents a Dirichlet Domain of
511
964
  a hyperbolic manifold, typically centered at a point which
512
965
  is a local maximum of injectivity radius. It will have ideal
513
966
  vertices if the manifold is not closed.</p>
514
- <p>Instantiate as M.dirichlet_domain() where M is a Manifold to
967
+ <p>Instantiate as M.dirichlet_domain()
968
+ where M is a Manifold to
515
969
  obtain a Dirichlet Domain centered at a point which maximizes
516
970
  injectivity radius.</p>
517
971
  <p>Other options can be provided to customize the computation, with
@@ -523,12 +977,23 @@ the default values shown here</p>
523
977
  </div>
524
978
  <p>You can also create a Dirichlet Domain from a file listing matrix
525
979
  generators for the group, in SnapPea’s “% Generator” format, via</p>
526
- <blockquote>
527
- <div><p>D = DirichletDomain(generator_file=’test.gens’)</p>
528
- </div></blockquote>
980
+ <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">D</span> <span class="o">=</span> <span class="n">DirichletDomain</span><span class="p">(</span><span class="n">generator_file</span><span class="o">=</span><span class="s1">&#39;test.gens&#39;</span><span class="p">)</span>
981
+ </pre></div>
982
+ </div>
983
+ <p>Or from matrices:</p>
984
+ <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">G</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><span class="o">.</span><span class="n">fundamental_group</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
985
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">matrices</span> <span class="o">=</span> <span class="p">[</span> <span class="n">G</span><span class="o">.</span><span class="n">O31</span><span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">),</span> <span class="n">G</span><span class="o">.</span><span class="n">O31</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">),</span> <span class="n">G</span><span class="o">.</span><span class="n">O31</span><span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">)</span> <span class="p">]</span> <span class="c1"># Note: some of the matrices contain (near) 0 entries and thus this tests that Object2Real converts small numbers fromatted by pari as &quot;1.0 E-10&quot; (note the pace before &quot;E&quot;) correctly when not in SageMath.</span>
986
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">DirichletDomain</span><span class="p">(</span><span class="n">O31_generators</span> <span class="o">=</span> <span class="n">matrices</span><span class="p">,</span>
987
+ <span class="gp">... </span> <span class="n">maximize_injectivity_radius</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
988
+ <span class="go">8 finite vertices, 2 ideal vertices; 20 edges; 12 faces</span>
989
+ </pre></div>
990
+ </div>
991
+ <p>The group elements for the face-pairings of the Dirichlet domain
992
+ can be given as words in the original generators by setting
993
+ <code class="docutils literal notranslate"><span class="pre">include_words</span> <span class="pre">=</span> <span class="pre">True</span></code>.</p>
529
994
  <dl class="py method">
530
995
  <dt class="sig sig-object py" id="snappy.DirichletDomain.edge_list">
531
- <span class="sig-name descname"><span class="pre">edge_list</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.edge_list" title="Permalink to this definition">¶</a></dt>
996
+ <span class="sig-name descname"><span class="pre">edge_list</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.edge_list" title="Link to this definition"></a></dt>
532
997
  <dd><p>Return a list of edges, each represented as a dictionar with keys
533
998
  ‘tail_vertex_index’, ‘tip_vertex_index’, ‘edge_class’.</p>
534
999
  <p>The index (into vertex_data_list()) to the two vertices at the
@@ -539,7 +1004,7 @@ belongs to is stored in ‘edge_class’.</p>
539
1004
 
540
1005
  <dl class="py method">
541
1006
  <dt class="sig sig-object py" id="snappy.DirichletDomain.export_stl">
542
- <span class="sig-name descname"><span class="pre">export_stl</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'klein'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutout</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">num_subdivisions</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shrink_factor</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.9</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutoff_radius</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.9</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">callback</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.DirichletDomain.export_stl" title="Permalink to this definition">¶</a></dt>
1007
+ <span class="sig-name descname"><span class="pre">export_stl</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'klein'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutout</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">num_subdivisions</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shrink_factor</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.9</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutoff_radius</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.9</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">callback</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.DirichletDomain.export_stl" title="Link to this definition"></a></dt>
543
1008
  <dd><p>Export the Dirichlet domain as an stl file suitable for 3d printing.</p>
544
1009
  <p>Arguments can be given to modify the model produced:</p>
545
1010
  <ul class="simple">
@@ -564,7 +1029,7 @@ every so often if it is not None.</p>
564
1029
 
565
1030
  <dl class="py method">
566
1031
  <dt class="sig sig-object py" id="snappy.DirichletDomain.face_list">
567
- <span class="sig-name descname"><span class="pre">face_list</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.face_list" title="Permalink to this definition">¶</a></dt>
1032
+ <span class="sig-name descname"><span class="pre">face_list</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.face_list" title="Link to this definition"></a></dt>
568
1033
  <dd><p>Return a list of faces, each represented as a dictionary with
569
1034
  keys ‘vertices’, ‘distance’, ‘closest’, ‘hue’, ‘vertex_indices’,
570
1035
  ‘edge_indices’, ‘vertex_image_indices’, ‘edge_image_indices’,
@@ -591,13 +1056,13 @@ the respective position.</p>
591
1056
 
592
1057
  <dl class="py method">
593
1058
  <dt class="sig sig-object py" id="snappy.DirichletDomain.in_radius">
594
- <span class="sig-name descname"><span class="pre">in_radius</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.in_radius" title="Permalink to this definition">¶</a></dt>
1059
+ <span class="sig-name descname"><span class="pre">in_radius</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.in_radius" title="Link to this definition"></a></dt>
595
1060
  <dd><p>Return the radius of the largest inscribed sphere.</p>
596
1061
  </dd></dl>
597
1062
 
598
1063
  <dl class="py method">
599
1064
  <dt class="sig sig-object py" id="snappy.DirichletDomain.length_spectrum_dicts">
600
- <span class="sig-name descname"><span class="pre">length_spectrum_dicts</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cutoff_length</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">full_rigor</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">multiplicities</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">user_radius</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grouped</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.DirichletDomain.length_spectrum_dicts" title="Permalink to this definition">¶</a></dt>
1065
+ <span class="sig-name descname"><span class="pre">length_spectrum_dicts</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cutoff_length</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">full_rigor</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">multiplicities</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">user_radius</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grouped</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.DirichletDomain.length_spectrum_dicts" title="Link to this definition"></a></dt>
601
1066
  <dd><p>Return a list of info objects describing the short
602
1067
  geodesics up to the specified cutoff length. The keys are
603
1068
  ‘length’, ‘parity’, ‘topology’, and ‘multiplicity’. The
@@ -614,7 +1079,7 @@ in the fundamental group realizing this element.</p>
614
1079
  <span class="go">True</span>
615
1080
  </pre></div>
616
1081
  </div>
617
- <p>If the flag ‘grouped’ is False, then each geodesic is returned as
1082
+ <p>If the flag ‘grouped’ is False, then each geodesic is returned as
618
1083
  a separate item rather than collating by (length, parity, topology).
619
1084
  If the flag ‘multiplicities’ is False, then the geodesics <em>are</em>
620
1085
  collated but the multiplicity of each item is set to 0.</p>
@@ -630,7 +1095,7 @@ collated but the multiplicity of each item is set to 0.</p>
630
1095
 
631
1096
  <dl class="py method">
632
1097
  <dt class="sig sig-object py" id="snappy.DirichletDomain.manifold">
633
- <span class="sig-name descname"><span class="pre">manifold</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.manifold" title="Permalink to this definition">¶</a></dt>
1098
+ <span class="sig-name descname"><span class="pre">manifold</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.manifold" title="Link to this definition"></a></dt>
634
1099
  <dd><p>Returns a Manifold computed directly from the Dirichlet
635
1100
  domain, regarded as polyhedron with faces identified in pairs.
636
1101
  Only works if this gives a manifold not an orbifold.</p>
@@ -645,43 +1110,43 @@ Only works if this gives a manifold not an orbifold.</p>
645
1110
 
646
1111
  <dl class="py method">
647
1112
  <dt class="sig sig-object py" id="snappy.DirichletDomain.num_edges">
648
- <span class="sig-name descname"><span class="pre">num_edges</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_edges" title="Permalink to this definition">¶</a></dt>
1113
+ <span class="sig-name descname"><span class="pre">num_edges</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_edges" title="Link to this definition"></a></dt>
649
1114
  <dd><p>Return the number of edges.</p>
650
1115
  </dd></dl>
651
1116
 
652
1117
  <dl class="py method">
653
1118
  <dt class="sig sig-object py" id="snappy.DirichletDomain.num_faces">
654
- <span class="sig-name descname"><span class="pre">num_faces</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_faces" title="Permalink to this definition">¶</a></dt>
1119
+ <span class="sig-name descname"><span class="pre">num_faces</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_faces" title="Link to this definition"></a></dt>
655
1120
  <dd><p>Return the number of faces.</p>
656
1121
  </dd></dl>
657
1122
 
658
1123
  <dl class="py method">
659
1124
  <dt class="sig sig-object py" id="snappy.DirichletDomain.num_finite_vertices">
660
- <span class="sig-name descname"><span class="pre">num_finite_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_finite_vertices" title="Permalink to this definition">¶</a></dt>
1125
+ <span class="sig-name descname"><span class="pre">num_finite_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_finite_vertices" title="Link to this definition"></a></dt>
661
1126
  <dd><p>Return the number of finite (non-ideal) vertices.</p>
662
1127
  </dd></dl>
663
1128
 
664
1129
  <dl class="py method">
665
1130
  <dt class="sig sig-object py" id="snappy.DirichletDomain.num_ideal_vertices">
666
- <span class="sig-name descname"><span class="pre">num_ideal_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_ideal_vertices" title="Permalink to this definition">¶</a></dt>
1131
+ <span class="sig-name descname"><span class="pre">num_ideal_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_ideal_vertices" title="Link to this definition"></a></dt>
667
1132
  <dd><p>Return the number of ideal vertices.</p>
668
1133
  </dd></dl>
669
1134
 
670
1135
  <dl class="py method">
671
1136
  <dt class="sig sig-object py" id="snappy.DirichletDomain.num_vertices">
672
- <span class="sig-name descname"><span class="pre">num_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_vertices" title="Permalink to this definition">¶</a></dt>
1137
+ <span class="sig-name descname"><span class="pre">num_vertices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.num_vertices" title="Link to this definition"></a></dt>
673
1138
  <dd><p>Return the number of vertices.</p>
674
1139
  </dd></dl>
675
1140
 
676
1141
  <dl class="py method">
677
1142
  <dt class="sig sig-object py" id="snappy.DirichletDomain.out_radius">
678
- <span class="sig-name descname"><span class="pre">out_radius</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.out_radius" title="Permalink to this definition">¶</a></dt>
1143
+ <span class="sig-name descname"><span class="pre">out_radius</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.out_radius" title="Link to this definition"></a></dt>
679
1144
  <dd><p>Return the radius of the smallest circubscribed sphere.</p>
680
1145
  </dd></dl>
681
1146
 
682
1147
  <dl class="py method">
683
1148
  <dt class="sig sig-object py" id="snappy.DirichletDomain.pairing_matrices">
684
- <span class="sig-name descname"><span class="pre">pairing_matrices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.pairing_matrices" title="Permalink to this definition">¶</a></dt>
1149
+ <span class="sig-name descname"><span class="pre">pairing_matrices</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.pairing_matrices" title="Link to this definition"></a></dt>
685
1150
  <dd><p>Returns a list of the O31Matrices which pair the faces of
686
1151
  this DirichletDomain.</p>
687
1152
  <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;s345&#39;</span><span class="p">)</span>
@@ -695,9 +1160,24 @@ this DirichletDomain.</p>
695
1160
  </div>
696
1161
  </dd></dl>
697
1162
 
1163
+ <dl class="py method">
1164
+ <dt class="sig sig-object py" id="snappy.DirichletDomain.pairing_words">
1165
+ <span class="sig-name descname"><span class="pre">pairing_words</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.pairing_words" title="Link to this definition"></a></dt>
1166
+ <dd><p>Group elements which pair the faces of this DirichletDomain
1167
+ as words in the original generators:</p>
1168
+ <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>
1169
+ <span class="gp">&gt;&gt;&gt; </span><span class="n">D</span> <span class="o">=</span> <span class="n">M</span><span class="o">.</span><span class="n">dirichlet_domain</span><span class="p">(</span><span class="n">include_words</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
1170
+ <span class="gp">&gt;&gt;&gt; </span><span class="nb">sorted</span><span class="p">(</span><span class="n">D</span><span class="o">.</span><span class="n">pairing_words</span><span class="p">())</span>
1171
+ <span class="go">[&#39;A&#39;, ...]</span>
1172
+ </pre></div>
1173
+ </div>
1174
+ <p>Requires that DirichletDomain was computed with
1175
+ include_words = True.</p>
1176
+ </dd></dl>
1177
+
698
1178
  <dl class="py method">
699
1179
  <dt class="sig sig-object py" id="snappy.DirichletDomain.save">
700
- <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">filename</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.save" title="Permalink to this definition">¶</a></dt>
1180
+ <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">filename</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.save" title="Link to this definition"></a></dt>
701
1181
  <dd><p>Save the Dirichlet domain as a text file in “% Generators” format.</p>
702
1182
  <div class="doctest 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.number</span> <span class="kn">import</span> <span class="n">Number</span>
703
1183
  <span class="gp">&gt;&gt;&gt; </span><span class="n">acc</span><span class="p">,</span> <span class="n">Number</span><span class="o">.</span><span class="n">_accuracy_for_testing</span> <span class="o">=</span> <span class="n">Number</span><span class="o">.</span><span class="n">_accuracy_for_testing</span><span class="p">,</span> <span class="kc">None</span>
@@ -720,14 +1200,14 @@ this DirichletDomain.</p>
720
1200
 
721
1201
  <dl class="py method">
722
1202
  <dt class="sig sig-object py" id="snappy.DirichletDomain.spine_radius">
723
- <span class="sig-name descname"><span class="pre">spine_radius</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.spine_radius" title="Permalink to this definition">¶</a></dt>
724
- <dd><p>Return the infimum of the radii (measured from the origin) of all
1203
+ <span class="sig-name descname"><span class="pre">spine_radius</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.spine_radius" title="Link to this definition"></a></dt>
1204
+ <dd><p>Return the infimum of the radii (measured from the origin) of all
725
1205
  spines dual to the Dirichlet domain.</p>
726
1206
  </dd></dl>
727
1207
 
728
1208
  <dl class="py method">
729
1209
  <dt class="sig sig-object py" id="snappy.DirichletDomain.triangulation">
730
- <span class="sig-name descname"><span class="pre">triangulation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.triangulation" title="Permalink to this definition">¶</a></dt>
1210
+ <span class="sig-name descname"><span class="pre">triangulation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.triangulation" title="Link to this definition"></a></dt>
731
1211
  <dd><p>Returns a Triangulation computed directly from the Dirichlet
732
1212
  domain, regarded as polyhedron with faces identified in pairs.
733
1213
  Only works if this gives a manifold not an orbifold.</p>
@@ -740,14 +1220,9 @@ Only works if this gives a manifold not an orbifold.</p>
740
1220
  </div>
741
1221
  </dd></dl>
742
1222
 
743
- <dl class="py method">
744
- <dt class="sig sig-object py" id="snappy.DirichletDomain.use_field_conversion">
745
- <span class="sig-name descname"><span class="pre">use_field_conversion</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type</span> <span class="pre">cls</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.use_field_conversion" title="Permalink to this definition">¶</a></dt>
746
- <dd></dd></dl>
747
-
748
1223
  <dl class="py method">
749
1224
  <dt class="sig sig-object py" id="snappy.DirichletDomain.vertex_list">
750
- <span class="sig-name descname"><span class="pre">vertex_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">details</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.DirichletDomain.vertex_list" title="Permalink to this definition">¶</a></dt>
1225
+ <span class="sig-name descname"><span class="pre">vertex_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">details</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.DirichletDomain.vertex_list" title="Link to this definition"></a></dt>
751
1226
  <dd><p>Return a list of the coordinates of the vertices. These are
752
1227
  the three space coordinates of a point in the time=1 slice of
753
1228
  Minkowski space. That is to say, these are the coordinates of
@@ -760,14 +1235,9 @@ to is the value for ‘vertex_class’. The value for ‘ideal’
760
1235
  is True if the vertex is an ideal point.</p>
761
1236
  </dd></dl>
762
1237
 
763
- <dl class="py method">
764
- <dt class="sig sig-object py" id="snappy.DirichletDomain.view">
765
- <span class="sig-name descname"><span class="pre">view</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.view" title="Permalink to this definition">¶</a></dt>
766
- <dd></dd></dl>
767
-
768
1238
  <dl class="py method">
769
1239
  <dt class="sig sig-object py" id="snappy.DirichletDomain.volume">
770
- <span class="sig-name descname"><span class="pre">volume</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.volume" title="Permalink to this definition">¶</a></dt>
1240
+ <span class="sig-name descname"><span class="pre">volume</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.DirichletDomain.volume" title="Link to this definition"></a></dt>
771
1241
  <dd><p>Returns the approximate volume of the DirichletDomain.
772
1242
  Because matrices in O(3,1) tend to accumulate roundoff error,
773
1243
  it’s hard to get a good bound on the accuracy of the computed
@@ -780,16 +1250,16 @@ manifolds defined by a set of generators.</p>
780
1250
 
781
1251
  </section>
782
1252
  <section id="cuspneighborhood">
783
- <h2>CuspNeighborhood<a class="headerlink" href="#cuspneighborhood" title="Permalink to this headline">¶</a></h2>
1253
+ <h2>CuspNeighborhood<a class="headerlink" href="#cuspneighborhood" title="Link to this heading"></a></h2>
784
1254
  <dl class="py class">
785
1255
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood">
786
- <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">CuspNeighborhood</span></span><a class="headerlink" href="#snappy.CuspNeighborhood" title="Permalink to this definition">¶</a></dt>
1256
+ <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">CuspNeighborhood</span></span><a class="headerlink" href="#snappy.CuspNeighborhood" title="Link to this definition"></a></dt>
787
1257
  <dd><p>A CuspNeighborhood object represents an equivariant collection of
788
1258
  disjoint horoballs that project to cusp neighborhoods.</p>
789
1259
  <p>Instantiate as M.cusp_neighborhood()</p>
790
1260
  <dl class="py method">
791
1261
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.Ford_domain">
792
- <span class="sig-name descname"><span class="pre">Ford_domain</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">high_precision</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.CuspNeighborhood.Ford_domain" title="Permalink to this definition">¶</a></dt>
1262
+ <span class="sig-name descname"><span class="pre">Ford_domain</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">high_precision</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.CuspNeighborhood.Ford_domain" title="Link to this definition"></a></dt>
793
1263
  <dd><p>Return a list of pairs of complex numbers describing the
794
1264
  endpoints of the segments obtained by projecting the edges of
795
1265
  the Ford domain to the xy-plane in the upper half space model.</p>
@@ -800,7 +1270,7 @@ SnapPy Numbers.</p>
800
1270
 
801
1271
  <dl class="py method">
802
1272
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.all_translations">
803
- <span class="sig-name descname"><span class="pre">all_translations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verified</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">bits_prec</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.CuspNeighborhood.all_translations" title="Permalink to this definition">¶</a></dt>
1273
+ <span class="sig-name descname"><span class="pre">all_translations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">verified</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">bits_prec</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.CuspNeighborhood.all_translations" title="Link to this definition"></a></dt>
804
1274
  <dd><p>Returns the (complex) Euclidean translations of the meridian
805
1275
  and longitude for each cusp measured with respect to the cusp neighborhood.</p>
806
1276
  <p>The result is a list of pairs, the second entry corresponding to a
@@ -855,13 +1325,13 @@ that they are disjoint.</p>
855
1325
 
856
1326
  <dl class="py method">
857
1327
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.check_index">
858
- <span class="sig-name descname"><span class="pre">check_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.check_index" title="Permalink to this definition">¶</a></dt>
1328
+ <span class="sig-name descname"><span class="pre">check_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.check_index" title="Link to this definition"></a></dt>
859
1329
  <dd><p>Raises an IndexError if the cusp index is invalid.</p>
860
1330
  </dd></dl>
861
1331
 
862
1332
  <dl class="py method">
863
1333
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.get_displacement">
864
- <span class="sig-name descname"><span class="pre">get_displacement</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.get_displacement" title="Permalink to this definition">¶</a></dt>
1334
+ <span class="sig-name descname"><span class="pre">get_displacement</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.get_displacement" title="Link to this definition"></a></dt>
865
1335
  <dd><p>Return the displacement of the horospherical boundary of the
866
1336
  specified cusp. The displacement is the hyperbolic distance
867
1337
  that the horospherical boundary has been displaced from its
@@ -873,14 +1343,14 @@ displacement 0.)</p>
873
1343
 
874
1344
  <dl class="py method">
875
1345
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.get_tie">
876
- <span class="sig-name descname"><span class="pre">get_tie</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.get_tie" title="Permalink to this definition">¶</a></dt>
877
- <dd><p>Return True if the specified cusp is a member of the tied group.
1346
+ <span class="sig-name descname"><span class="pre">get_tie</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.get_tie" title="Link to this definition"></a></dt>
1347
+ <dd><p>Return True if the specified cusp is a member of the tied group.
878
1348
  The displacements of the tied cusps are all the same.</p>
879
1349
  </dd></dl>
880
1350
 
881
1351
  <dl class="py method">
882
1352
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.horoballs">
883
- <span class="sig-name descname"><span class="pre">horoballs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cutoff</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">full_list</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">high_precision</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.CuspNeighborhood.horoballs" title="Permalink to this definition">¶</a></dt>
1353
+ <span class="sig-name descname"><span class="pre">horoballs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cutoff</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">full_list</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">high_precision</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.CuspNeighborhood.horoballs" title="Link to this definition"></a></dt>
884
1354
  <dd><p>Return a list of dictionaries describing the horoballs with
885
1355
  height at least cutoff. The keys are ‘center’, ‘radius’, ‘index’.</p>
886
1356
  <p>If the high_precision flag is set to the default value False, these
@@ -889,31 +1359,31 @@ are Python complexes and floats. Otherwise they are SnapPy Numbers.</p>
889
1359
 
890
1360
  <dl class="py method">
891
1361
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.manifold">
892
- <span class="sig-name descname"><span class="pre">manifold</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.manifold" title="Permalink to this definition">¶</a></dt>
1362
+ <span class="sig-name descname"><span class="pre">manifold</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.manifold" title="Link to this definition"></a></dt>
893
1363
  <dd><p>Return a Manifold built from the current canonical triangulation.</p>
894
1364
  </dd></dl>
895
1365
 
896
1366
  <dl class="py method">
897
1367
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.max_reach">
898
- <span class="sig-name descname"><span class="pre">max_reach</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.max_reach" title="Permalink to this definition">¶</a></dt>
1368
+ <span class="sig-name descname"><span class="pre">max_reach</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.max_reach" title="Link to this definition"></a></dt>
899
1369
  <dd><p>Return the maximum reach over all cusps.</p>
900
1370
  </dd></dl>
901
1371
 
902
1372
  <dl class="py method">
903
1373
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.num_cusps">
904
- <span class="sig-name descname"><span class="pre">num_cusps</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.num_cusps" title="Permalink to this definition">¶</a></dt>
1374
+ <span class="sig-name descname"><span class="pre">num_cusps</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.num_cusps" title="Link to this definition"></a></dt>
905
1375
  <dd><p>Return the number of cusps.</p>
906
1376
  </dd></dl>
907
1377
 
908
1378
  <dl class="py method">
909
1379
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.original_index">
910
- <span class="sig-name descname"><span class="pre">original_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.original_index" title="Permalink to this definition">¶</a></dt>
1380
+ <span class="sig-name descname"><span class="pre">original_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.original_index" title="Link to this definition"></a></dt>
911
1381
  <dd><p>Returns the index by which the Manifold identifies this cusp.</p>
912
1382
  </dd></dl>
913
1383
 
914
1384
  <dl class="py method">
915
1385
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.reach">
916
- <span class="sig-name descname"><span class="pre">reach</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.reach" title="Permalink to this definition">¶</a></dt>
1386
+ <span class="sig-name descname"><span class="pre">reach</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.reach" title="Link to this definition"></a></dt>
917
1387
  <dd><p>Return the displacement at which the specified cusp
918
1388
  neighborhood bumps into itself. (This is twice the
919
1389
  distance between nearest horoball lifts.)</p>
@@ -921,19 +1391,19 @@ distance between nearest horoball lifts.)</p>
921
1391
 
922
1392
  <dl class="py method">
923
1393
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.set_displacement">
924
- <span class="sig-name descname"><span class="pre">set_displacement</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_displacement</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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.set_displacement" title="Permalink to this definition">¶</a></dt>
1394
+ <span class="sig-name descname"><span class="pre">set_displacement</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_displacement</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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.set_displacement" title="Link to this definition"></a></dt>
925
1395
  <dd><p>Set the displacement of the specified cusp.</p>
926
1396
  </dd></dl>
927
1397
 
928
1398
  <dl class="py method">
929
1399
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.set_tie">
930
- <span class="sig-name descname"><span class="pre">set_tie</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_tie</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.set_tie" title="Permalink to this definition">¶</a></dt>
1400
+ <span class="sig-name descname"><span class="pre">set_tie</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_tie</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.set_tie" title="Link to this definition"></a></dt>
931
1401
  <dd><p>Mark the specified cusp as a member of the tied group.</p>
932
1402
  </dd></dl>
933
1403
 
934
1404
  <dl class="py method">
935
1405
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.stopper">
936
- <span class="sig-name descname"><span class="pre">stopper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.stopper" title="Permalink to this definition">¶</a></dt>
1406
+ <span class="sig-name descname"><span class="pre">stopper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">which_cusp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.stopper" title="Link to this definition"></a></dt>
937
1407
  <dd><p>Return the index of the cusp which will be the first one that
938
1408
  the specified cusp neighborhood bumps into.
939
1409
  (Assumes the other displacements are fixed.)</p>
@@ -941,7 +1411,7 @@ the specified cusp neighborhood bumps into.
941
1411
 
942
1412
  <dl class="py method">
943
1413
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.stopping_displacement">
944
- <span class="sig-name descname"><span class="pre">stopping_displacement</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.stopping_displacement" title="Permalink to this definition">¶</a></dt>
1414
+ <span class="sig-name descname"><span class="pre">stopping_displacement</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.stopping_displacement" title="Link to this definition"></a></dt>
945
1415
  <dd><p>Return the displacement at which the specified cusp
946
1416
  neighborhood bumps into itself or another cusp neighborhood.
947
1417
  (Assumes the other displacements are fixed.)</p>
@@ -949,13 +1419,13 @@ neighborhood bumps into itself or another cusp neighborhood.
949
1419
 
950
1420
  <dl class="py method">
951
1421
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.topology">
952
- <span class="sig-name descname"><span class="pre">topology</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.topology" title="Permalink to this definition">¶</a></dt>
1422
+ <span class="sig-name descname"><span class="pre">topology</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.topology" title="Link to this definition"></a></dt>
953
1423
  <dd><p>Return the topological type of the specified cusp.</p>
954
1424
  </dd></dl>
955
1425
 
956
1426
  <dl class="py method">
957
1427
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.translations">
958
- <span class="sig-name descname"><span class="pre">translations</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.translations" title="Permalink to this definition">¶</a></dt>
1428
+ <span class="sig-name descname"><span class="pre">translations</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.translations" title="Link to this definition"></a></dt>
959
1429
  <dd><p>Return the (complex) Euclidean translations of the meridian
960
1430
  and longitude of the specified cusp.</p>
961
1431
  <p>Also see <a class="reference internal" href="#snappy.CuspNeighborhood.all_translations" title="snappy.CuspNeighborhood.all_translations"><code class="xref py py-meth docutils literal notranslate"><span class="pre">CuspNeighborhood.all_translations()</span></code></a> which supports
@@ -964,21 +1434,16 @@ arbitrary precision and verified results.</p>
964
1434
 
965
1435
  <dl class="py method">
966
1436
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.triangulation">
967
- <span class="sig-name descname"><span class="pre">triangulation</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">high_precision</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.CuspNeighborhood.triangulation" title="Permalink to this definition">¶</a></dt>
1437
+ <span class="sig-name descname"><span class="pre">triangulation</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">high_precision</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.CuspNeighborhood.triangulation" title="Link to this definition"></a></dt>
968
1438
  <dd><p>Return a list of dictionaries describing the endpoints of the
969
1439
  segments obtained by projecting the edges of the triangulation
970
1440
  dual to the Ford domain into the xy-plane in the upper half
971
1441
  space model. The keys are ‘endpoints’ and ‘indices’.</p>
972
1442
  </dd></dl>
973
1443
 
974
- <dl class="py method">
975
- <dt class="sig sig-object py" id="snappy.CuspNeighborhood.use_field_conversion">
976
- <span class="sig-name descname"><span class="pre">use_field_conversion</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type</span> <span class="pre">cls</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.use_field_conversion" title="Permalink to this definition">¶</a></dt>
977
- <dd></dd></dl>
978
-
979
1444
  <dl class="py method">
980
1445
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.view">
981
- <span class="sig-name descname"><span class="pre">view</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutoff</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.CuspNeighborhood.view" title="Permalink to this definition">¶</a></dt>
1446
+ <span class="sig-name descname"><span class="pre">view</span></span><span class="sig-paren">(</span><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">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cutoff</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.CuspNeighborhood.view" title="Link to this definition"></a></dt>
982
1447
  <dd><p>Create a 3D picture of the horoball packing. One can specify
983
1448
  which cusp to put at infinity and how large of horoballs to
984
1449
  look at, e.g.</p>
@@ -991,7 +1456,7 @@ look at, e.g.</p>
991
1456
 
992
1457
  <dl class="py method">
993
1458
  <dt class="sig sig-object py" id="snappy.CuspNeighborhood.volume">
994
- <span class="sig-name descname"><span class="pre">volume</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.volume" title="Permalink to this definition">¶</a></dt>
1459
+ <span class="sig-name descname"><span class="pre">volume</span></span><span class="sig-paren">(</span><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">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#snappy.CuspNeighborhood.volume" title="Link to this definition"></a></dt>
995
1460
  <dd><p>Return the volume of the horoball neighborhood of the specified
996
1461
  cusp.</p>
997
1462
  </dd></dl>
@@ -1002,74 +1467,34 @@ cusp.</p>
1002
1467
  </section>
1003
1468
 
1004
1469
 
1005
- <div class="clearer"></div>
1470
+ </div>
1006
1471
  </div>
1007
- </div>
1008
- </div>
1009
- <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
1010
- <div class="sphinxsidebarwrapper">
1011
- <h3><a href="index.html">Table of Contents</a></h3>
1012
- <ul>
1013
- <li><a class="reference internal" href="#">Additional Classes</a><ul>
1014
- <li><a class="reference internal" href="#abeliangroup">AbelianGroup</a></li>
1015
- <li><a class="reference internal" href="#fundamentalgroup">FundamentalGroup</a></li>
1016
- <li><a class="reference internal" href="#symmetrygroup">SymmetryGroup</a></li>
1017
- <li><a class="reference internal" href="#dirichletdomain">DirichletDomain</a></li>
1018
- <li><a class="reference internal" href="#cuspneighborhood">CuspNeighborhood</a></li>
1019
- </ul>
1020
- </li>
1021
- </ul>
1022
-
1023
- <h4>Previous topic</h4>
1024
- <p class="topless"><a href="triangulation.html"
1025
- title="previous chapter">Triangulation</a></p>
1026
- <h4>Next topic</h4>
1027
- <p class="topless"><a href="censuses.html"
1028
- title="next chapter">Census manifolds</a></p>
1029
- <div role="note" aria-label="source link">
1030
- <h3>This Page</h3>
1031
- <ul class="this-page-menu">
1032
- <li><a href="_sources/additional_classes.rst.txt"
1033
- rel="nofollow">Show Source</a></li>
1034
- </ul>
1035
- </div>
1036
- <div id="searchbox" style="display: none" role="search">
1037
- <h3 id="searchlabel">Quick search</h3>
1038
- <div class="searchformwrapper">
1039
- <form class="search" action="search.html" method="get">
1040
- <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
1041
- <input type="submit" value="Go" />
1042
- </form>
1472
+ <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
1473
+ <a href="triangulation.html" class="btn btn-neutral float-left" title="Triangulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
1474
+ <a href="censuses.html" class="btn btn-neutral float-right" title="Census manifolds" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
1043
1475
  </div>
1044
- </div>
1045
- <script>$('#searchbox').show(0);</script>
1476
+
1477
+ <hr/>
1478
+
1479
+ <div role="contentinfo">
1480
+ <p>&#169; Copyright 2009-2025, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.</p>
1481
+ </div>
1482
+
1483
+ Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
1484
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
1485
+ provided by <a href="https://readthedocs.org">Read the Docs</a>.
1486
+
1487
+
1488
+ </footer>
1046
1489
  </div>
1047
1490
  </div>
1048
- <div class="clearer"></div>
1049
- </div>
1050
- <div class="related" role="navigation" aria-label="related navigation">
1051
- <h3>Navigation</h3>
1052
- <ul>
1053
- <li class="right" style="margin-right: 10px">
1054
- <a href="genindex.html" title="General Index"
1055
- >index</a></li>
1056
- <li class="right" >
1057
- <a href="py-modindex.html" title="Python Module Index"
1058
- >modules</a> |</li>
1059
- <li class="right" >
1060
- <a href="censuses.html" title="Census manifolds"
1061
- >next</a> |</li>
1062
- <li class="right" >
1063
- <a href="triangulation.html" title="Triangulation"
1064
- >previous</a> |</li>
1065
- <li class="nav-item nav-item-0"><a href="index.html">SnapPy 3.0.3 documentation</a> &#187;</li>
1066
- <li class="nav-item nav-item-1"><a href="snappy.html" >The snappy module and its classes</a> &#187;</li>
1067
- <li class="nav-item nav-item-this"><a href="">Additional Classes</a></li>
1068
- </ul>
1069
- </div>
1070
- <div class="footer" role="contentinfo">
1071
- &#169; Copyright 2009-2021, by Marc Culler, Nathan Dunfield, Matthias Goerner, Jeffrey Weeks and others.
1072
- Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.3.1.
1073
- </div>
1074
- </body>
1491
+ </section>
1492
+ </div>
1493
+ <script>
1494
+ jQuery(function () {
1495
+ SphinxRtdTheme.Navigation.enable(true);
1496
+ });
1497
+ </script>
1498
+
1499
+ </body>
1075
1500
  </html>