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
@@ -34,9 +34,7 @@ The hierarchy is as follows:
34
34
 
35
35
  - CuspEquationExactVerifyError
36
36
  - CuspEquationLogLiftNumericalVerifyError
37
- - CuspDevelopmentType
38
37
 
39
- - CuspDevelopmentTypeExactVerifyError
40
38
  - TiltType
41
39
 
42
40
  - TiltInequalityNumericalVerifyError
@@ -46,16 +44,15 @@ The hierarchy is as follows:
46
44
  - ShapeType
47
45
 
48
46
  - ShapePositiveImaginaryPartNumericalVerifyError
49
- - ConsistencyWithSnapPeaType
50
-
51
- - ConsistencyWithSnapPeaNumericalVerifyError
52
47
  """
53
48
 
49
+
54
50
  class VerifyErrorBase(RuntimeError):
55
51
  """
56
52
  The base for all exceptions related to verification.
57
53
  """
58
54
 
55
+
59
56
  class NumericalVerifyError(VerifyErrorBase):
60
57
  """
61
58
  The base for all exceptions resulting from a failed numerical
@@ -63,12 +60,14 @@ class NumericalVerifyError(VerifyErrorBase):
63
60
  (typically by interval arithmetics).
64
61
  """
65
62
 
63
+
66
64
  class InequalityNumericalVerifyError(NumericalVerifyError):
67
65
  """
68
66
  The base for all exceptions resulting from a failed numerical
69
67
  verification of an inequality (typically by interval arithmetics).
70
68
  """
71
69
 
70
+
72
71
  class LogLiftNumericalVerifyError(NumericalVerifyError):
73
72
  """
74
73
  To verify a logarithmic gluing equation, the verify module will usually
@@ -84,29 +83,34 @@ class LogLiftNumericalVerifyError(NumericalVerifyError):
84
83
  failed.
85
84
  """
86
85
 
86
+
87
87
  class ExactVerifyError(VerifyErrorBase):
88
88
  """
89
89
  The base for all exceptions resulting from a failed verification of an
90
90
  equation using exact arithmetics.
91
91
  """
92
92
 
93
+
93
94
  class IsZeroExactVerifyError(VerifyErrorBase):
94
95
  """
95
96
  The base for all exceptions resulting from verifying that a desired
96
97
  quantity is zero using exact arithmetics.
97
98
  """
98
99
 
99
- class EquationType(object):
100
+
101
+ class EquationType():
100
102
  """
101
103
  A base class to derive subclasses which indicate what kind of
102
104
  equation failed to be verified.
103
105
  """
104
106
 
107
+
105
108
  class EdgeEquationType(EquationType):
106
109
  """
107
110
  A base class indicating that an edge equation could not be verified.
108
111
  """
109
112
 
113
+
110
114
  class EdgeEquationExactVerifyError(ExactVerifyError,
111
115
  EdgeEquationType):
112
116
  """
@@ -116,11 +120,12 @@ class EdgeEquationExactVerifyError(ExactVerifyError,
116
120
 
117
121
  def __init__(self, value):
118
122
  self.value = value
119
-
123
+
120
124
  def __str__(self):
121
125
  return ('Verification of a polynomial edge equation using exact '
122
126
  'arithmetic failed: %r == 1' % self.value)
123
127
 
128
+
124
129
  class EdgeEquationLogLiftNumericalVerifyError(LogLiftNumericalVerifyError,
125
130
  EdgeEquationType):
126
131
  """
@@ -129,23 +134,26 @@ class EdgeEquationLogLiftNumericalVerifyError(LogLiftNumericalVerifyError,
129
134
  """
130
135
  def __init__(self, value):
131
136
  self.value = value
132
-
137
+
133
138
  def __str__(self):
134
139
  return ('Numerical verification that logarthmic edge equation has '
135
140
  'small error failed: %r == 2 Pi I' % self.value)
136
141
 
142
+
137
143
  class CuspConsistencyType(EquationType):
138
144
  """
139
145
  A base class indicating that verificatin of an equation involving a cusp
140
146
  failed.
141
147
  """
142
148
 
149
+
143
150
  class CuspEquationType(CuspConsistencyType):
144
151
  """
145
152
  A base class indicating that a cusp gluing equation (involving the
146
153
  shapes) failed.
147
154
  """
148
155
 
156
+
149
157
  class CuspEquationExactVerifyError(ExactVerifyError,
150
158
  CuspEquationType):
151
159
  """
@@ -155,11 +163,12 @@ class CuspEquationExactVerifyError(ExactVerifyError,
155
163
 
156
164
  def __init__(self, value, expected_value):
157
165
  self.value = value
158
-
166
+
159
167
  def __str__(self):
160
168
  return ('Verification of a polynomial cusp equation using exact '
161
169
  'arithmetic failed: %r == 1' % self.value)
162
170
 
171
+
163
172
  class CuspEquationLogLiftNumericalVerifyError(LogLiftNumericalVerifyError,
164
173
  CuspEquationType):
165
174
  """
@@ -169,42 +178,19 @@ class CuspEquationLogLiftNumericalVerifyError(LogLiftNumericalVerifyError,
169
178
  def __init__(self, value, expected_value):
170
179
  self.value = value
171
180
  self.expected_value = expected_value
172
-
181
+
173
182
  def __str__(self):
174
183
  return ('Numerical verification that logarthmic cusp equation has '
175
184
  'small error failed: '
176
185
  '%r == %r' % (self.value, self.expected_value))
177
186
 
178
187
 
179
- class CuspDevelopmentType(CuspConsistencyType):
180
- """
181
- A base class indicating that there was a failure to find a consistent
182
- assignment of side lengths to the Euclidean Horotriangles to form a
183
- Euclidean Horotorus for a cusp.
184
- """
185
-
186
- class CuspDevelopmentExactVerifyError(ExactVerifyError,
187
- CuspDevelopmentType):
188
- """
189
- Raised when finding a consistent assignment of side lengths to the
190
- Euclidean Horotriangles to form a Euclidean Horotorus for a cusp failed
191
- using exact arithmetic.
192
- """
193
-
194
- def __init__(self, value1, value2):
195
- self.value1 = value1
196
- self.value2 = value2
197
-
198
- def __str__(self):
199
- return ('Inconsistency in the side lengths of the Euclidean '
200
- 'Horotriangles for a cusp: '
201
- '%r = %r' % (self.value1, self.value2))
202
-
203
188
  class TiltType(EquationType):
204
189
  """
205
190
  A base class relating to tilts.
206
191
  """
207
192
 
193
+
208
194
  class TiltInequalityNumericalVerifyError(InequalityNumericalVerifyError,
209
195
  TiltType):
210
196
  """
@@ -233,6 +219,7 @@ class TiltProvenPositiveNumericalVerifyError(
233
219
  'failed, tilt is actually positive. This is provably '
234
220
  'not the proto-canonical triangulation: %r <= 0' % self.value)
235
221
 
222
+
236
223
  class TiltIsZeroExactVerifyError(IsZeroExactVerifyError,
237
224
  TiltType):
238
225
  """
@@ -245,11 +232,13 @@ class TiltIsZeroExactVerifyError(IsZeroExactVerifyError,
245
232
  return ('Verification that tilt is zero has failed using exact '
246
233
  'arithmetic: %r == 0' % self.value)
247
234
 
235
+
248
236
  class ShapeType(EquationType):
249
237
  """
250
238
  Base class for failed verification of legal shapes.
251
239
  """
252
240
 
241
+
253
242
  class ShapePositiveImaginaryPartNumericalVerifyError(
254
243
  InequalityNumericalVerifyError,
255
244
  ShapeType):
@@ -263,25 +252,3 @@ class ShapePositiveImaginaryPartNumericalVerifyError(
263
252
  return ('Numerical verification that shape has positive imaginary '
264
253
  'part has failed: Im(%r) > 0' % self.value)
265
254
 
266
- class ConsistencyWithSnapPeaType(EquationType):
267
- """
268
- A base class for exceptions raised when there is a difference
269
- between the values computed by the SnapPea kernel and by this module
270
- for a given quantity.
271
- """
272
-
273
- class ConsistencyWithSnapPeaNumericalVerifyError(
274
- NumericalVerifyError,
275
- ConsistencyWithSnapPeaType):
276
- """
277
- Exception raised when there is a significant numerical difference
278
- between the values computed by the SnapPea kernel and by this module
279
- for a given quantity.
280
- """
281
- def __init__(self, value, snappea_value):
282
- self.value = value
283
- self.snappea_value = snappea_value
284
-
285
- def __str__(self):
286
- return ('Inconsistency between SnapPea kernel and verify: '
287
- '%r == %r' % (self.snappea_value, self.value))
@@ -7,13 +7,15 @@ __all__ = [
7
7
  'verify_hyperbolicity' ]
8
8
 
9
9
  if _within_sage:
10
- from sage.all import pi
11
- import sage.all
10
+ from sage.symbolic.constants import pi
11
+ from ..sage_helper import I
12
+
12
13
 
13
14
  class FalseTuple(tuple):
14
15
  def __nonzero__(self):
15
16
  return False
16
17
 
18
+
17
19
  class NonIntegralFillingsError(RuntimeError):
18
20
  """
19
21
  Exception raised when Manifold has non-integral fillings, e.g.,
@@ -25,10 +27,10 @@ class NonIntegralFillingsError(RuntimeError):
25
27
  def __str__(self):
26
28
  return ('Manifold has non-integral Dehn-filings: %s') % self.manifold
27
29
 
30
+
28
31
  @sage_method
29
32
  def check_logarithmic_gluing_equations_and_positively_oriented_tets(
30
33
  manifold, shape_intervals):
31
-
32
34
  """
33
35
  Given a SnapPy manifold manifold and complex intervals for the shapes
34
36
  shape_intervals that are certified to contain a solution to the
@@ -36,7 +38,7 @@ def check_logarithmic_gluing_equations_and_positively_oriented_tets(
36
38
  are also fulfilled and that all shapes have positive imaginary part.
37
39
  It will raise an exception if the verification fails.
38
40
  This is sufficient to prove that the manifold is indeed hyperbolic.
39
-
41
+
40
42
  Since the given interval are supposed to contain a true solution of
41
43
  the rectangular gluing equations, the logarithmic gluing equations
42
44
  are known to be fulfilled up to a multiple of 2 pi i. Thus it is enough
@@ -48,7 +50,7 @@ def check_logarithmic_gluing_equations_and_positively_oriented_tets(
48
50
  sage: M = Manifold("m019")
49
51
  sage: check_logarithmic_gluing_equations_and_positively_oriented_tets(
50
52
  ... M, M.tetrahedra_shapes('rect', intervals=True))
51
-
53
+
52
54
 
53
55
  The SnapPy triangulation of the following hyperbolic manifold contains
54
56
  actually negatively oriented tetrahedra::
@@ -59,7 +61,7 @@ def check_logarithmic_gluing_equations_and_positively_oriented_tets(
59
61
  Traceback (most recent call last):
60
62
  ...
61
63
  ShapePositiveImaginaryPartNumericalVerifyError: Numerical verification that shape has positive imaginary part has failed: Im(0.4800996900657? - 0.0019533695046?*I) > 0
62
-
64
+
63
65
 
64
66
  """
65
67
 
@@ -75,11 +77,11 @@ def check_logarithmic_gluing_equations_and_positively_oriented_tets(
75
77
  shape)
76
78
 
77
79
  # Compute the logarithms of z, z', z''
78
- logZ = [ z.log() for z in shape_intervals ]
79
- logZp = [ (1 / (1 - z)).log() for z in shape_intervals ]
80
+ logZ = [ z.log() for z in shape_intervals ]
81
+ logZp = [ (1 / (1 - z)).log() for z in shape_intervals ]
80
82
  logZpp = [ ((z - 1) / z).log() for z in shape_intervals ]
81
83
 
82
- # A list
84
+ # A list
83
85
  # log(z_0) log(z'_0) log(z''_0) log(z_1) log(z'_1) log (z''_1) ...
84
86
  logs = [ z for triple in zip(logZ, logZp, logZpp) for z in triple ]
85
87
 
@@ -101,7 +103,7 @@ def check_logarithmic_gluing_equations_and_positively_oriented_tets(
101
103
  CIF = shape_intervals[0].parent()
102
104
  RIF = CIF.real_field()
103
105
  # 2 pi i in that field
104
- two_pi_i = CIF(2 * pi * sage.all.I)
106
+ two_pi_i = CIF(2 * pi * I)
105
107
 
106
108
  # Index of the next gluing equation to check
107
109
  LHS_index = 0
@@ -113,7 +115,7 @@ def check_logarithmic_gluing_equations_and_positively_oriented_tets(
113
115
  raise exceptions.EdgeEquationLogLiftNumericalVerifyError(
114
116
  LHSs[LHS_index])
115
117
  LHS_index += 1
116
-
118
+
117
119
  # Then there are one, respectively, two equations per cusp
118
120
  for cusp_index in range(n_cusps):
119
121
 
@@ -134,11 +136,13 @@ def check_logarithmic_gluing_equations_and_positively_oriented_tets(
134
136
  # Advance to the next gluing equation
135
137
  LHS_index += 1
136
138
 
139
+
137
140
  @sage_method
138
- def verify_hyperbolicity(manifold, verbose = False, bits_prec = None,
139
- holonomy=False, fundamental_group_args = [], lift_to_SL=True):
141
+ def verify_hyperbolicity(manifold, verbose=False, bits_prec=None,
142
+ holonomy=False, fundamental_group_args=[], lift_to_SL=True):
140
143
  """
141
144
  Given an orientable SnapPy Manifold, verifies its hyperbolicity.
145
+
142
146
  Similar to HIKMOT's :py:meth:`verify_hyperbolicity`, the result is either
143
147
  ``(True, listOfShapeIntervals)`` or ``(False, [])`` if verification failed.
144
148
  ``listOfShapesIntervals`` is a list of complex intervals (elements in
@@ -151,7 +155,7 @@ def verify_hyperbolicity(manifold, verbose = False, bits_prec = None,
151
155
  sage: M = Manifold("m019")
152
156
  sage: M.verify_hyperbolicity() # doctest: +NUMERIC12
153
157
  (True, [0.780552527850? + 0.914473662967?*I, 0.780552527850? + 0.91447366296773?*I, 0.4600211755737? + 0.6326241936052?*I])
154
-
158
+
155
159
  sage: M = Manifold("t02333(3,4)")
156
160
  sage: M.verify_hyperbolicity() # doctest: +NUMERIC9
157
161
  (True, [2.152188153612? + 0.284940667895?*I, 1.92308491369? + 1.10360701507?*I, 0.014388591584? + 0.143084469681?*I, -2.5493670288? + 3.7453498408?*I, 0.142120333822? + 0.176540027036?*I, 0.504866865874? + 0.82829881681?*I, 0.50479249917? + 0.98036162786?*I, -0.589495705074? + 0.81267480427?*I])
@@ -197,7 +201,7 @@ def verify_hyperbolicity(manifold, verbose = False, bits_prec = None,
197
201
 
198
202
  try:
199
203
  shape_intervals = manifold.tetrahedra_shapes(
200
- 'rect', bits_prec = bits_prec, intervals = True)
204
+ 'rect', bits_prec=bits_prec, intervals=True)
201
205
  except (ValueError, RuntimeError):
202
206
  if verbose:
203
207
  print("Could not certify solution to rectangular gluing equations")