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.
- passagemath_schemes/.dylibs/libflint.22.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.40.dist-info/METADATA +204 -0
- passagemath_schemes-10.6.40.dist-info/METADATA.bak +205 -0
- passagemath_schemes-10.6.40.dist-info/RECORD +314 -0
- passagemath_schemes-10.6.40.dist-info/WHEEL +6 -0
- passagemath_schemes-10.6.40.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-314-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-314-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-314-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-314-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-314-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-314-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-314-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-314-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-314-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-314-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-314-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-314-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,415 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-schemes
|
|
2
|
+
# sage.doctest: needs sage.libs.flint
|
|
3
|
+
"""
|
|
4
|
+
`L`-series of modular abelian varieties
|
|
5
|
+
|
|
6
|
+
AUTHOR:
|
|
7
|
+
|
|
8
|
+
- William Stein (2007-03)
|
|
9
|
+
|
|
10
|
+
TESTS::
|
|
11
|
+
|
|
12
|
+
sage: L = J0(37)[0].padic_lseries(5)
|
|
13
|
+
sage: loads(dumps(L)) == L
|
|
14
|
+
True
|
|
15
|
+
sage: L = J0(37)[0].lseries()
|
|
16
|
+
sage: loads(dumps(L)) == L
|
|
17
|
+
True
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
# #########################################################################
|
|
21
|
+
# Copyright (C) 2007 William Stein <wstein@gmail.com> #
|
|
22
|
+
# Distributed under the terms of the GNU General Public License (GPL) #
|
|
23
|
+
# https://www.gnu.org/licenses/ #
|
|
24
|
+
# #########################################################################
|
|
25
|
+
|
|
26
|
+
from sage.structure.sage_object import SageObject
|
|
27
|
+
from sage.rings.integer_ring import ZZ
|
|
28
|
+
from sage.rings.rational_field import QQ
|
|
29
|
+
from sage.rings.integer import Integer
|
|
30
|
+
from sage.rings.infinity import infinity
|
|
31
|
+
from sage.rings.cc import CC
|
|
32
|
+
from sage.modules.free_module import span
|
|
33
|
+
from sage.misc.misc_c import prod
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class Lseries(SageObject):
|
|
37
|
+
"""
|
|
38
|
+
Base class for `L`-series attached to modular abelian varieties.
|
|
39
|
+
|
|
40
|
+
This is a common base class for complex and `p`-adic `L`-series
|
|
41
|
+
of modular abelian varieties.
|
|
42
|
+
"""
|
|
43
|
+
def __init__(self, abvar):
|
|
44
|
+
"""
|
|
45
|
+
Called when creating an `L`-series.
|
|
46
|
+
|
|
47
|
+
INPUT:
|
|
48
|
+
|
|
49
|
+
- ``abvar`` -- a modular abelian variety
|
|
50
|
+
|
|
51
|
+
EXAMPLES::
|
|
52
|
+
|
|
53
|
+
sage: J0(11).lseries()
|
|
54
|
+
Complex L-series attached to Abelian variety J0(11) of dimension 1
|
|
55
|
+
sage: J0(11).padic_lseries(7)
|
|
56
|
+
7-adic L-series attached to Abelian variety J0(11) of dimension 1
|
|
57
|
+
"""
|
|
58
|
+
self.__abvar = abvar
|
|
59
|
+
|
|
60
|
+
def abelian_variety(self):
|
|
61
|
+
"""
|
|
62
|
+
Return the abelian variety that this `L`-series is attached to.
|
|
63
|
+
|
|
64
|
+
OUTPUT: a modular abelian variety
|
|
65
|
+
|
|
66
|
+
EXAMPLES::
|
|
67
|
+
|
|
68
|
+
sage: J0(11).padic_lseries(7).abelian_variety()
|
|
69
|
+
Abelian variety J0(11) of dimension 1
|
|
70
|
+
"""
|
|
71
|
+
return self.__abvar
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
class Lseries_complex(Lseries):
|
|
75
|
+
"""
|
|
76
|
+
A complex `L`-series attached to a modular abelian variety.
|
|
77
|
+
|
|
78
|
+
EXAMPLES::
|
|
79
|
+
|
|
80
|
+
sage: A = J0(37)
|
|
81
|
+
sage: A.lseries()
|
|
82
|
+
Complex L-series attached to Abelian variety J0(37) of dimension 2
|
|
83
|
+
"""
|
|
84
|
+
def __call__(self, s, prec=53):
|
|
85
|
+
"""
|
|
86
|
+
Evaluate this complex `L`-series at `s`.
|
|
87
|
+
|
|
88
|
+
INPUT:
|
|
89
|
+
|
|
90
|
+
- ``s`` -- complex number
|
|
91
|
+
|
|
92
|
+
- ``prec`` -- integer (default: 53); the number of bits of precision
|
|
93
|
+
used in computing the lseries of the newforms
|
|
94
|
+
|
|
95
|
+
OUTPUT: a complex number L(A, s)
|
|
96
|
+
|
|
97
|
+
EXAMPLES::
|
|
98
|
+
|
|
99
|
+
sage: L = J0(23).lseries()
|
|
100
|
+
sage: L(1) # needs sage.symbolic
|
|
101
|
+
0.248431866590600
|
|
102
|
+
sage: L(1, prec=100) # needs sage.symbolic
|
|
103
|
+
0.24843186659059968120725033931
|
|
104
|
+
|
|
105
|
+
sage: L = J0(389)[0].lseries()
|
|
106
|
+
sage: L(1) # abstol 1e-10 # long time (2s), needs sage.symbolic
|
|
107
|
+
-1.33139759782370e-19
|
|
108
|
+
sage: L(1, prec=100) # abstol 1e-20 # long time (2s), needs sage.symbolic
|
|
109
|
+
6.0129758648142797032650287762e-39
|
|
110
|
+
sage: L.rational_part()
|
|
111
|
+
0
|
|
112
|
+
|
|
113
|
+
sage: L = J1(23)[0].lseries()
|
|
114
|
+
sage: L(1) # needs sage.symbolic
|
|
115
|
+
0.248431866590600
|
|
116
|
+
|
|
117
|
+
sage: J = J0(11) * J1(11)
|
|
118
|
+
sage: J.lseries()(1) # needs sage.symbolic
|
|
119
|
+
0.0644356903227915
|
|
120
|
+
|
|
121
|
+
sage: L = JH(17,[2]).lseries()
|
|
122
|
+
sage: L(1) # needs sage.symbolic
|
|
123
|
+
0.386769938387780
|
|
124
|
+
"""
|
|
125
|
+
abelian_variety = self.abelian_variety()
|
|
126
|
+
# Check for easy dimension zero case
|
|
127
|
+
if abelian_variety.dimension() == 0:
|
|
128
|
+
return CC(1)
|
|
129
|
+
try:
|
|
130
|
+
factors = self.__factors[prec]
|
|
131
|
+
return prod(L(s) for L in factors)
|
|
132
|
+
except AttributeError:
|
|
133
|
+
self.__factors = {}
|
|
134
|
+
except KeyError:
|
|
135
|
+
pass
|
|
136
|
+
abelian_variety = self.abelian_variety()
|
|
137
|
+
newforms = abelian_variety.newform_decomposition('a')
|
|
138
|
+
|
|
139
|
+
factors = [newform.lseries(embedding=i, prec=prec)
|
|
140
|
+
for newform in newforms
|
|
141
|
+
for i in range(newform.base_ring().degree())]
|
|
142
|
+
self.__factors[prec] = factors
|
|
143
|
+
|
|
144
|
+
return prod(L(s) for L in factors)
|
|
145
|
+
|
|
146
|
+
def __eq__(self, other):
|
|
147
|
+
"""
|
|
148
|
+
Compare this complex `L`-series to another one.
|
|
149
|
+
|
|
150
|
+
INPUT:
|
|
151
|
+
|
|
152
|
+
- ``other`` -- object
|
|
153
|
+
|
|
154
|
+
OUTPUT: boolean
|
|
155
|
+
|
|
156
|
+
EXAMPLES::
|
|
157
|
+
|
|
158
|
+
sage: L = J0(37)[0].lseries()
|
|
159
|
+
sage: M = J0(37)[1].lseries()
|
|
160
|
+
sage: L == M
|
|
161
|
+
False
|
|
162
|
+
sage: L == L
|
|
163
|
+
True
|
|
164
|
+
"""
|
|
165
|
+
if not isinstance(other, Lseries_complex):
|
|
166
|
+
return False
|
|
167
|
+
return self.abelian_variety() == other.abelian_variety()
|
|
168
|
+
|
|
169
|
+
def __ne__(self, other):
|
|
170
|
+
"""
|
|
171
|
+
Check whether ``self`` is not equal to ``other``.
|
|
172
|
+
|
|
173
|
+
INPUT:
|
|
174
|
+
|
|
175
|
+
- ``other`` -- object
|
|
176
|
+
|
|
177
|
+
OUTPUT: boolean
|
|
178
|
+
|
|
179
|
+
EXAMPLES::
|
|
180
|
+
|
|
181
|
+
sage: L = J0(37)[0].lseries()
|
|
182
|
+
sage: M = J0(37)[1].lseries()
|
|
183
|
+
sage: L != M
|
|
184
|
+
True
|
|
185
|
+
sage: L != L
|
|
186
|
+
False
|
|
187
|
+
"""
|
|
188
|
+
return not (self == other)
|
|
189
|
+
|
|
190
|
+
def _repr_(self):
|
|
191
|
+
"""
|
|
192
|
+
String representation of `L`-series.
|
|
193
|
+
|
|
194
|
+
OUTPUT: string
|
|
195
|
+
|
|
196
|
+
EXAMPLES::
|
|
197
|
+
|
|
198
|
+
sage: L = J0(37).lseries()
|
|
199
|
+
sage: L._repr_()
|
|
200
|
+
'Complex L-series attached to Abelian variety J0(37) of dimension 2'
|
|
201
|
+
"""
|
|
202
|
+
return "Complex L-series attached to %s" % self.abelian_variety()
|
|
203
|
+
|
|
204
|
+
def vanishes_at_1(self):
|
|
205
|
+
"""
|
|
206
|
+
Return ``True`` if `L(1)=0` and return ``False`` otherwise.
|
|
207
|
+
|
|
208
|
+
OUTPUT: boolean
|
|
209
|
+
|
|
210
|
+
EXAMPLES:
|
|
211
|
+
|
|
212
|
+
Numerically, the `L`-series for `J_0(389)` appears to vanish
|
|
213
|
+
at 1. This is confirmed by this algebraic computation::
|
|
214
|
+
|
|
215
|
+
sage: L = J0(389)[0].lseries(); L
|
|
216
|
+
Complex L-series attached to Simple abelian subvariety 389a(1,389) of dimension 1 of J0(389)
|
|
217
|
+
sage: L(1) # long time (2s) abstol 1e-10
|
|
218
|
+
-1.33139759782370e-19
|
|
219
|
+
sage: L.vanishes_at_1()
|
|
220
|
+
True
|
|
221
|
+
|
|
222
|
+
Numerically, one might guess that the `L`-series for `J_1(23)`
|
|
223
|
+
and `J_1(31)` vanish at 1. This algebraic computation shows
|
|
224
|
+
otherwise::
|
|
225
|
+
|
|
226
|
+
sage: L = J1(23).lseries(); L
|
|
227
|
+
Complex L-series attached to Abelian variety J1(23) of dimension 12
|
|
228
|
+
sage: L(1) # long time (about 3 s)
|
|
229
|
+
0.0001295198...
|
|
230
|
+
sage: L.vanishes_at_1()
|
|
231
|
+
False
|
|
232
|
+
sage: abs(L(1, prec=100)- 0.00012951986142702571478817757148) < 1e-32 # long time (about 3 s)
|
|
233
|
+
True
|
|
234
|
+
|
|
235
|
+
sage: L = J1(31).lseries(); L
|
|
236
|
+
Complex L-series attached to Abelian variety J1(31) of dimension 26
|
|
237
|
+
sage: abs(L(1) - 3.45014267547611e-7) < 1e-15 # long time (about 8 s)
|
|
238
|
+
True
|
|
239
|
+
sage: L.vanishes_at_1() # long time (about 6 s)
|
|
240
|
+
False
|
|
241
|
+
"""
|
|
242
|
+
abelian_variety = self.abelian_variety()
|
|
243
|
+
# Check for easy dimension zero case
|
|
244
|
+
if abelian_variety.dimension() == 0:
|
|
245
|
+
return False
|
|
246
|
+
if not abelian_variety.is_simple():
|
|
247
|
+
from .constructor import AbelianVariety
|
|
248
|
+
decomp = (AbelianVariety(f) for f in
|
|
249
|
+
abelian_variety.newform_decomposition('a'))
|
|
250
|
+
return any(S.lseries().vanishes_at_1() for S in decomp)
|
|
251
|
+
modular_symbols = abelian_variety.modular_symbols()
|
|
252
|
+
Phi = modular_symbols.rational_period_mapping()
|
|
253
|
+
ambient_module = modular_symbols.ambient_module()
|
|
254
|
+
|
|
255
|
+
e = ambient_module([0, infinity])
|
|
256
|
+
return Phi(e).is_zero()
|
|
257
|
+
|
|
258
|
+
def rational_part(self):
|
|
259
|
+
"""
|
|
260
|
+
Return the rational part of this `L`-function at the central critical
|
|
261
|
+
value 1.
|
|
262
|
+
|
|
263
|
+
OUTPUT: a rational number
|
|
264
|
+
|
|
265
|
+
EXAMPLES::
|
|
266
|
+
|
|
267
|
+
sage: A, B = J0(43).decomposition()
|
|
268
|
+
sage: A.lseries().rational_part()
|
|
269
|
+
0
|
|
270
|
+
sage: B.lseries().rational_part()
|
|
271
|
+
2/7
|
|
272
|
+
"""
|
|
273
|
+
abelian_variety = self.abelian_variety()
|
|
274
|
+
modular_symbols = abelian_variety.modular_symbols()
|
|
275
|
+
Phi = modular_symbols.rational_period_mapping()
|
|
276
|
+
ambient_module = modular_symbols.ambient_module()
|
|
277
|
+
|
|
278
|
+
if self.vanishes_at_1():
|
|
279
|
+
return QQ(0)
|
|
280
|
+
else:
|
|
281
|
+
s = ambient_module.sturm_bound()
|
|
282
|
+
I = ambient_module.hecke_images(0, range(1, s+1))
|
|
283
|
+
PhiTe = span([Phi(ambient_module(I[n]))
|
|
284
|
+
for n in range(I.nrows())], ZZ)
|
|
285
|
+
|
|
286
|
+
ambient_plus = ambient_module.sign_submodule(1)
|
|
287
|
+
ambient_plus_cusp = ambient_plus.cuspidal_submodule()
|
|
288
|
+
PhiH1plus = span([Phi(x) for
|
|
289
|
+
x in ambient_plus_cusp.integral_basis()], ZZ)
|
|
290
|
+
|
|
291
|
+
return PhiTe.index_in(PhiH1plus)
|
|
292
|
+
|
|
293
|
+
lratio = rational_part
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
class Lseries_padic(Lseries):
|
|
297
|
+
"""
|
|
298
|
+
A `p`-adic `L`-series attached to a modular abelian variety.
|
|
299
|
+
"""
|
|
300
|
+
def __init__(self, abvar, p):
|
|
301
|
+
"""
|
|
302
|
+
Create a `p`-adic `L`-series.
|
|
303
|
+
|
|
304
|
+
EXAMPLES::
|
|
305
|
+
|
|
306
|
+
sage: J0(37)[0].padic_lseries(389)
|
|
307
|
+
389-adic L-series attached to Simple abelian subvariety 37a(1,37) of dimension 1 of J0(37)
|
|
308
|
+
"""
|
|
309
|
+
Lseries.__init__(self, abvar)
|
|
310
|
+
p = Integer(p)
|
|
311
|
+
if not p.is_prime():
|
|
312
|
+
raise ValueError("p (=%s) must be prime" % p)
|
|
313
|
+
self.__p = p
|
|
314
|
+
|
|
315
|
+
def __eq__(self, other):
|
|
316
|
+
"""
|
|
317
|
+
Compare this `p`-adic `L`-series to another one.
|
|
318
|
+
|
|
319
|
+
First the abelian varieties are compared; if they are the same,
|
|
320
|
+
then the primes are compared.
|
|
321
|
+
|
|
322
|
+
INPUT:
|
|
323
|
+
|
|
324
|
+
- ``other`` -- object
|
|
325
|
+
|
|
326
|
+
OUTPUT: boolean
|
|
327
|
+
|
|
328
|
+
EXAMPLES::
|
|
329
|
+
|
|
330
|
+
sage: L = J0(37)[0].padic_lseries(5)
|
|
331
|
+
sage: M = J0(37)[1].padic_lseries(5)
|
|
332
|
+
sage: K = J0(37)[0].padic_lseries(3)
|
|
333
|
+
sage: L == K
|
|
334
|
+
False
|
|
335
|
+
sage: L == M
|
|
336
|
+
False
|
|
337
|
+
sage: L == L
|
|
338
|
+
True
|
|
339
|
+
"""
|
|
340
|
+
if not isinstance(other, Lseries_padic):
|
|
341
|
+
return False
|
|
342
|
+
return (self.abelian_variety() == other.abelian_variety() and
|
|
343
|
+
self.__p == other.__p)
|
|
344
|
+
|
|
345
|
+
def __ne__(self, other):
|
|
346
|
+
"""
|
|
347
|
+
Check whether ``self`` is not equal to ``other``.
|
|
348
|
+
|
|
349
|
+
INPUT:
|
|
350
|
+
|
|
351
|
+
- ``other`` -- object
|
|
352
|
+
|
|
353
|
+
OUTPUT: boolean
|
|
354
|
+
|
|
355
|
+
EXAMPLES::
|
|
356
|
+
|
|
357
|
+
sage: L = J0(37)[0].padic_lseries(5)
|
|
358
|
+
sage: M = J0(37)[1].padic_lseries(5)
|
|
359
|
+
sage: K = J0(37)[0].padic_lseries(3)
|
|
360
|
+
sage: L != K
|
|
361
|
+
True
|
|
362
|
+
sage: L != M
|
|
363
|
+
True
|
|
364
|
+
sage: L != L
|
|
365
|
+
False
|
|
366
|
+
"""
|
|
367
|
+
return not (self == other)
|
|
368
|
+
|
|
369
|
+
def prime(self):
|
|
370
|
+
"""
|
|
371
|
+
Return the prime `p` of this `p`-adic `L`-series.
|
|
372
|
+
|
|
373
|
+
EXAMPLES::
|
|
374
|
+
|
|
375
|
+
sage: J0(11).padic_lseries(7).prime()
|
|
376
|
+
7
|
|
377
|
+
"""
|
|
378
|
+
return self.__p
|
|
379
|
+
|
|
380
|
+
def power_series(self, n=2, prec=5):
|
|
381
|
+
"""
|
|
382
|
+
Return the `n`-th approximation to this `p`-adic `L`-series as
|
|
383
|
+
a power series in `T`.
|
|
384
|
+
|
|
385
|
+
Each coefficient is a `p`-adic number
|
|
386
|
+
whose precision is provably correct.
|
|
387
|
+
|
|
388
|
+
NOTE: This is not yet implemented.
|
|
389
|
+
|
|
390
|
+
EXAMPLES::
|
|
391
|
+
|
|
392
|
+
sage: L = J0(37)[0].padic_lseries(5)
|
|
393
|
+
sage: L.power_series()
|
|
394
|
+
Traceback (most recent call last):
|
|
395
|
+
...
|
|
396
|
+
NotImplementedError
|
|
397
|
+
sage: L.power_series(3,7)
|
|
398
|
+
Traceback (most recent call last):
|
|
399
|
+
...
|
|
400
|
+
NotImplementedError
|
|
401
|
+
"""
|
|
402
|
+
raise NotImplementedError
|
|
403
|
+
|
|
404
|
+
def _repr_(self):
|
|
405
|
+
"""
|
|
406
|
+
String representation of this `p`-adic `L`-series.
|
|
407
|
+
|
|
408
|
+
EXAMPLES::
|
|
409
|
+
|
|
410
|
+
sage: L = J0(37)[0].padic_lseries(5)
|
|
411
|
+
sage: L._repr_()
|
|
412
|
+
'5-adic L-series attached to Simple abelian subvariety 37a(1,37) of dimension 1 of J0(37)'
|
|
413
|
+
"""
|
|
414
|
+
return "%s-adic L-series attached to %s" % (self.__p,
|
|
415
|
+
self.abelian_variety())
|