passagemath-schemes 10.8.1a4__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.
Files changed (312) 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.8.1a4.dist-info/METADATA +203 -0
  7. passagemath_schemes-10.8.1a4.dist-info/METADATA.bak +204 -0
  8. passagemath_schemes-10.8.1a4.dist-info/RECORD +312 -0
  9. passagemath_schemes-10.8.1a4.dist-info/WHEEL +6 -0
  10. passagemath_schemes-10.8.1a4.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 +9556 -0
  24. sage/dynamics/arithmetic_dynamics/projective_ds_helper.cpython-314t-darwin.so +0 -0
  25. sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx +301 -0
  26. sage/dynamics/arithmetic_dynamics/wehlerK3.py +2578 -0
  27. sage/lfunctions/all.py +18 -0
  28. sage/lfunctions/dokchitser.py +727 -0
  29. sage/lfunctions/pari.py +971 -0
  30. sage/lfunctions/zero_sums.cpython-314t-darwin.so +0 -0
  31. sage/lfunctions/zero_sums.pyx +1847 -0
  32. sage/modular/abvar/abvar.py +5132 -0
  33. sage/modular/abvar/abvar_ambient_jacobian.py +414 -0
  34. sage/modular/abvar/abvar_newform.py +246 -0
  35. sage/modular/abvar/all.py +8 -0
  36. sage/modular/abvar/constructor.py +187 -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 +721 -0
  40. sage/modular/abvar/homspace.py +989 -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 +741 -0
  45. sage/modular/all.py +43 -0
  46. sage/modular/arithgroup/all.py +20 -0
  47. sage/modular/arithgroup/arithgroup_element.cpython-314t-darwin.so +0 -0
  48. sage/modular/arithgroup/arithgroup_element.pyx +474 -0
  49. sage/modular/arithgroup/arithgroup_generic.py +1406 -0
  50. sage/modular/arithgroup/arithgroup_perm.py +2692 -0
  51. sage/modular/arithgroup/congroup.cpython-314t-darwin.so +0 -0
  52. sage/modular/arithgroup/congroup.pyx +334 -0
  53. sage/modular/arithgroup/congroup_gamma.py +361 -0
  54. sage/modular/arithgroup/congroup_gamma0.py +692 -0
  55. sage/modular/arithgroup/congroup_gamma1.py +659 -0
  56. sage/modular/arithgroup/congroup_gammaH.py +1491 -0
  57. sage/modular/arithgroup/congroup_generic.py +630 -0
  58. sage/modular/arithgroup/congroup_sl2z.py +266 -0
  59. sage/modular/arithgroup/farey_symbol.cpython-314t-darwin.so +0 -0
  60. sage/modular/arithgroup/farey_symbol.pyx +1067 -0
  61. sage/modular/arithgroup/tests.py +425 -0
  62. sage/modular/btquotients/all.py +4 -0
  63. sage/modular/btquotients/btquotient.py +3736 -0
  64. sage/modular/btquotients/pautomorphicform.py +2564 -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 +1107 -0
  69. sage/modular/cusps_nf.py +1270 -0
  70. sage/modular/dims.py +571 -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 +1076 -0
  77. sage/modular/hecke/algebra.py +725 -0
  78. sage/modular/hecke/all.py +19 -0
  79. sage/modular/hecke/ambient_module.py +994 -0
  80. sage/modular/hecke/degenmap.py +119 -0
  81. sage/modular/hecke/element.py +302 -0
  82. sage/modular/hecke/hecke_operator.py +736 -0
  83. sage/modular/hecke/homspace.py +185 -0
  84. sage/modular/hecke/module.py +1744 -0
  85. sage/modular/hecke/morphism.py +139 -0
  86. sage/modular/hecke/submodule.py +970 -0
  87. sage/modular/hypergeometric_misc.cpython-314t-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 +2020 -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 +1070 -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 +817 -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 +120 -0
  101. sage/modular/modform/ambient_g1.py +199 -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 +487 -0
  106. sage/modular/modform/eisenstein_submodule.py +663 -0
  107. sage/modular/modform/element.py +4105 -0
  108. sage/modular/modform/half_integral.py +154 -0
  109. sage/modular/modform/hecke_operator_on_qexp.py +247 -0
  110. sage/modular/modform/j_invariant.py +47 -0
  111. sage/modular/modform/l_series_gross_zagier.py +127 -0
  112. sage/modular/modform/l_series_gross_zagier_coeffs.cpython-314t-darwin.so +0 -0
  113. sage/modular/modform/l_series_gross_zagier_coeffs.pyx +177 -0
  114. sage/modular/modform/notes.py +45 -0
  115. sage/modular/modform/numerical.py +514 -0
  116. sage/modular/modform/periods.py +14 -0
  117. sage/modular/modform/ring.py +1257 -0
  118. sage/modular/modform/space.py +1859 -0
  119. sage/modular/modform/submodule.py +118 -0
  120. sage/modular/modform/tests.py +64 -0
  121. sage/modular/modform/theta.py +110 -0
  122. sage/modular/modform/vm_basis.py +380 -0
  123. sage/modular/modform/weight1.py +221 -0
  124. sage/modular/modform_hecketriangle/abstract_ring.py +1932 -0
  125. sage/modular/modform_hecketriangle/abstract_space.py +2527 -0
  126. sage/modular/modform_hecketriangle/all.py +30 -0
  127. sage/modular/modform_hecketriangle/analytic_type.py +590 -0
  128. sage/modular/modform_hecketriangle/constructor.py +416 -0
  129. sage/modular/modform_hecketriangle/element.py +351 -0
  130. sage/modular/modform_hecketriangle/functors.py +752 -0
  131. sage/modular/modform_hecketriangle/graded_ring.py +541 -0
  132. sage/modular/modform_hecketriangle/graded_ring_element.py +2225 -0
  133. sage/modular/modform_hecketriangle/hecke_triangle_group_element.py +3349 -0
  134. sage/modular/modform_hecketriangle/hecke_triangle_groups.py +1426 -0
  135. sage/modular/modform_hecketriangle/readme.py +1214 -0
  136. sage/modular/modform_hecketriangle/series_constructor.py +580 -0
  137. sage/modular/modform_hecketriangle/space.py +1037 -0
  138. sage/modular/modform_hecketriangle/subspace.py +423 -0
  139. sage/modular/modsym/all.py +17 -0
  140. sage/modular/modsym/ambient.py +3844 -0
  141. sage/modular/modsym/boundary.py +1420 -0
  142. sage/modular/modsym/element.py +336 -0
  143. sage/modular/modsym/g1list.py +178 -0
  144. sage/modular/modsym/ghlist.py +182 -0
  145. sage/modular/modsym/hecke_operator.py +73 -0
  146. sage/modular/modsym/manin_symbol.cpython-314t-darwin.so +0 -0
  147. sage/modular/modsym/manin_symbol.pxd +5 -0
  148. sage/modular/modsym/manin_symbol.pyx +497 -0
  149. sage/modular/modsym/manin_symbol_list.py +1291 -0
  150. sage/modular/modsym/modsym.py +400 -0
  151. sage/modular/modsym/modular_symbols.py +384 -0
  152. sage/modular/modsym/p1list_nf.py +1241 -0
  153. sage/modular/modsym/relation_matrix.py +591 -0
  154. sage/modular/modsym/relation_matrix_pyx.cpython-314t-darwin.so +0 -0
  155. sage/modular/modsym/relation_matrix_pyx.pyx +108 -0
  156. sage/modular/modsym/space.py +2468 -0
  157. sage/modular/modsym/subspace.py +455 -0
  158. sage/modular/modsym/tests.py +376 -0
  159. sage/modular/multiple_zeta.py +2635 -0
  160. sage/modular/multiple_zeta_F_algebra.py +789 -0
  161. sage/modular/overconvergent/all.py +6 -0
  162. sage/modular/overconvergent/genus0.py +1879 -0
  163. sage/modular/overconvergent/hecke_series.py +1187 -0
  164. sage/modular/overconvergent/weightspace.py +776 -0
  165. sage/modular/pollack_stevens/all.py +4 -0
  166. sage/modular/pollack_stevens/distributions.py +874 -0
  167. sage/modular/pollack_stevens/fund_domain.py +1572 -0
  168. sage/modular/pollack_stevens/manin_map.py +856 -0
  169. sage/modular/pollack_stevens/modsym.py +1590 -0
  170. sage/modular/pollack_stevens/padic_lseries.py +417 -0
  171. sage/modular/pollack_stevens/sigma0.py +534 -0
  172. sage/modular/pollack_stevens/space.py +1078 -0
  173. sage/modular/quasimodform/all.py +3 -0
  174. sage/modular/quasimodform/element.py +846 -0
  175. sage/modular/quasimodform/ring.py +826 -0
  176. sage/modular/quatalg/all.py +3 -0
  177. sage/modular/quatalg/brandt.py +1642 -0
  178. sage/modular/ssmod/all.py +8 -0
  179. sage/modular/ssmod/ssmod.py +827 -0
  180. sage/rings/all__sagemath_schemes.py +1 -0
  181. sage/rings/polynomial/all__sagemath_schemes.py +1 -0
  182. sage/rings/polynomial/binary_form_reduce.py +585 -0
  183. sage/schemes/all.py +41 -0
  184. sage/schemes/berkovich/all.py +6 -0
  185. sage/schemes/berkovich/berkovich_cp_element.py +2582 -0
  186. sage/schemes/berkovich/berkovich_space.py +700 -0
  187. sage/schemes/curves/affine_curve.py +2924 -0
  188. sage/schemes/curves/all.py +33 -0
  189. sage/schemes/curves/closed_point.py +434 -0
  190. sage/schemes/curves/constructor.py +397 -0
  191. sage/schemes/curves/curve.py +542 -0
  192. sage/schemes/curves/plane_curve_arrangement.py +1283 -0
  193. sage/schemes/curves/point.py +463 -0
  194. sage/schemes/curves/projective_curve.py +3203 -0
  195. sage/schemes/curves/weighted_projective_curve.py +106 -0
  196. sage/schemes/curves/zariski_vankampen.py +1931 -0
  197. sage/schemes/cyclic_covers/all.py +2 -0
  198. sage/schemes/cyclic_covers/charpoly_frobenius.py +320 -0
  199. sage/schemes/cyclic_covers/constructor.py +137 -0
  200. sage/schemes/cyclic_covers/cycliccover_finite_field.py +1309 -0
  201. sage/schemes/cyclic_covers/cycliccover_generic.py +310 -0
  202. sage/schemes/elliptic_curves/BSD.py +991 -0
  203. sage/schemes/elliptic_curves/Qcurves.py +592 -0
  204. sage/schemes/elliptic_curves/addition_formulas_ring.py +94 -0
  205. sage/schemes/elliptic_curves/all.py +49 -0
  206. sage/schemes/elliptic_curves/cardinality.py +609 -0
  207. sage/schemes/elliptic_curves/cm.py +1103 -0
  208. sage/schemes/elliptic_curves/constructor.py +1530 -0
  209. sage/schemes/elliptic_curves/ec_database.py +175 -0
  210. sage/schemes/elliptic_curves/ell_curve_isogeny.py +3971 -0
  211. sage/schemes/elliptic_curves/ell_egros.py +457 -0
  212. sage/schemes/elliptic_curves/ell_field.py +2837 -0
  213. sage/schemes/elliptic_curves/ell_finite_field.py +3249 -0
  214. sage/schemes/elliptic_curves/ell_generic.py +3760 -0
  215. sage/schemes/elliptic_curves/ell_local_data.py +1207 -0
  216. sage/schemes/elliptic_curves/ell_modular_symbols.py +775 -0
  217. sage/schemes/elliptic_curves/ell_number_field.py +4220 -0
  218. sage/schemes/elliptic_curves/ell_padic_field.py +107 -0
  219. sage/schemes/elliptic_curves/ell_point.py +4944 -0
  220. sage/schemes/elliptic_curves/ell_rational_field.py +7184 -0
  221. sage/schemes/elliptic_curves/ell_tate_curve.py +671 -0
  222. sage/schemes/elliptic_curves/ell_torsion.py +436 -0
  223. sage/schemes/elliptic_curves/ell_wp.py +352 -0
  224. sage/schemes/elliptic_curves/formal_group.py +760 -0
  225. sage/schemes/elliptic_curves/gal_reps.py +1459 -0
  226. sage/schemes/elliptic_curves/gal_reps_number_field.py +1663 -0
  227. sage/schemes/elliptic_curves/gp_simon.py +152 -0
  228. sage/schemes/elliptic_curves/heegner.py +7328 -0
  229. sage/schemes/elliptic_curves/height.py +2108 -0
  230. sage/schemes/elliptic_curves/hom.py +1788 -0
  231. sage/schemes/elliptic_curves/hom_composite.py +1084 -0
  232. sage/schemes/elliptic_curves/hom_fractional.py +544 -0
  233. sage/schemes/elliptic_curves/hom_frobenius.py +522 -0
  234. sage/schemes/elliptic_curves/hom_scalar.py +531 -0
  235. sage/schemes/elliptic_curves/hom_sum.py +681 -0
  236. sage/schemes/elliptic_curves/hom_velusqrt.py +1290 -0
  237. sage/schemes/elliptic_curves/homset.py +271 -0
  238. sage/schemes/elliptic_curves/isogeny_class.py +1523 -0
  239. sage/schemes/elliptic_curves/isogeny_small_degree.py +2797 -0
  240. sage/schemes/elliptic_curves/jacobian.py +247 -0
  241. sage/schemes/elliptic_curves/kodaira_symbol.py +344 -0
  242. sage/schemes/elliptic_curves/kraus.py +1014 -0
  243. sage/schemes/elliptic_curves/lseries_ell.py +915 -0
  244. sage/schemes/elliptic_curves/mod5family.py +105 -0
  245. sage/schemes/elliptic_curves/mod_poly.py +197 -0
  246. sage/schemes/elliptic_curves/mod_sym_num.cpython-314t-darwin.so +0 -0
  247. sage/schemes/elliptic_curves/mod_sym_num.pyx +3796 -0
  248. sage/schemes/elliptic_curves/modular_parametrization.py +305 -0
  249. sage/schemes/elliptic_curves/padic_lseries.py +1793 -0
  250. sage/schemes/elliptic_curves/padics.py +1816 -0
  251. sage/schemes/elliptic_curves/period_lattice.py +2234 -0
  252. sage/schemes/elliptic_curves/period_lattice_region.cpython-314t-darwin.so +0 -0
  253. sage/schemes/elliptic_curves/period_lattice_region.pyx +722 -0
  254. sage/schemes/elliptic_curves/saturation.py +716 -0
  255. sage/schemes/elliptic_curves/sha_tate.py +1158 -0
  256. sage/schemes/elliptic_curves/weierstrass_morphism.py +1117 -0
  257. sage/schemes/elliptic_curves/weierstrass_transform.py +200 -0
  258. sage/schemes/hyperelliptic_curves/all.py +6 -0
  259. sage/schemes/hyperelliptic_curves/constructor.py +369 -0
  260. sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +1948 -0
  261. sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py +192 -0
  262. sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +936 -0
  263. sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py +1332 -0
  264. sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py +84 -0
  265. sage/schemes/hyperelliptic_curves/invariants.py +410 -0
  266. sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py +312 -0
  267. sage/schemes/hyperelliptic_curves/jacobian_g2.py +32 -0
  268. sage/schemes/hyperelliptic_curves/jacobian_generic.py +437 -0
  269. sage/schemes/hyperelliptic_curves/jacobian_homset.py +186 -0
  270. sage/schemes/hyperelliptic_curves/jacobian_morphism.py +878 -0
  271. sage/schemes/hyperelliptic_curves/kummer_surface.py +99 -0
  272. sage/schemes/hyperelliptic_curves/mestre.py +302 -0
  273. sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +3863 -0
  274. sage/schemes/jacobians/abstract_jacobian.py +277 -0
  275. sage/schemes/jacobians/all.py +2 -0
  276. sage/schemes/overview.py +161 -0
  277. sage/schemes/plane_conics/all.py +22 -0
  278. sage/schemes/plane_conics/con_field.py +1296 -0
  279. sage/schemes/plane_conics/con_finite_field.py +158 -0
  280. sage/schemes/plane_conics/con_number_field.py +456 -0
  281. sage/schemes/plane_conics/con_rational_field.py +406 -0
  282. sage/schemes/plane_conics/con_rational_function_field.py +581 -0
  283. sage/schemes/plane_conics/constructor.py +249 -0
  284. sage/schemes/plane_quartics/all.py +2 -0
  285. sage/schemes/plane_quartics/quartic_constructor.py +71 -0
  286. sage/schemes/plane_quartics/quartic_generic.py +53 -0
  287. sage/schemes/riemann_surfaces/all.py +1 -0
  288. sage/schemes/riemann_surfaces/riemann_surface.py +4177 -0
  289. sage_wheels/share/cremona/cremona_mini.db +0 -0
  290. sage_wheels/share/ellcurves/rank0 +30427 -0
  291. sage_wheels/share/ellcurves/rank1 +31871 -0
  292. sage_wheels/share/ellcurves/rank10 +6 -0
  293. sage_wheels/share/ellcurves/rank11 +6 -0
  294. sage_wheels/share/ellcurves/rank12 +1 -0
  295. sage_wheels/share/ellcurves/rank14 +1 -0
  296. sage_wheels/share/ellcurves/rank15 +1 -0
  297. sage_wheels/share/ellcurves/rank17 +1 -0
  298. sage_wheels/share/ellcurves/rank19 +1 -0
  299. sage_wheels/share/ellcurves/rank2 +2388 -0
  300. sage_wheels/share/ellcurves/rank20 +1 -0
  301. sage_wheels/share/ellcurves/rank21 +1 -0
  302. sage_wheels/share/ellcurves/rank22 +1 -0
  303. sage_wheels/share/ellcurves/rank23 +1 -0
  304. sage_wheels/share/ellcurves/rank24 +1 -0
  305. sage_wheels/share/ellcurves/rank28 +1 -0
  306. sage_wheels/share/ellcurves/rank3 +836 -0
  307. sage_wheels/share/ellcurves/rank4 +10 -0
  308. sage_wheels/share/ellcurves/rank5 +5 -0
  309. sage_wheels/share/ellcurves/rank6 +5 -0
  310. sage_wheels/share/ellcurves/rank7 +5 -0
  311. sage_wheels/share/ellcurves/rank8 +6 -0
  312. 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())