passagemath-schemes 10.6.38__cp314-cp314t-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.
- passagemath_schemes/.dylibs/libflint.21.0.dylib +0 -0
- passagemath_schemes/.dylibs/libgmp.10.dylib +0 -0
- passagemath_schemes/.dylibs/libgmpxx.4.dylib +0 -0
- passagemath_schemes/.dylibs/libmpfr.6.dylib +0 -0
- passagemath_schemes/__init__.py +3 -0
- passagemath_schemes-10.6.38.dist-info/METADATA +204 -0
- passagemath_schemes-10.6.38.dist-info/METADATA.bak +205 -0
- passagemath_schemes-10.6.38.dist-info/RECORD +314 -0
- passagemath_schemes-10.6.38.dist-info/WHEEL +6 -0
- passagemath_schemes-10.6.38.dist-info/top_level.txt +3 -0
- sage/all__sagemath_schemes.py +23 -0
- sage/databases/all__sagemath_schemes.py +7 -0
- sage/databases/cremona.py +1723 -0
- sage/dynamics/all__sagemath_schemes.py +2 -0
- sage/dynamics/arithmetic_dynamics/affine_ds.py +1083 -0
- sage/dynamics/arithmetic_dynamics/all.py +14 -0
- sage/dynamics/arithmetic_dynamics/berkovich_ds.py +1101 -0
- sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py +1543 -0
- sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py +2426 -0
- sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py +1169 -0
- sage/dynamics/arithmetic_dynamics/generic_ds.py +663 -0
- sage/dynamics/arithmetic_dynamics/product_projective_ds.py +339 -0
- sage/dynamics/arithmetic_dynamics/projective_ds.py +9558 -0
- sage/dynamics/arithmetic_dynamics/projective_ds_helper.cpython-314t-darwin.so +0 -0
- sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx +301 -0
- sage/dynamics/arithmetic_dynamics/wehlerK3.py +2576 -0
- sage/lfunctions/all.py +18 -0
- sage/lfunctions/dokchitser.py +745 -0
- sage/lfunctions/pari.py +818 -0
- sage/lfunctions/zero_sums.cpython-314t-darwin.so +0 -0
- sage/lfunctions/zero_sums.pyx +1847 -0
- sage/modular/abvar/abvar.py +5135 -0
- sage/modular/abvar/abvar_ambient_jacobian.py +413 -0
- sage/modular/abvar/abvar_newform.py +244 -0
- sage/modular/abvar/all.py +8 -0
- sage/modular/abvar/constructor.py +186 -0
- sage/modular/abvar/cuspidal_subgroup.py +371 -0
- sage/modular/abvar/finite_subgroup.py +896 -0
- sage/modular/abvar/homology.py +720 -0
- sage/modular/abvar/homspace.py +998 -0
- sage/modular/abvar/lseries.py +415 -0
- sage/modular/abvar/morphism.py +935 -0
- sage/modular/abvar/torsion_point.py +274 -0
- sage/modular/abvar/torsion_subgroup.py +740 -0
- sage/modular/all.py +43 -0
- sage/modular/arithgroup/all.py +20 -0
- sage/modular/arithgroup/arithgroup_element.cpython-314t-darwin.so +0 -0
- sage/modular/arithgroup/arithgroup_element.pyx +474 -0
- sage/modular/arithgroup/arithgroup_generic.py +1402 -0
- sage/modular/arithgroup/arithgroup_perm.py +2692 -0
- sage/modular/arithgroup/congroup.cpython-314t-darwin.so +0 -0
- sage/modular/arithgroup/congroup.pyx +334 -0
- sage/modular/arithgroup/congroup_gamma.py +363 -0
- sage/modular/arithgroup/congroup_gamma0.py +692 -0
- sage/modular/arithgroup/congroup_gamma1.py +653 -0
- sage/modular/arithgroup/congroup_gammaH.py +1469 -0
- sage/modular/arithgroup/congroup_generic.py +628 -0
- sage/modular/arithgroup/congroup_sl2z.py +267 -0
- sage/modular/arithgroup/farey_symbol.cpython-314t-darwin.so +0 -0
- sage/modular/arithgroup/farey_symbol.pyx +1066 -0
- sage/modular/arithgroup/tests.py +418 -0
- sage/modular/btquotients/all.py +4 -0
- sage/modular/btquotients/btquotient.py +3753 -0
- sage/modular/btquotients/pautomorphicform.py +2570 -0
- sage/modular/buzzard.py +100 -0
- sage/modular/congroup.py +29 -0
- sage/modular/congroup_element.py +13 -0
- sage/modular/cusps.py +1109 -0
- sage/modular/cusps_nf.py +1270 -0
- sage/modular/dims.py +569 -0
- sage/modular/dirichlet.py +3310 -0
- sage/modular/drinfeld_modform/all.py +2 -0
- sage/modular/drinfeld_modform/element.py +446 -0
- sage/modular/drinfeld_modform/ring.py +773 -0
- sage/modular/drinfeld_modform/tutorial.py +236 -0
- sage/modular/etaproducts.py +1065 -0
- sage/modular/hecke/algebra.py +746 -0
- sage/modular/hecke/all.py +20 -0
- sage/modular/hecke/ambient_module.py +1019 -0
- sage/modular/hecke/degenmap.py +119 -0
- sage/modular/hecke/element.py +325 -0
- sage/modular/hecke/hecke_operator.py +780 -0
- sage/modular/hecke/homspace.py +206 -0
- sage/modular/hecke/module.py +1767 -0
- sage/modular/hecke/morphism.py +174 -0
- sage/modular/hecke/submodule.py +989 -0
- sage/modular/hypergeometric_misc.cpython-314t-darwin.so +0 -0
- sage/modular/hypergeometric_misc.pxd +4 -0
- sage/modular/hypergeometric_misc.pyx +166 -0
- sage/modular/hypergeometric_motive.py +2017 -0
- sage/modular/local_comp/all.py +2 -0
- sage/modular/local_comp/liftings.py +292 -0
- sage/modular/local_comp/local_comp.py +1071 -0
- sage/modular/local_comp/smoothchar.py +1825 -0
- sage/modular/local_comp/type_space.py +748 -0
- sage/modular/modform/all.py +30 -0
- sage/modular/modform/ambient.py +815 -0
- sage/modular/modform/ambient_R.py +177 -0
- sage/modular/modform/ambient_eps.py +306 -0
- sage/modular/modform/ambient_g0.py +124 -0
- sage/modular/modform/ambient_g1.py +204 -0
- sage/modular/modform/constructor.py +545 -0
- sage/modular/modform/cuspidal_submodule.py +708 -0
- sage/modular/modform/defaults.py +14 -0
- sage/modular/modform/eis_series.py +505 -0
- sage/modular/modform/eisenstein_submodule.py +663 -0
- sage/modular/modform/element.py +4131 -0
- sage/modular/modform/find_generators.py +59 -0
- sage/modular/modform/half_integral.py +154 -0
- sage/modular/modform/hecke_operator_on_qexp.py +247 -0
- sage/modular/modform/j_invariant.py +47 -0
- sage/modular/modform/l_series_gross_zagier.py +133 -0
- sage/modular/modform/l_series_gross_zagier_coeffs.cpython-314t-darwin.so +0 -0
- sage/modular/modform/l_series_gross_zagier_coeffs.pyx +177 -0
- sage/modular/modform/notes.py +45 -0
- sage/modular/modform/numerical.py +514 -0
- sage/modular/modform/periods.py +14 -0
- sage/modular/modform/ring.py +1257 -0
- sage/modular/modform/space.py +1860 -0
- sage/modular/modform/submodule.py +118 -0
- sage/modular/modform/tests.py +64 -0
- sage/modular/modform/theta.py +110 -0
- sage/modular/modform/vm_basis.py +381 -0
- sage/modular/modform/weight1.py +220 -0
- sage/modular/modform_hecketriangle/abstract_ring.py +1932 -0
- sage/modular/modform_hecketriangle/abstract_space.py +2528 -0
- sage/modular/modform_hecketriangle/all.py +30 -0
- sage/modular/modform_hecketriangle/analytic_type.py +590 -0
- sage/modular/modform_hecketriangle/constructor.py +416 -0
- sage/modular/modform_hecketriangle/element.py +351 -0
- sage/modular/modform_hecketriangle/functors.py +752 -0
- sage/modular/modform_hecketriangle/graded_ring.py +541 -0
- sage/modular/modform_hecketriangle/graded_ring_element.py +2225 -0
- sage/modular/modform_hecketriangle/hecke_triangle_group_element.py +3352 -0
- sage/modular/modform_hecketriangle/hecke_triangle_groups.py +1432 -0
- sage/modular/modform_hecketriangle/readme.py +1214 -0
- sage/modular/modform_hecketriangle/series_constructor.py +580 -0
- sage/modular/modform_hecketriangle/space.py +1037 -0
- sage/modular/modform_hecketriangle/subspace.py +423 -0
- sage/modular/modsym/all.py +17 -0
- sage/modular/modsym/ambient.py +3846 -0
- sage/modular/modsym/boundary.py +1420 -0
- sage/modular/modsym/element.py +336 -0
- sage/modular/modsym/g1list.py +178 -0
- sage/modular/modsym/ghlist.py +182 -0
- sage/modular/modsym/hecke_operator.py +73 -0
- sage/modular/modsym/manin_symbol.cpython-314t-darwin.so +0 -0
- sage/modular/modsym/manin_symbol.pxd +5 -0
- sage/modular/modsym/manin_symbol.pyx +497 -0
- sage/modular/modsym/manin_symbol_list.py +1295 -0
- sage/modular/modsym/modsym.py +400 -0
- sage/modular/modsym/modular_symbols.py +384 -0
- sage/modular/modsym/p1list.cpython-314t-darwin.so +0 -0
- sage/modular/modsym/p1list.pxd +29 -0
- sage/modular/modsym/p1list.pyx +1372 -0
- sage/modular/modsym/p1list_nf.py +1241 -0
- sage/modular/modsym/relation_matrix.py +591 -0
- sage/modular/modsym/relation_matrix_pyx.cpython-314t-darwin.so +0 -0
- sage/modular/modsym/relation_matrix_pyx.pyx +108 -0
- sage/modular/modsym/space.py +2468 -0
- sage/modular/modsym/subspace.py +455 -0
- sage/modular/modsym/tests.py +375 -0
- sage/modular/multiple_zeta.py +2632 -0
- sage/modular/multiple_zeta_F_algebra.py +786 -0
- sage/modular/overconvergent/all.py +6 -0
- sage/modular/overconvergent/genus0.py +1878 -0
- sage/modular/overconvergent/hecke_series.py +1187 -0
- sage/modular/overconvergent/weightspace.py +778 -0
- sage/modular/pollack_stevens/all.py +4 -0
- sage/modular/pollack_stevens/distributions.py +874 -0
- sage/modular/pollack_stevens/fund_domain.py +1572 -0
- sage/modular/pollack_stevens/manin_map.py +859 -0
- sage/modular/pollack_stevens/modsym.py +1593 -0
- sage/modular/pollack_stevens/padic_lseries.py +417 -0
- sage/modular/pollack_stevens/sigma0.py +534 -0
- sage/modular/pollack_stevens/space.py +1076 -0
- sage/modular/quasimodform/all.py +3 -0
- sage/modular/quasimodform/element.py +845 -0
- sage/modular/quasimodform/ring.py +828 -0
- sage/modular/quatalg/all.py +3 -0
- sage/modular/quatalg/brandt.py +1642 -0
- sage/modular/ssmod/all.py +8 -0
- sage/modular/ssmod/ssmod.py +827 -0
- sage/rings/all__sagemath_schemes.py +1 -0
- sage/rings/polynomial/all__sagemath_schemes.py +1 -0
- sage/rings/polynomial/binary_form_reduce.py +585 -0
- sage/schemes/all.py +41 -0
- sage/schemes/berkovich/all.py +6 -0
- sage/schemes/berkovich/berkovich_cp_element.py +2582 -0
- sage/schemes/berkovich/berkovich_space.py +748 -0
- sage/schemes/curves/affine_curve.py +2928 -0
- sage/schemes/curves/all.py +33 -0
- sage/schemes/curves/closed_point.py +434 -0
- sage/schemes/curves/constructor.py +381 -0
- sage/schemes/curves/curve.py +542 -0
- sage/schemes/curves/plane_curve_arrangement.py +1283 -0
- sage/schemes/curves/point.py +463 -0
- sage/schemes/curves/projective_curve.py +3026 -0
- sage/schemes/curves/zariski_vankampen.py +1932 -0
- sage/schemes/cyclic_covers/all.py +2 -0
- sage/schemes/cyclic_covers/charpoly_frobenius.py +320 -0
- sage/schemes/cyclic_covers/constructor.py +137 -0
- sage/schemes/cyclic_covers/cycliccover_finite_field.py +1309 -0
- sage/schemes/cyclic_covers/cycliccover_generic.py +310 -0
- sage/schemes/elliptic_curves/BSD.py +1036 -0
- sage/schemes/elliptic_curves/Qcurves.py +592 -0
- sage/schemes/elliptic_curves/addition_formulas_ring.py +94 -0
- sage/schemes/elliptic_curves/all.py +49 -0
- sage/schemes/elliptic_curves/cardinality.py +609 -0
- sage/schemes/elliptic_curves/cm.py +1102 -0
- sage/schemes/elliptic_curves/constructor.py +1552 -0
- sage/schemes/elliptic_curves/ec_database.py +175 -0
- sage/schemes/elliptic_curves/ell_curve_isogeny.py +3972 -0
- sage/schemes/elliptic_curves/ell_egros.py +459 -0
- sage/schemes/elliptic_curves/ell_field.py +2836 -0
- sage/schemes/elliptic_curves/ell_finite_field.py +3359 -0
- sage/schemes/elliptic_curves/ell_generic.py +3760 -0
- sage/schemes/elliptic_curves/ell_local_data.py +1207 -0
- sage/schemes/elliptic_curves/ell_modular_symbols.py +775 -0
- sage/schemes/elliptic_curves/ell_number_field.py +4220 -0
- sage/schemes/elliptic_curves/ell_padic_field.py +107 -0
- sage/schemes/elliptic_curves/ell_point.py +4787 -0
- sage/schemes/elliptic_curves/ell_rational_field.py +7368 -0
- sage/schemes/elliptic_curves/ell_tate_curve.py +671 -0
- sage/schemes/elliptic_curves/ell_torsion.py +436 -0
- sage/schemes/elliptic_curves/ell_wp.py +352 -0
- sage/schemes/elliptic_curves/formal_group.py +760 -0
- sage/schemes/elliptic_curves/gal_reps.py +1459 -0
- sage/schemes/elliptic_curves/gal_reps_number_field.py +1669 -0
- sage/schemes/elliptic_curves/gp_simon.py +152 -0
- sage/schemes/elliptic_curves/heegner.py +7335 -0
- sage/schemes/elliptic_curves/height.py +2109 -0
- sage/schemes/elliptic_curves/hom.py +1406 -0
- sage/schemes/elliptic_curves/hom_composite.py +934 -0
- sage/schemes/elliptic_curves/hom_frobenius.py +522 -0
- sage/schemes/elliptic_curves/hom_scalar.py +531 -0
- sage/schemes/elliptic_curves/hom_sum.py +682 -0
- sage/schemes/elliptic_curves/hom_velusqrt.py +1290 -0
- sage/schemes/elliptic_curves/homset.py +271 -0
- sage/schemes/elliptic_curves/isogeny_class.py +1521 -0
- sage/schemes/elliptic_curves/isogeny_small_degree.py +2797 -0
- sage/schemes/elliptic_curves/jacobian.py +237 -0
- sage/schemes/elliptic_curves/kodaira_symbol.py +344 -0
- sage/schemes/elliptic_curves/kraus.py +1014 -0
- sage/schemes/elliptic_curves/lseries_ell.py +943 -0
- sage/schemes/elliptic_curves/mod5family.py +105 -0
- sage/schemes/elliptic_curves/mod_poly.py +197 -0
- sage/schemes/elliptic_curves/mod_sym_num.cpython-314t-darwin.so +0 -0
- sage/schemes/elliptic_curves/mod_sym_num.pyx +3796 -0
- sage/schemes/elliptic_curves/modular_parametrization.py +305 -0
- sage/schemes/elliptic_curves/padic_lseries.py +1793 -0
- sage/schemes/elliptic_curves/padics.py +1816 -0
- sage/schemes/elliptic_curves/period_lattice.py +2234 -0
- sage/schemes/elliptic_curves/period_lattice_region.cpython-314t-darwin.so +0 -0
- sage/schemes/elliptic_curves/period_lattice_region.pyx +722 -0
- sage/schemes/elliptic_curves/saturation.py +715 -0
- sage/schemes/elliptic_curves/sha_tate.py +1158 -0
- sage/schemes/elliptic_curves/weierstrass_morphism.py +1117 -0
- sage/schemes/elliptic_curves/weierstrass_transform.py +200 -0
- sage/schemes/hyperelliptic_curves/all.py +6 -0
- sage/schemes/hyperelliptic_curves/constructor.py +291 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +1914 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py +192 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +954 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py +1332 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py +84 -0
- sage/schemes/hyperelliptic_curves/invariants.py +410 -0
- sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py +315 -0
- sage/schemes/hyperelliptic_curves/jacobian_g2.py +32 -0
- sage/schemes/hyperelliptic_curves/jacobian_generic.py +419 -0
- sage/schemes/hyperelliptic_curves/jacobian_homset.py +186 -0
- sage/schemes/hyperelliptic_curves/jacobian_morphism.py +875 -0
- sage/schemes/hyperelliptic_curves/kummer_surface.py +99 -0
- sage/schemes/hyperelliptic_curves/mestre.py +302 -0
- sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +3871 -0
- sage/schemes/jacobians/abstract_jacobian.py +277 -0
- sage/schemes/jacobians/all.py +2 -0
- sage/schemes/overview.py +161 -0
- sage/schemes/plane_conics/all.py +22 -0
- sage/schemes/plane_conics/con_field.py +1296 -0
- sage/schemes/plane_conics/con_finite_field.py +158 -0
- sage/schemes/plane_conics/con_number_field.py +456 -0
- sage/schemes/plane_conics/con_rational_field.py +406 -0
- sage/schemes/plane_conics/con_rational_function_field.py +580 -0
- sage/schemes/plane_conics/constructor.py +249 -0
- sage/schemes/plane_quartics/all.py +2 -0
- sage/schemes/plane_quartics/quartic_constructor.py +71 -0
- sage/schemes/plane_quartics/quartic_generic.py +73 -0
- sage/schemes/riemann_surfaces/all.py +1 -0
- sage/schemes/riemann_surfaces/riemann_surface.py +4117 -0
- sage_wheels/share/cremona/cremona_mini.db +0 -0
- sage_wheels/share/ellcurves/rank0 +30427 -0
- sage_wheels/share/ellcurves/rank1 +31871 -0
- sage_wheels/share/ellcurves/rank10 +6 -0
- sage_wheels/share/ellcurves/rank11 +6 -0
- sage_wheels/share/ellcurves/rank12 +1 -0
- sage_wheels/share/ellcurves/rank14 +1 -0
- sage_wheels/share/ellcurves/rank15 +1 -0
- sage_wheels/share/ellcurves/rank17 +1 -0
- sage_wheels/share/ellcurves/rank19 +1 -0
- sage_wheels/share/ellcurves/rank2 +2388 -0
- sage_wheels/share/ellcurves/rank20 +1 -0
- sage_wheels/share/ellcurves/rank21 +1 -0
- sage_wheels/share/ellcurves/rank22 +1 -0
- sage_wheels/share/ellcurves/rank23 +1 -0
- sage_wheels/share/ellcurves/rank24 +1 -0
- sage_wheels/share/ellcurves/rank28 +1 -0
- sage_wheels/share/ellcurves/rank3 +836 -0
- sage_wheels/share/ellcurves/rank4 +10 -0
- sage_wheels/share/ellcurves/rank5 +5 -0
- sage_wheels/share/ellcurves/rank6 +5 -0
- sage_wheels/share/ellcurves/rank7 +5 -0
- sage_wheels/share/ellcurves/rank8 +6 -0
- 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"])
|