passagemath-schemes 10.6.40__cp314-cp314-macosx_13_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-schemes might be problematic. Click here for more details.

Files changed (314) hide show
  1. passagemath_schemes/.dylibs/libflint.22.0.dylib +0 -0
  2. passagemath_schemes/.dylibs/libgmp.10.dylib +0 -0
  3. passagemath_schemes/.dylibs/libgmpxx.4.dylib +0 -0
  4. passagemath_schemes/.dylibs/libmpfr.6.dylib +0 -0
  5. passagemath_schemes/__init__.py +3 -0
  6. passagemath_schemes-10.6.40.dist-info/METADATA +204 -0
  7. passagemath_schemes-10.6.40.dist-info/METADATA.bak +205 -0
  8. passagemath_schemes-10.6.40.dist-info/RECORD +314 -0
  9. passagemath_schemes-10.6.40.dist-info/WHEEL +6 -0
  10. passagemath_schemes-10.6.40.dist-info/top_level.txt +3 -0
  11. sage/all__sagemath_schemes.py +23 -0
  12. sage/databases/all__sagemath_schemes.py +7 -0
  13. sage/databases/cremona.py +1723 -0
  14. sage/dynamics/all__sagemath_schemes.py +2 -0
  15. sage/dynamics/arithmetic_dynamics/affine_ds.py +1083 -0
  16. sage/dynamics/arithmetic_dynamics/all.py +14 -0
  17. sage/dynamics/arithmetic_dynamics/berkovich_ds.py +1101 -0
  18. sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py +1543 -0
  19. sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py +2426 -0
  20. sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py +1169 -0
  21. sage/dynamics/arithmetic_dynamics/generic_ds.py +663 -0
  22. sage/dynamics/arithmetic_dynamics/product_projective_ds.py +339 -0
  23. sage/dynamics/arithmetic_dynamics/projective_ds.py +9558 -0
  24. sage/dynamics/arithmetic_dynamics/projective_ds_helper.cpython-314-darwin.so +0 -0
  25. sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx +301 -0
  26. sage/dynamics/arithmetic_dynamics/wehlerK3.py +2576 -0
  27. sage/lfunctions/all.py +18 -0
  28. sage/lfunctions/dokchitser.py +745 -0
  29. sage/lfunctions/pari.py +818 -0
  30. sage/lfunctions/zero_sums.cpython-314-darwin.so +0 -0
  31. sage/lfunctions/zero_sums.pyx +1847 -0
  32. sage/modular/abvar/abvar.py +5135 -0
  33. sage/modular/abvar/abvar_ambient_jacobian.py +413 -0
  34. sage/modular/abvar/abvar_newform.py +244 -0
  35. sage/modular/abvar/all.py +8 -0
  36. sage/modular/abvar/constructor.py +186 -0
  37. sage/modular/abvar/cuspidal_subgroup.py +371 -0
  38. sage/modular/abvar/finite_subgroup.py +896 -0
  39. sage/modular/abvar/homology.py +720 -0
  40. sage/modular/abvar/homspace.py +998 -0
  41. sage/modular/abvar/lseries.py +415 -0
  42. sage/modular/abvar/morphism.py +935 -0
  43. sage/modular/abvar/torsion_point.py +274 -0
  44. sage/modular/abvar/torsion_subgroup.py +740 -0
  45. sage/modular/all.py +43 -0
  46. sage/modular/arithgroup/all.py +20 -0
  47. sage/modular/arithgroup/arithgroup_element.cpython-314-darwin.so +0 -0
  48. sage/modular/arithgroup/arithgroup_element.pyx +474 -0
  49. sage/modular/arithgroup/arithgroup_generic.py +1402 -0
  50. sage/modular/arithgroup/arithgroup_perm.py +2692 -0
  51. sage/modular/arithgroup/congroup.cpython-314-darwin.so +0 -0
  52. sage/modular/arithgroup/congroup.pyx +334 -0
  53. sage/modular/arithgroup/congroup_gamma.py +363 -0
  54. sage/modular/arithgroup/congroup_gamma0.py +692 -0
  55. sage/modular/arithgroup/congroup_gamma1.py +653 -0
  56. sage/modular/arithgroup/congroup_gammaH.py +1469 -0
  57. sage/modular/arithgroup/congroup_generic.py +628 -0
  58. sage/modular/arithgroup/congroup_sl2z.py +267 -0
  59. sage/modular/arithgroup/farey_symbol.cpython-314-darwin.so +0 -0
  60. sage/modular/arithgroup/farey_symbol.pyx +1066 -0
  61. sage/modular/arithgroup/tests.py +418 -0
  62. sage/modular/btquotients/all.py +4 -0
  63. sage/modular/btquotients/btquotient.py +3753 -0
  64. sage/modular/btquotients/pautomorphicform.py +2570 -0
  65. sage/modular/buzzard.py +100 -0
  66. sage/modular/congroup.py +29 -0
  67. sage/modular/congroup_element.py +13 -0
  68. sage/modular/cusps.py +1109 -0
  69. sage/modular/cusps_nf.py +1270 -0
  70. sage/modular/dims.py +569 -0
  71. sage/modular/dirichlet.py +3310 -0
  72. sage/modular/drinfeld_modform/all.py +2 -0
  73. sage/modular/drinfeld_modform/element.py +446 -0
  74. sage/modular/drinfeld_modform/ring.py +773 -0
  75. sage/modular/drinfeld_modform/tutorial.py +236 -0
  76. sage/modular/etaproducts.py +1065 -0
  77. sage/modular/hecke/algebra.py +746 -0
  78. sage/modular/hecke/all.py +20 -0
  79. sage/modular/hecke/ambient_module.py +1019 -0
  80. sage/modular/hecke/degenmap.py +119 -0
  81. sage/modular/hecke/element.py +325 -0
  82. sage/modular/hecke/hecke_operator.py +780 -0
  83. sage/modular/hecke/homspace.py +206 -0
  84. sage/modular/hecke/module.py +1767 -0
  85. sage/modular/hecke/morphism.py +174 -0
  86. sage/modular/hecke/submodule.py +989 -0
  87. sage/modular/hypergeometric_misc.cpython-314-darwin.so +0 -0
  88. sage/modular/hypergeometric_misc.pxd +4 -0
  89. sage/modular/hypergeometric_misc.pyx +166 -0
  90. sage/modular/hypergeometric_motive.py +2017 -0
  91. sage/modular/local_comp/all.py +2 -0
  92. sage/modular/local_comp/liftings.py +292 -0
  93. sage/modular/local_comp/local_comp.py +1071 -0
  94. sage/modular/local_comp/smoothchar.py +1825 -0
  95. sage/modular/local_comp/type_space.py +748 -0
  96. sage/modular/modform/all.py +30 -0
  97. sage/modular/modform/ambient.py +815 -0
  98. sage/modular/modform/ambient_R.py +177 -0
  99. sage/modular/modform/ambient_eps.py +306 -0
  100. sage/modular/modform/ambient_g0.py +124 -0
  101. sage/modular/modform/ambient_g1.py +204 -0
  102. sage/modular/modform/constructor.py +545 -0
  103. sage/modular/modform/cuspidal_submodule.py +708 -0
  104. sage/modular/modform/defaults.py +14 -0
  105. sage/modular/modform/eis_series.py +505 -0
  106. sage/modular/modform/eisenstein_submodule.py +663 -0
  107. sage/modular/modform/element.py +4131 -0
  108. sage/modular/modform/find_generators.py +59 -0
  109. sage/modular/modform/half_integral.py +154 -0
  110. sage/modular/modform/hecke_operator_on_qexp.py +247 -0
  111. sage/modular/modform/j_invariant.py +47 -0
  112. sage/modular/modform/l_series_gross_zagier.py +133 -0
  113. sage/modular/modform/l_series_gross_zagier_coeffs.cpython-314-darwin.so +0 -0
  114. sage/modular/modform/l_series_gross_zagier_coeffs.pyx +177 -0
  115. sage/modular/modform/notes.py +45 -0
  116. sage/modular/modform/numerical.py +514 -0
  117. sage/modular/modform/periods.py +14 -0
  118. sage/modular/modform/ring.py +1257 -0
  119. sage/modular/modform/space.py +1860 -0
  120. sage/modular/modform/submodule.py +118 -0
  121. sage/modular/modform/tests.py +64 -0
  122. sage/modular/modform/theta.py +110 -0
  123. sage/modular/modform/vm_basis.py +381 -0
  124. sage/modular/modform/weight1.py +220 -0
  125. sage/modular/modform_hecketriangle/abstract_ring.py +1932 -0
  126. sage/modular/modform_hecketriangle/abstract_space.py +2528 -0
  127. sage/modular/modform_hecketriangle/all.py +30 -0
  128. sage/modular/modform_hecketriangle/analytic_type.py +590 -0
  129. sage/modular/modform_hecketriangle/constructor.py +416 -0
  130. sage/modular/modform_hecketriangle/element.py +351 -0
  131. sage/modular/modform_hecketriangle/functors.py +752 -0
  132. sage/modular/modform_hecketriangle/graded_ring.py +541 -0
  133. sage/modular/modform_hecketriangle/graded_ring_element.py +2225 -0
  134. sage/modular/modform_hecketriangle/hecke_triangle_group_element.py +3352 -0
  135. sage/modular/modform_hecketriangle/hecke_triangle_groups.py +1432 -0
  136. sage/modular/modform_hecketriangle/readme.py +1214 -0
  137. sage/modular/modform_hecketriangle/series_constructor.py +580 -0
  138. sage/modular/modform_hecketriangle/space.py +1037 -0
  139. sage/modular/modform_hecketriangle/subspace.py +423 -0
  140. sage/modular/modsym/all.py +17 -0
  141. sage/modular/modsym/ambient.py +3846 -0
  142. sage/modular/modsym/boundary.py +1420 -0
  143. sage/modular/modsym/element.py +336 -0
  144. sage/modular/modsym/g1list.py +178 -0
  145. sage/modular/modsym/ghlist.py +182 -0
  146. sage/modular/modsym/hecke_operator.py +73 -0
  147. sage/modular/modsym/manin_symbol.cpython-314-darwin.so +0 -0
  148. sage/modular/modsym/manin_symbol.pxd +5 -0
  149. sage/modular/modsym/manin_symbol.pyx +497 -0
  150. sage/modular/modsym/manin_symbol_list.py +1295 -0
  151. sage/modular/modsym/modsym.py +400 -0
  152. sage/modular/modsym/modular_symbols.py +384 -0
  153. sage/modular/modsym/p1list.cpython-314-darwin.so +0 -0
  154. sage/modular/modsym/p1list.pxd +29 -0
  155. sage/modular/modsym/p1list.pyx +1372 -0
  156. sage/modular/modsym/p1list_nf.py +1241 -0
  157. sage/modular/modsym/relation_matrix.py +591 -0
  158. sage/modular/modsym/relation_matrix_pyx.cpython-314-darwin.so +0 -0
  159. sage/modular/modsym/relation_matrix_pyx.pyx +108 -0
  160. sage/modular/modsym/space.py +2468 -0
  161. sage/modular/modsym/subspace.py +455 -0
  162. sage/modular/modsym/tests.py +375 -0
  163. sage/modular/multiple_zeta.py +2632 -0
  164. sage/modular/multiple_zeta_F_algebra.py +786 -0
  165. sage/modular/overconvergent/all.py +6 -0
  166. sage/modular/overconvergent/genus0.py +1878 -0
  167. sage/modular/overconvergent/hecke_series.py +1187 -0
  168. sage/modular/overconvergent/weightspace.py +778 -0
  169. sage/modular/pollack_stevens/all.py +4 -0
  170. sage/modular/pollack_stevens/distributions.py +874 -0
  171. sage/modular/pollack_stevens/fund_domain.py +1572 -0
  172. sage/modular/pollack_stevens/manin_map.py +859 -0
  173. sage/modular/pollack_stevens/modsym.py +1593 -0
  174. sage/modular/pollack_stevens/padic_lseries.py +417 -0
  175. sage/modular/pollack_stevens/sigma0.py +534 -0
  176. sage/modular/pollack_stevens/space.py +1076 -0
  177. sage/modular/quasimodform/all.py +3 -0
  178. sage/modular/quasimodform/element.py +845 -0
  179. sage/modular/quasimodform/ring.py +828 -0
  180. sage/modular/quatalg/all.py +3 -0
  181. sage/modular/quatalg/brandt.py +1642 -0
  182. sage/modular/ssmod/all.py +8 -0
  183. sage/modular/ssmod/ssmod.py +827 -0
  184. sage/rings/all__sagemath_schemes.py +1 -0
  185. sage/rings/polynomial/all__sagemath_schemes.py +1 -0
  186. sage/rings/polynomial/binary_form_reduce.py +585 -0
  187. sage/schemes/all.py +41 -0
  188. sage/schemes/berkovich/all.py +6 -0
  189. sage/schemes/berkovich/berkovich_cp_element.py +2582 -0
  190. sage/schemes/berkovich/berkovich_space.py +748 -0
  191. sage/schemes/curves/affine_curve.py +2928 -0
  192. sage/schemes/curves/all.py +33 -0
  193. sage/schemes/curves/closed_point.py +434 -0
  194. sage/schemes/curves/constructor.py +381 -0
  195. sage/schemes/curves/curve.py +542 -0
  196. sage/schemes/curves/plane_curve_arrangement.py +1283 -0
  197. sage/schemes/curves/point.py +463 -0
  198. sage/schemes/curves/projective_curve.py +3026 -0
  199. sage/schemes/curves/zariski_vankampen.py +1932 -0
  200. sage/schemes/cyclic_covers/all.py +2 -0
  201. sage/schemes/cyclic_covers/charpoly_frobenius.py +320 -0
  202. sage/schemes/cyclic_covers/constructor.py +137 -0
  203. sage/schemes/cyclic_covers/cycliccover_finite_field.py +1309 -0
  204. sage/schemes/cyclic_covers/cycliccover_generic.py +310 -0
  205. sage/schemes/elliptic_curves/BSD.py +1036 -0
  206. sage/schemes/elliptic_curves/Qcurves.py +592 -0
  207. sage/schemes/elliptic_curves/addition_formulas_ring.py +94 -0
  208. sage/schemes/elliptic_curves/all.py +49 -0
  209. sage/schemes/elliptic_curves/cardinality.py +609 -0
  210. sage/schemes/elliptic_curves/cm.py +1102 -0
  211. sage/schemes/elliptic_curves/constructor.py +1552 -0
  212. sage/schemes/elliptic_curves/ec_database.py +175 -0
  213. sage/schemes/elliptic_curves/ell_curve_isogeny.py +3972 -0
  214. sage/schemes/elliptic_curves/ell_egros.py +459 -0
  215. sage/schemes/elliptic_curves/ell_field.py +2836 -0
  216. sage/schemes/elliptic_curves/ell_finite_field.py +3359 -0
  217. sage/schemes/elliptic_curves/ell_generic.py +3760 -0
  218. sage/schemes/elliptic_curves/ell_local_data.py +1207 -0
  219. sage/schemes/elliptic_curves/ell_modular_symbols.py +775 -0
  220. sage/schemes/elliptic_curves/ell_number_field.py +4220 -0
  221. sage/schemes/elliptic_curves/ell_padic_field.py +107 -0
  222. sage/schemes/elliptic_curves/ell_point.py +4787 -0
  223. sage/schemes/elliptic_curves/ell_rational_field.py +7368 -0
  224. sage/schemes/elliptic_curves/ell_tate_curve.py +671 -0
  225. sage/schemes/elliptic_curves/ell_torsion.py +436 -0
  226. sage/schemes/elliptic_curves/ell_wp.py +352 -0
  227. sage/schemes/elliptic_curves/formal_group.py +760 -0
  228. sage/schemes/elliptic_curves/gal_reps.py +1459 -0
  229. sage/schemes/elliptic_curves/gal_reps_number_field.py +1669 -0
  230. sage/schemes/elliptic_curves/gp_simon.py +152 -0
  231. sage/schemes/elliptic_curves/heegner.py +7335 -0
  232. sage/schemes/elliptic_curves/height.py +2109 -0
  233. sage/schemes/elliptic_curves/hom.py +1406 -0
  234. sage/schemes/elliptic_curves/hom_composite.py +934 -0
  235. sage/schemes/elliptic_curves/hom_frobenius.py +522 -0
  236. sage/schemes/elliptic_curves/hom_scalar.py +531 -0
  237. sage/schemes/elliptic_curves/hom_sum.py +682 -0
  238. sage/schemes/elliptic_curves/hom_velusqrt.py +1290 -0
  239. sage/schemes/elliptic_curves/homset.py +271 -0
  240. sage/schemes/elliptic_curves/isogeny_class.py +1521 -0
  241. sage/schemes/elliptic_curves/isogeny_small_degree.py +2797 -0
  242. sage/schemes/elliptic_curves/jacobian.py +237 -0
  243. sage/schemes/elliptic_curves/kodaira_symbol.py +344 -0
  244. sage/schemes/elliptic_curves/kraus.py +1014 -0
  245. sage/schemes/elliptic_curves/lseries_ell.py +943 -0
  246. sage/schemes/elliptic_curves/mod5family.py +105 -0
  247. sage/schemes/elliptic_curves/mod_poly.py +197 -0
  248. sage/schemes/elliptic_curves/mod_sym_num.cpython-314-darwin.so +0 -0
  249. sage/schemes/elliptic_curves/mod_sym_num.pyx +3796 -0
  250. sage/schemes/elliptic_curves/modular_parametrization.py +305 -0
  251. sage/schemes/elliptic_curves/padic_lseries.py +1793 -0
  252. sage/schemes/elliptic_curves/padics.py +1816 -0
  253. sage/schemes/elliptic_curves/period_lattice.py +2234 -0
  254. sage/schemes/elliptic_curves/period_lattice_region.cpython-314-darwin.so +0 -0
  255. sage/schemes/elliptic_curves/period_lattice_region.pyx +722 -0
  256. sage/schemes/elliptic_curves/saturation.py +715 -0
  257. sage/schemes/elliptic_curves/sha_tate.py +1158 -0
  258. sage/schemes/elliptic_curves/weierstrass_morphism.py +1117 -0
  259. sage/schemes/elliptic_curves/weierstrass_transform.py +200 -0
  260. sage/schemes/hyperelliptic_curves/all.py +6 -0
  261. sage/schemes/hyperelliptic_curves/constructor.py +291 -0
  262. sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +1914 -0
  263. sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py +192 -0
  264. sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +954 -0
  265. sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py +1332 -0
  266. sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py +84 -0
  267. sage/schemes/hyperelliptic_curves/invariants.py +410 -0
  268. sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py +315 -0
  269. sage/schemes/hyperelliptic_curves/jacobian_g2.py +32 -0
  270. sage/schemes/hyperelliptic_curves/jacobian_generic.py +419 -0
  271. sage/schemes/hyperelliptic_curves/jacobian_homset.py +186 -0
  272. sage/schemes/hyperelliptic_curves/jacobian_morphism.py +875 -0
  273. sage/schemes/hyperelliptic_curves/kummer_surface.py +99 -0
  274. sage/schemes/hyperelliptic_curves/mestre.py +302 -0
  275. sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +3871 -0
  276. sage/schemes/jacobians/abstract_jacobian.py +277 -0
  277. sage/schemes/jacobians/all.py +2 -0
  278. sage/schemes/overview.py +161 -0
  279. sage/schemes/plane_conics/all.py +22 -0
  280. sage/schemes/plane_conics/con_field.py +1296 -0
  281. sage/schemes/plane_conics/con_finite_field.py +158 -0
  282. sage/schemes/plane_conics/con_number_field.py +456 -0
  283. sage/schemes/plane_conics/con_rational_field.py +406 -0
  284. sage/schemes/plane_conics/con_rational_function_field.py +580 -0
  285. sage/schemes/plane_conics/constructor.py +249 -0
  286. sage/schemes/plane_quartics/all.py +2 -0
  287. sage/schemes/plane_quartics/quartic_constructor.py +71 -0
  288. sage/schemes/plane_quartics/quartic_generic.py +73 -0
  289. sage/schemes/riemann_surfaces/all.py +1 -0
  290. sage/schemes/riemann_surfaces/riemann_surface.py +4117 -0
  291. sage_wheels/share/cremona/cremona_mini.db +0 -0
  292. sage_wheels/share/ellcurves/rank0 +30427 -0
  293. sage_wheels/share/ellcurves/rank1 +31871 -0
  294. sage_wheels/share/ellcurves/rank10 +6 -0
  295. sage_wheels/share/ellcurves/rank11 +6 -0
  296. sage_wheels/share/ellcurves/rank12 +1 -0
  297. sage_wheels/share/ellcurves/rank14 +1 -0
  298. sage_wheels/share/ellcurves/rank15 +1 -0
  299. sage_wheels/share/ellcurves/rank17 +1 -0
  300. sage_wheels/share/ellcurves/rank19 +1 -0
  301. sage_wheels/share/ellcurves/rank2 +2388 -0
  302. sage_wheels/share/ellcurves/rank20 +1 -0
  303. sage_wheels/share/ellcurves/rank21 +1 -0
  304. sage_wheels/share/ellcurves/rank22 +1 -0
  305. sage_wheels/share/ellcurves/rank23 +1 -0
  306. sage_wheels/share/ellcurves/rank24 +1 -0
  307. sage_wheels/share/ellcurves/rank28 +1 -0
  308. sage_wheels/share/ellcurves/rank3 +836 -0
  309. sage_wheels/share/ellcurves/rank4 +10 -0
  310. sage_wheels/share/ellcurves/rank5 +5 -0
  311. sage_wheels/share/ellcurves/rank6 +5 -0
  312. sage_wheels/share/ellcurves/rank7 +5 -0
  313. sage_wheels/share/ellcurves/rank8 +6 -0
  314. sage_wheels/share/ellcurves/rank9 +7 -0
@@ -0,0 +1,541 @@
1
+ # sage_setup: distribution = sagemath-schemes
2
+ # sage.doctest: needs sage.combinat sage.graphs
3
+ r"""
4
+ Graded rings of modular forms for Hecke triangle groups
5
+
6
+ AUTHORS:
7
+
8
+ - Jonas Jermann (2013): initial version
9
+ """
10
+ # ****************************************************************************
11
+ # Copyright (C) 2013-2014 Jonas Jermann <jjermann2@gmail.com>
12
+ #
13
+ # Distributed under the terms of the GNU General Public License (GPL)
14
+ # as published by the Free Software Foundation; either version 2 of
15
+ # the License, or (at your option) any later version.
16
+ # https://www.gnu.org/licenses/
17
+ # ****************************************************************************
18
+
19
+ from sage.rings.integer_ring import ZZ
20
+ from sage.rings.infinity import infinity
21
+
22
+ from sage.structure.parent import Parent
23
+ from sage.categories.algebras import Algebras
24
+ from sage.structure.unique_representation import UniqueRepresentation
25
+
26
+ from .hecke_triangle_groups import HeckeTriangleGroup
27
+ from .abstract_ring import FormsRing_abstract
28
+
29
+
30
+ def canonical_parameters(group, base_ring, red_hom, n=None):
31
+ r"""
32
+ Return a canonical version of the parameters.
33
+
34
+ EXAMPLES::
35
+
36
+ sage: from sage.modular.modform_hecketriangle.graded_ring import canonical_parameters
37
+ sage: canonical_parameters(4, ZZ, 1)
38
+ (Hecke triangle group for n = 4, Integer Ring, True, 4)
39
+ sage: canonical_parameters(infinity, RR, 0)
40
+ (Hecke triangle group for n = +Infinity, Real Field with 53 bits of precision, False, +Infinity)
41
+ """
42
+ if n is not None:
43
+ group = n
44
+
45
+ if group == infinity:
46
+ group = HeckeTriangleGroup(infinity)
47
+ else:
48
+ try:
49
+ group = HeckeTriangleGroup(ZZ(group))
50
+ except TypeError:
51
+ group = HeckeTriangleGroup(group.n())
52
+
53
+ red_hom = bool(red_hom)
54
+ n = group.n()
55
+
56
+ return (group, base_ring, red_hom, n)
57
+
58
+
59
+ class QuasiMeromorphicModularFormsRing(FormsRing_abstract, UniqueRepresentation):
60
+ r"""
61
+ Graded ring of (Hecke) quasi meromorphic modular forms
62
+ for the given group and base ring.
63
+ """
64
+
65
+ @staticmethod
66
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
67
+ r"""
68
+ Return a (cached) instance with canonical parameters.
69
+
70
+ EXAMPLES::
71
+
72
+ sage: from sage.modular.modform_hecketriangle.graded_ring import (canonical_parameters, QuasiMeromorphicModularFormsRing)
73
+ sage: (group, base_ring, red_hom, n) = canonical_parameters(4, ZZ, 1)
74
+ sage: QuasiMeromorphicModularFormsRing(4, ZZ, 1) == QuasiMeromorphicModularFormsRing(group, base_ring, red_hom, n)
75
+ True
76
+ """
77
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
78
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
79
+
80
+ def __init__(self, group, base_ring, red_hom, n):
81
+ r"""
82
+ Return the graded ring of (Hecke) quasi meromorphic modular forms
83
+ for the given ``group`` and ``base_ring``.
84
+
85
+ INPUT:
86
+
87
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
88
+
89
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
90
+
91
+ - ``red_hom`` -- if ``True`` then results of binary operations are
92
+ considered homogeneous whenever it makes sense (default: ``False``).
93
+ This is mainly used by the spaces of homogeneous elements.
94
+
95
+ OUTPUT:
96
+
97
+ The corresponding graded ring of (Hecke) quasi meromorphic modular forms
98
+ for the given ``group`` and ``base_ring``.
99
+
100
+ EXAMPLES::
101
+
102
+ sage: from sage.modular.modform_hecketriangle.graded_ring import QuasiMeromorphicModularFormsRing
103
+ sage: MR = QuasiMeromorphicModularFormsRing(4, ZZ, 1)
104
+ sage: MR
105
+ QuasiMeromorphicModularFormsRing(n=4) over Integer Ring
106
+ sage: MR.analytic_type()
107
+ quasi meromorphic modular
108
+ sage: MR.category()
109
+ Category of commutative algebras over Integer Ring
110
+ sage: MR in MR.category()
111
+ True
112
+
113
+ sage: QuasiMeromorphicModularFormsRing(n=infinity)
114
+ QuasiMeromorphicModularFormsRing(n=+Infinity) over Integer Ring
115
+ """
116
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
117
+ cat = Algebras(base_ring).Commutative()
118
+ Parent.__init__(self, category=cat)
119
+ self._analytic_type = self.AT(["quasi", "mero"])
120
+
121
+
122
+ class QuasiWeakModularFormsRing(FormsRing_abstract, UniqueRepresentation):
123
+ r"""
124
+ Graded ring of (Hecke) quasi weakly holomorphic modular forms
125
+ for the given group and base ring.
126
+ """
127
+
128
+ @staticmethod
129
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
130
+ r"""
131
+ Return a (cached) instance with canonical parameters.
132
+
133
+ EXAMPLES::
134
+
135
+ sage: from sage.modular.modform_hecketriangle.graded_ring import (canonical_parameters, QuasiWeakModularFormsRing)
136
+ sage: (group, base_ring, red_hom, n) = canonical_parameters(5, CC, 0)
137
+ sage: QuasiWeakModularFormsRing(5, CC, 0) == QuasiWeakModularFormsRing(group, base_ring, red_hom, n)
138
+ True
139
+ """
140
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
141
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
142
+
143
+ def __init__(self, group, base_ring, red_hom, n):
144
+ r"""
145
+ Return the graded ring of (Hecke) quasi weakly holomorphic modular forms
146
+ for the given ``group`` and ``base_ring``.
147
+
148
+ INPUT:
149
+
150
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
151
+
152
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
153
+
154
+ - ``red_hom`` -- if ``True`` then results of binary operations are
155
+ considered homogeneous whenever it makes sense (default: ``False``).
156
+ This is mainly used by the spaces of homogeneous elements.
157
+
158
+ OUTPUT:
159
+
160
+ The corresponding graded ring of (Hecke) quasi weakly holomorphic modular forms
161
+ for the given ``group`` and ``base_ring``.
162
+
163
+ EXAMPLES::
164
+
165
+ sage: from sage.modular.modform_hecketriangle.graded_ring import QuasiWeakModularFormsRing
166
+ sage: MR = QuasiWeakModularFormsRing(5, CC, 0)
167
+ sage: MR
168
+ QuasiWeakModularFormsRing(n=5) over Complex Field with 53 bits of precision
169
+ sage: MR.analytic_type()
170
+ quasi weakly holomorphic modular
171
+ sage: MR.category()
172
+ Category of commutative algebras over Complex Field with 53 bits of precision
173
+ sage: MR in MR.category()
174
+ True
175
+ """
176
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
177
+ cat = Algebras(base_ring).Commutative()
178
+ Parent.__init__(self, category=cat)
179
+ self._analytic_type = self.AT(["quasi", "weak"])
180
+
181
+
182
+ class QuasiModularFormsRing(FormsRing_abstract, UniqueRepresentation):
183
+ r"""
184
+ Graded ring of (Hecke) quasi modular forms
185
+ for the given group and base ring
186
+ """
187
+
188
+ @staticmethod
189
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
190
+ r"""
191
+ Return a (cached) instance with canonical parameters.
192
+
193
+ EXAMPLES::
194
+
195
+ sage: from sage.modular.modform_hecketriangle.graded_ring import (canonical_parameters, QuasiModularFormsRing)
196
+ sage: (group, base_ring, red_hom, n) = canonical_parameters(6, ZZ, True)
197
+ sage: QuasiModularFormsRing(6, ZZ, True) == QuasiModularFormsRing(group, base_ring, red_hom, n)
198
+ True
199
+ """
200
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
201
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
202
+
203
+ def __init__(self, group, base_ring, red_hom, n):
204
+ r"""
205
+ Return the graded ring of (Hecke) quasi modular forms
206
+ for the given ``group`` and ``base_ring``.
207
+
208
+ INPUT:
209
+
210
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
211
+
212
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
213
+
214
+ - ``red_hom`` -- if ``True`` then results of binary operations are
215
+ considered homogeneous whenever it makes sense (default: ``False``).
216
+ This is mainly used by the spaces of homogeneous elements.
217
+
218
+ OUTPUT:
219
+
220
+ The corresponding graded ring of (Hecke) quasi modular forms
221
+ for the given ``group`` and ``base_ring``.
222
+
223
+ EXAMPLES::
224
+
225
+ sage: from sage.modular.modform_hecketriangle.graded_ring import QuasiModularFormsRing
226
+ sage: MR = QuasiModularFormsRing(6, ZZ, True)
227
+ sage: MR
228
+ QuasiModularFormsRing(n=6) over Integer Ring
229
+ sage: MR.analytic_type()
230
+ quasi modular
231
+ sage: MR.category()
232
+ Category of commutative algebras over Integer Ring
233
+ sage: MR in MR.category()
234
+ True
235
+ """
236
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
237
+ cat = Algebras(base_ring).Commutative()
238
+ Parent.__init__(self, category=cat)
239
+ self._analytic_type = self.AT(["quasi", "holo"])
240
+
241
+
242
+ class QuasiCuspFormsRing(FormsRing_abstract, UniqueRepresentation):
243
+ r"""
244
+ Graded ring of (Hecke) quasi cusp forms
245
+ for the given group and base ring.
246
+ """
247
+
248
+ @staticmethod
249
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
250
+ r"""
251
+ Return a (cached) instance with canonical parameters.
252
+
253
+ EXAMPLES::
254
+
255
+ sage: from sage.modular.modform_hecketriangle.graded_ring import (canonical_parameters, QuasiCuspFormsRing)
256
+ sage: (group, base_ring, red_hom, n) = canonical_parameters(7, ZZ, 1)
257
+ sage: QuasiCuspFormsRing(7, ZZ, 1) == QuasiCuspFormsRing(group, base_ring, red_hom, n)
258
+ True
259
+ """
260
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
261
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
262
+
263
+ def __init__(self, group, base_ring, red_hom, n):
264
+ r"""
265
+ Return the graded ring of (Hecke) quasi cusp forms
266
+ for the given ``group`` and ``base_ring``.
267
+
268
+ INPUT:
269
+
270
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
271
+
272
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
273
+
274
+ - ``red_hom`` -- if ``True`` then results of binary operations are
275
+ considered homogeneous whenever it makes sense (default: ``False``).
276
+ This is mainly used by the spaces of homogeneous elements.
277
+
278
+ OUTPUT:
279
+
280
+ The corresponding graded ring of (Hecke) quasi cusp forms
281
+ for the given ``group`` and ``base_ring``.
282
+
283
+ EXAMPLES::
284
+
285
+ sage: from sage.modular.modform_hecketriangle.graded_ring import QuasiCuspFormsRing
286
+ sage: MR = QuasiCuspFormsRing(7, ZZ, 1)
287
+ sage: MR
288
+ QuasiCuspFormsRing(n=7) over Integer Ring
289
+ sage: MR.analytic_type()
290
+ quasi cuspidal
291
+ sage: MR.category()
292
+ Category of commutative algebras over Integer Ring
293
+ sage: MR in MR.category()
294
+ True
295
+ """
296
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
297
+ cat = Algebras(base_ring).Commutative()
298
+ Parent.__init__(self, category=cat)
299
+ self._analytic_type = self.AT(["quasi", "cusp"])
300
+
301
+
302
+ class MeromorphicModularFormsRing(FormsRing_abstract, UniqueRepresentation):
303
+ r"""
304
+ Graded ring of (Hecke) meromorphic modular forms
305
+ for the given group and base ring
306
+ """
307
+
308
+ @staticmethod
309
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
310
+ r"""
311
+ Return a (cached) instance with canonical parameters.
312
+
313
+ EXAMPLES::
314
+
315
+ sage: from sage.modular.modform_hecketriangle.graded_ring import (canonical_parameters, MeromorphicModularFormsRing)
316
+ sage: (group, base_ring, red_hom, n) = canonical_parameters(4, ZZ, 1)
317
+ sage: MeromorphicModularFormsRing(4, ZZ, 1) == MeromorphicModularFormsRing(group, base_ring, red_hom, n)
318
+ True
319
+ """
320
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
321
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
322
+
323
+ def __init__(self, group, base_ring, red_hom, n):
324
+ r"""
325
+ Return the graded ring of (Hecke) meromorphic modular forms
326
+ for the given ``group`` and ``base_ring``.
327
+
328
+ INPUT:
329
+
330
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
331
+
332
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
333
+
334
+ - ``red_hom`` -- if ``True`` then results of binary operations are
335
+ considered homogeneous whenever it makes sense (default: ``False``).
336
+ This is mainly used by the spaces of homogeneous elements.
337
+
338
+ OUTPUT:
339
+
340
+ The corresponding graded ring of (Hecke) meromorphic modular forms
341
+ for the given ``group`` and ``base_ring``.
342
+
343
+ EXAMPLES::
344
+
345
+ sage: from sage.modular.modform_hecketriangle.graded_ring import MeromorphicModularFormsRing
346
+ sage: MR = MeromorphicModularFormsRing(4, ZZ, 1)
347
+ sage: MR
348
+ MeromorphicModularFormsRing(n=4) over Integer Ring
349
+ sage: MR.analytic_type()
350
+ meromorphic modular
351
+ sage: MR.category()
352
+ Category of commutative algebras over Integer Ring
353
+ sage: MR in MR.category()
354
+ True
355
+ """
356
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
357
+ cat = Algebras(base_ring).Commutative()
358
+ Parent.__init__(self, category=cat)
359
+ self._analytic_type = self.AT(["mero"])
360
+
361
+
362
+ class WeakModularFormsRing(FormsRing_abstract, UniqueRepresentation):
363
+ r"""
364
+ Graded ring of (Hecke) weakly holomorphic modular forms
365
+ for the given group and base ring
366
+ """
367
+
368
+ @staticmethod
369
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
370
+ r"""
371
+ Return a (cached) instance with canonical parameters.
372
+
373
+ EXAMPLES::
374
+
375
+ sage: from sage.modular.modform_hecketriangle.graded_ring import (canonical_parameters, WeakModularFormsRing)
376
+ sage: (group, base_ring, red_hom, n) = canonical_parameters(5, ZZ, 0)
377
+ sage: WeakModularFormsRing(5, ZZ, 0) == WeakModularFormsRing(group, base_ring, red_hom, n)
378
+ True
379
+ """
380
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
381
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
382
+
383
+ def __init__(self, group, base_ring, red_hom, n):
384
+ r"""
385
+ Return the graded ring of (Hecke) weakly holomorphic modular forms
386
+ for the given ``group`` and ``base_ring``.
387
+
388
+ INPUT:
389
+
390
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
391
+
392
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
393
+
394
+ - ``red_hom`` -- if ``True`` then results of binary operations are
395
+ considered homogeneous whenever it makes sense (default: ``False``).
396
+ This is mainly used by the spaces of homogeneous elements.
397
+
398
+ OUTPUT:
399
+
400
+ The corresponding graded ring of (Hecke) weakly holomorphic modular forms
401
+ for the given ``group`` and ``base_ring``.
402
+
403
+ EXAMPLES::
404
+
405
+ sage: from sage.modular.modform_hecketriangle.graded_ring import WeakModularFormsRing
406
+ sage: MR = WeakModularFormsRing(5, ZZ, 0)
407
+ sage: MR
408
+ WeakModularFormsRing(n=5) over Integer Ring
409
+ sage: MR.analytic_type()
410
+ weakly holomorphic modular
411
+ sage: MR.category()
412
+ Category of commutative algebras over Integer Ring
413
+ sage: MR in MR.category()
414
+ True
415
+ """
416
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
417
+ cat = Algebras(base_ring).Commutative()
418
+ Parent.__init__(self, category=cat)
419
+ self._analytic_type = self.AT(["weak"])
420
+
421
+
422
+ class ModularFormsRing(FormsRing_abstract, UniqueRepresentation):
423
+ r"""
424
+ Graded ring of (Hecke) modular forms
425
+ for the given group and base ring
426
+ """
427
+
428
+ @staticmethod
429
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
430
+ r"""
431
+ Return a (cached) instance with canonical parameters.
432
+
433
+ EXAMPLES::
434
+
435
+ sage: from sage.modular.modform_hecketriangle.graded_ring import ModularFormsRing
436
+ sage: ModularFormsRing(3, ZZ, 0) == ModularFormsRing()
437
+ True
438
+ """
439
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
440
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
441
+
442
+ def __init__(self, group, base_ring, red_hom, n):
443
+ r"""
444
+ Return the graded ring of (Hecke) modular forms
445
+ for the given ``group`` and ``base_ring``.
446
+
447
+ INPUT:
448
+
449
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
450
+
451
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
452
+
453
+ - ``red_hom`` -- if ``True`` then results of binary operations are
454
+ considered homogeneous whenever it makes sense (default: ``False``).
455
+ This is mainly used by the spaces of homogeneous elements.
456
+
457
+ OUTPUT:
458
+
459
+ The corresponding graded ring of (Hecke) modular forms
460
+ for the given ``group`` and ``base_ring``.
461
+
462
+ EXAMPLES::
463
+
464
+ sage: from sage.modular.modform_hecketriangle.graded_ring import ModularFormsRing
465
+ sage: MR = ModularFormsRing()
466
+ sage: MR
467
+ ModularFormsRing(n=3) over Integer Ring
468
+ sage: MR.analytic_type()
469
+ modular
470
+ sage: MR.category()
471
+ Category of commutative algebras over Integer Ring
472
+ sage: MR in MR.category()
473
+ True
474
+ """
475
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
476
+ cat = Algebras(base_ring).Commutative()
477
+ Parent.__init__(self, category=cat)
478
+ self._analytic_type = self.AT(["holo"])
479
+
480
+
481
+ class CuspFormsRing(FormsRing_abstract, UniqueRepresentation):
482
+ r"""
483
+ Graded ring of (Hecke) cusp forms
484
+ for the given group and base ring
485
+ """
486
+
487
+ @staticmethod
488
+ def __classcall__(cls, group=HeckeTriangleGroup(3), base_ring=ZZ, red_hom=False, n=None):
489
+ r"""
490
+ Return a (cached) instance with canonical parameters.
491
+
492
+ EXAMPLES::
493
+
494
+ sage: from sage.modular.modform_hecketriangle.graded_ring import (canonical_parameters, CuspFormsRing)
495
+ sage: (group, base_ring, red_hom, n) = canonical_parameters(5, CC, True)
496
+ sage: CuspFormsRing(5, CC, True) == CuspFormsRing(group, base_ring, red_hom, n)
497
+ True
498
+ """
499
+ (group, base_ring, red_hom, n) = canonical_parameters(group, base_ring, red_hom, n)
500
+ return super().__classcall__(cls, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
501
+
502
+ def __init__(self, group, base_ring, red_hom, n):
503
+ r"""
504
+ Return the graded ring of (Hecke) cusp forms
505
+ for the given ``group`` and ``base_ring``.
506
+
507
+ INPUT:
508
+
509
+ - ``group`` -- the Hecke triangle group (default: ``HeckeTriangleGroup(3)``)
510
+
511
+ - ``base_ring`` -- the base_ring (default: ``ZZ``)
512
+
513
+ - ``red_hom`` -- if ``True`` then results of binary operations are
514
+ considered homogeneous whenever it makes sense (default: ``False``).
515
+ This is mainly used by the spaces of homogeneous elements.
516
+
517
+ OUTPUT:
518
+
519
+ The corresponding graded ring of (Hecke) cusp forms
520
+ for the given ``group`` and ``base_ring``.
521
+
522
+ EXAMPLES::
523
+
524
+ sage: from sage.modular.modform_hecketriangle.graded_ring import CuspFormsRing
525
+ sage: MR = CuspFormsRing(5, CC, True)
526
+ sage: MR
527
+ CuspFormsRing(n=5) over Complex Field with 53 bits of precision
528
+ sage: MR.analytic_type()
529
+ cuspidal
530
+ sage: MR.category()
531
+ Category of commutative algebras over Complex Field with 53 bits of precision
532
+ sage: MR in MR.category()
533
+ True
534
+
535
+ sage: CuspFormsRing(n=infinity, base_ring=CC, red_hom=True)
536
+ CuspFormsRing(n=+Infinity) over Complex Field with 53 bits of precision
537
+ """
538
+ FormsRing_abstract.__init__(self, group=group, base_ring=base_ring, red_hom=red_hom, n=n)
539
+ cat = Algebras(base_ring).Commutative()
540
+ Parent.__init__(self, category=cat)
541
+ self._analytic_type = self.AT(["cusp"])