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,7 +1,9 @@
1
1
  from snappy.snap import t3mlite as t3m
2
2
  from snappy import Triangulation
3
3
 
4
- from snappy.SnapPy import matrix, vector
4
+ from ..matrix import make_matrix, make_vector
5
+
6
+ from ..upper_halfspace import pgl2c_to_o13
5
7
 
6
8
  # We could use
7
9
  #
@@ -13,14 +15,14 @@ from snappy.SnapPy import matrix, vector
13
15
  try:
14
16
  import sage.all
15
17
  _within_sage = True
16
- except:
18
+ except ImportError:
17
19
  _within_sage = False
18
20
  import decorator
19
21
 
20
22
  if _within_sage:
21
23
  from snappy.dev.vericlosed import compute_approx_hyperbolic_structure_orb
22
24
  from snappy.dev.vericlosed.polishApproxHyperbolicStructure import *
23
-
25
+
24
26
  from snappy.dev.vericlosed.truncatedComplex import *
25
27
 
26
28
  from .hyperboloid_utilities import *
@@ -29,14 +31,18 @@ from .raytracing_data import *
29
31
 
30
32
  __all__ = ['FiniteRaytracingData']
31
33
 
34
+
32
35
  class FiniteRaytracingData(RaytracingData):
33
36
  @staticmethod
34
- def from_triangulation(triangulation, weights = None):
37
+ def from_triangulation(triangulation, weights=None):
38
+
39
+ if not _within_sage:
40
+ raise Exception("Only supported within SageMath :(")
35
41
 
36
42
  hyperbolic_structure = compute_approx_hyperbolic_structure_orb(triangulation)
37
43
  hyperbolic_structure.pick_exact_and_var_edges()
38
44
  hyperbolic_structure = polish_approx_hyperbolic_structure(
39
- hyperbolic_structure, bits_prec = 212)
45
+ hyperbolic_structure, bits_prec=212)
40
46
 
41
47
  r = FiniteRaytracingData(hyperbolic_structure)
42
48
 
@@ -54,7 +60,7 @@ class FiniteRaytracingData(RaytracingData):
54
60
  return r
55
61
 
56
62
  def __init__(self, hyperbolic_structure):
57
- super(FiniteRaytracingData, self).__init__(
63
+ super().__init__(
58
64
  hyperbolic_structure.mcomplex)
59
65
 
60
66
  def _compute_matrices(self, hyperbolic_structure):
@@ -63,11 +69,11 @@ class FiniteRaytracingData(RaytracingData):
63
69
  hyperbolic_structure, tet.Index)
64
70
 
65
71
  def _compute_tet_vertices(self):
66
- c = vector(self.RF, [1, 0, 0, 0])
67
-
72
+ c = make_vector([1, 0, 0, 0], ring=self.RF)
73
+
68
74
  def _compute_vertex(tet, perm):
69
75
  m = tet.permutahedron_matrices[perm]
70
- return GL2C_to_O13(_adjoint(m)) * c
76
+ return pgl2c_to_o13(_adjoint(m)) * c
71
77
 
72
78
  for tet in self.mcomplex.Tetrahedra:
73
79
  tet.R13_vertices = {
@@ -77,12 +83,12 @@ class FiniteRaytracingData(RaytracingData):
77
83
  t3m.V3 : _compute_vertex(tet, (3,0,1,2)) }
78
84
 
79
85
  def _compute_edge_ends(self):
80
- cs = [ vector(self.RF,[1, 1, 0, 0]),
81
- vector(self.RF,[1, -1, 0, 0]) ]
86
+ cs = [ make_vector([1, 1, 0, 0], ring=self.RF),
87
+ make_vector([1, -1, 0, 0], ring=self.RF) ]
82
88
 
83
89
  def _compute_edge_ends(tet, perm):
84
90
  m = tet.permutahedron_matrices[perm]
85
- return [ GL2C_to_O13(_adjoint(m)) * c for c in cs ]
91
+ return [ pgl2c_to_o13(_adjoint(m)) * c for c in cs ]
86
92
 
87
93
  for tet in self.mcomplex.Tetrahedra:
88
94
  tet.R13_edge_ends = {
@@ -94,12 +100,12 @@ class FiniteRaytracingData(RaytracingData):
94
100
  t3m.E23 : _compute_edge_ends(tet, (2,3,0,1)) }
95
101
 
96
102
  def _compute_planes(self):
97
- c = vector(self.RF, [0.0, 0.0, 0.0, -1.0])
103
+ c = make_vector([0.0, 0.0, 0.0, -1.0], ring=self.RF)
98
104
 
99
105
  def _compute_plane(tet, perm):
100
106
  m = tet.permutahedron_matrices[perm]
101
- v = c * GL2C_to_O13(m)
102
- return vector([-v[0], v[1], v[2], v[3]])
107
+ v = c * pgl2c_to_o13(m)
108
+ return make_vector([-v[0], v[1], v[2], v[3]])
103
109
 
104
110
  for tet in self.mcomplex.Tetrahedra:
105
111
  tet.R13_planes = {
@@ -119,10 +125,10 @@ class FiniteRaytracingData(RaytracingData):
119
125
  for F in t3m.TwoSubsimplices:
120
126
  for V in t3m.ZeroSubsimplices:
121
127
  if V & F:
122
- v0 = tet.O13_matrices[F] * vector(tet.R13_vertices[V])
128
+ v0 = tet.O13_matrices[F] * make_vector(tet.R13_vertices[V])
123
129
  v1 = tet.Neighbor[F].R13_vertices[tet.Gluing[F].image(V)]
124
130
 
125
- if abs(R13_dot(v0, v1) - (-1.0)) > 1e-6:
131
+ if abs(r13_dot(v0, v1) - (-1.0)) > 1e-6:
126
132
  print("Inconsistency ", tet.Index, F)
127
133
  print(v0)
128
134
  print(v1)
@@ -130,7 +136,7 @@ class FiniteRaytracingData(RaytracingData):
130
136
  def get_uniform_bindings(self):
131
137
  # self._check_consistency()
132
138
 
133
- d = super(FiniteRaytracingData, self).get_uniform_bindings()
139
+ d = super().get_uniform_bindings()
134
140
  d['TetrahedraEdges.R13EdgeEnds'] = (
135
141
  'vec4[]',
136
142
  [ edge_end
@@ -147,69 +153,74 @@ class FiniteRaytracingData(RaytracingData):
147
153
  return d
148
154
 
149
155
  def get_compile_time_constants(self):
150
- d = super(FiniteRaytracingData, self).get_compile_time_constants()
156
+ d = super().get_compile_time_constants()
151
157
  d[b'##finiteTrig##'] = 1
152
158
  return d
153
159
 
154
160
  def initial_view_state(self):
155
- boost = matrix([[1.0,0.0,0.0,0.0],
156
- [0.0,1.0,0.0,0.0],
157
- [0.0,0.0,1.0,0.0],
158
- [0.0,0.0,0.0,1.0]])
161
+ boost = make_matrix([[1.0,0.0,0.0,0.0],
162
+ [0.0,1.0,0.0,0.0],
163
+ [0.0,0.0,1.0,0.0],
164
+ [0.0,0.0,0.0,1.0]])
159
165
  tet_num = 0
160
166
  weight = 0.0
161
167
  return (boost, tet_num, weight)
162
168
 
163
- ################################################################3
169
+ # 3
164
170
  #
165
171
  # Helpers
166
172
  #
167
173
 
174
+
168
175
  _face_to_perm = {
169
176
  t3m.F0: t3m.Perm4((1,3,2,0)),
170
177
  t3m.F1: t3m.Perm4((0,2,3,1)),
171
178
  t3m.F2: t3m.Perm4((0,3,1,2)),
172
179
  t3m.F3: t3m.Perm4((0,1,2,3))}
173
180
 
181
+
174
182
  def _compute_face_pairing(tet, F):
175
183
  tet_perm = _face_to_perm[F]
176
184
  m = tet.permutahedron_matrices[tet_perm.tuple()]
177
-
185
+
178
186
  other_tet_perm = tet.Gluing[F] * tet_perm
179
187
  other_tet = tet.Neighbor[F]
180
188
  other_m = other_tet.permutahedron_matrices[other_tet_perm.tuple()]
181
-
182
- return GL2C_to_O13(_adjoint(other_m) * m)
189
+
190
+ return pgl2c_to_o13(_adjoint(other_m) * m)
191
+
183
192
 
184
193
  def _adjoint(m):
185
- return matrix([[ m[1,1],-m[0,1]],
186
- [-m[1,0], m[0,0]]])
194
+ return make_matrix([[ m[1,1],-m[0,1]],
195
+ [-m[1,0], m[0,0]]])
196
+
187
197
 
188
198
  _new_perm_edge_type_old_perm = [
189
199
  ((1, 0, 2, 3), 'alpha', t3m.Perm4((0, 1, 2, 3))),
190
- ((0, 2, 1, 3), 'beta', t3m.Perm4((0, 1, 2, 3))),
200
+ ((0, 2, 1, 3), 'beta', t3m.Perm4((0, 1, 2, 3))),
191
201
  ((0, 1, 3, 2), 'gamma', t3m.Perm4((0, 1, 2, 3))),
192
- ((1, 2, 0, 3), 'beta', t3m.Perm4((1, 0, 2, 3))),
202
+ ((1, 2, 0, 3), 'beta', t3m.Perm4((1, 0, 2, 3))),
193
203
  ((1, 0, 3, 2), 'gamma', t3m.Perm4((1, 0, 2, 3))),
194
204
  ((2, 0, 1, 3), 'alpha', t3m.Perm4((0, 2, 1, 3))),
195
205
  ((0, 2, 3, 1), 'gamma', t3m.Perm4((0, 2, 1, 3))),
196
- ((0, 3, 1, 2), 'beta', t3m.Perm4((0, 1, 3, 2))),
206
+ ((0, 3, 1, 2), 'beta', t3m.Perm4((0, 1, 3, 2))),
197
207
  ((2, 1, 0, 3), 'alpha', t3m.Perm4((1, 2, 0, 3))),
198
208
  ((1, 2, 3, 0), 'gamma', t3m.Perm4((1, 2, 0, 3))),
199
- ((1, 3, 0, 2), 'beta', t3m.Perm4((1, 0, 3, 2))),
209
+ ((1, 3, 0, 2), 'beta', t3m.Perm4((1, 0, 3, 2))),
200
210
  ((2, 0, 3, 1), 'gamma', t3m.Perm4((2, 0, 1, 3))),
201
- ((0, 3, 2, 1), 'beta', t3m.Perm4((0, 2, 3, 1))),
211
+ ((0, 3, 2, 1), 'beta', t3m.Perm4((0, 2, 3, 1))),
202
212
  ((3, 0, 1, 2), 'alpha', t3m.Perm4((0, 3, 1, 2))),
203
213
  ((2, 1, 3, 0), 'gamma', t3m.Perm4((2, 1, 0, 3))),
204
- ((1, 3, 2, 0), 'beta', t3m.Perm4((1, 2, 3, 0))),
214
+ ((1, 3, 2, 0), 'beta', t3m.Perm4((1, 2, 3, 0))),
205
215
  ((3, 1, 0, 2), 'alpha', t3m.Perm4((1, 3, 0, 2))),
206
- ((2, 3, 0, 1), 'beta', t3m.Perm4((2, 0, 3, 1))),
216
+ ((2, 3, 0, 1), 'beta', t3m.Perm4((2, 0, 3, 1))),
207
217
  ((3, 0, 2, 1), 'alpha', t3m.Perm4((0, 3, 2, 1))),
208
- ((2, 3, 1, 0), 'beta', t3m.Perm4((2, 1, 3, 0))),
218
+ ((2, 3, 1, 0), 'beta', t3m.Perm4((2, 1, 3, 0))),
209
219
  ((3, 1, 2, 0), 'alpha', t3m.Perm4((1, 3, 2, 0))),
210
220
  ((3, 2, 0, 1), 'alpha', t3m.Perm4((2, 3, 0, 1))),
211
221
  ((3, 2, 1, 0), 'alpha', t3m.Perm4((2, 3, 1, 0))) ]
212
222
 
223
+
213
224
  def _matrices_for_tet(hyperbolic_structure, tet_num):
214
225
  RF = hyperbolic_structure.vertex_gram_matrices[0].base_ring()
215
226
  CF = RF.complex_field()
@@ -224,4 +235,3 @@ def _matrices_for_tet(hyperbolic_structure, tet_num):
224
235
  matrices[new_perm] = m * matrices[old_perm.tuple()]
225
236
 
226
237
  return matrices
227
-