passagemath-schemes 10.5.44__cp313-cp313-musllinux_1_2_aarch64.whl → 10.6.42__cp313-cp313-musllinux_1_2_aarch64.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 (164) hide show
  1. passagemath_schemes/__init__.py +3 -0
  2. {passagemath_schemes-10.5.44.dist-info → passagemath_schemes-10.6.42.dist-info}/METADATA +41 -41
  3. {passagemath_schemes-10.5.44.dist-info → passagemath_schemes-10.6.42.dist-info}/METADATA.bak +42 -42
  4. {passagemath_schemes-10.5.44.dist-info → passagemath_schemes-10.6.42.dist-info}/RECORD +158 -139
  5. passagemath_schemes-10.6.42.dist-info/top_level.txt +3 -0
  6. passagemath_schemes.libs/{libflint-7dd7ad94.so.19.0.0 → libflint-edf7fb90.so.22.0.0} +0 -0
  7. passagemath_schemes.libs/{libgcc_s-69c45f16.so.1 → libgcc_s-2d945d6c.so.1} +0 -0
  8. passagemath_schemes.libs/{libgmp-8e78bd9b.so.10.5.0 → libgmp-28992bcb.so.10.5.0} +0 -0
  9. passagemath_schemes.libs/{libgmpxx-e6de26f1.so.4.7.0 → libgmpxx-fecb01a9.so.4.7.0} +0 -0
  10. passagemath_schemes.libs/{libmpfr-5ff10580.so.6.2.1 → libmpfr-1fc8ea36.so.6.2.2} +0 -0
  11. passagemath_schemes.libs/{libstdc++-1f1a71be.so.6.0.33 → libstdc++-85f2cd6d.so.6.0.33} +0 -0
  12. sage/all__sagemath_schemes.py +3 -2
  13. sage/databases/all__sagemath_schemes.py +0 -10
  14. sage/dynamics/arithmetic_dynamics/berkovich_ds.py +4 -4
  15. sage/dynamics/arithmetic_dynamics/generic_ds.py +3 -3
  16. sage/dynamics/arithmetic_dynamics/projective_ds.py +7 -7
  17. sage/dynamics/arithmetic_dynamics/projective_ds_helper.cpython-313-aarch64-linux-musl.so +0 -0
  18. sage/dynamics/arithmetic_dynamics/wehlerK3.py +18 -18
  19. sage/lfunctions/zero_sums.cpython-313-aarch64-linux-musl.so +0 -0
  20. sage/modular/abvar/abvar.py +12 -11
  21. sage/modular/abvar/constructor.py +3 -3
  22. sage/modular/abvar/cuspidal_subgroup.py +5 -6
  23. sage/modular/abvar/finite_subgroup.py +20 -18
  24. sage/modular/abvar/homology.py +1 -2
  25. sage/modular/abvar/homspace.py +1 -1
  26. sage/modular/abvar/lseries.py +3 -3
  27. sage/modular/abvar/morphism.py +1 -1
  28. sage/modular/abvar/torsion_point.py +1 -1
  29. sage/modular/abvar/torsion_subgroup.py +1 -1
  30. sage/modular/arithgroup/arithgroup_element.cpython-313-aarch64-linux-musl.so +0 -0
  31. sage/modular/arithgroup/arithgroup_perm.py +16 -16
  32. sage/modular/arithgroup/congroup.cpython-313-aarch64-linux-musl.so +0 -0
  33. sage/modular/arithgroup/congroup_gamma0.py +2 -2
  34. sage/modular/arithgroup/congroup_gamma1.py +4 -4
  35. sage/modular/arithgroup/congroup_gammaH.py +2 -2
  36. sage/modular/arithgroup/congroup_generic.py +2 -3
  37. sage/modular/arithgroup/congroup_sl2z.py +3 -3
  38. sage/modular/arithgroup/farey_symbol.cpython-313-aarch64-linux-musl.so +0 -0
  39. sage/modular/arithgroup/farey_symbol.pyx +1 -2
  40. sage/modular/btquotients/btquotient.py +4 -5
  41. sage/modular/btquotients/pautomorphicform.py +2 -2
  42. sage/modular/cusps.py +6 -4
  43. sage/modular/cusps_nf.py +7 -8
  44. sage/modular/dirichlet.py +34 -43
  45. sage/modular/drinfeld_modform/element.py +4 -4
  46. sage/modular/drinfeld_modform/ring.py +12 -12
  47. sage/modular/drinfeld_modform/tutorial.py +1 -1
  48. sage/modular/hecke/algebra.py +7 -5
  49. sage/modular/hecke/ambient_module.py +2 -2
  50. sage/modular/hecke/element.py +7 -2
  51. sage/modular/hecke/module.py +9 -9
  52. sage/modular/hecke/submodule.py +6 -8
  53. sage/modular/hypergeometric_misc.cpython-313-aarch64-linux-musl.so +0 -0
  54. sage/modular/hypergeometric_misc.pyx +3 -2
  55. sage/modular/hypergeometric_motive.py +2 -2
  56. sage/modular/local_comp/local_comp.py +19 -11
  57. sage/modular/local_comp/type_space.py +10 -8
  58. sage/modular/modform/ambient.py +4 -3
  59. sage/modular/modform/cuspidal_submodule.py +2 -2
  60. sage/modular/modform/element.py +72 -72
  61. sage/modular/modform/half_integral.py +1 -1
  62. sage/modular/modform/l_series_gross_zagier.py +3 -0
  63. sage/modular/modform/l_series_gross_zagier_coeffs.cpython-313-aarch64-linux-musl.so +0 -0
  64. sage/modular/modform/l_series_gross_zagier_coeffs.pyx +5 -2
  65. sage/modular/modform/ring.py +10 -12
  66. sage/modular/modform/space.py +18 -21
  67. sage/modular/modform/weight1.py +1 -2
  68. sage/modular/modform_hecketriangle/abstract_ring.py +7 -14
  69. sage/modular/modform_hecketriangle/abstract_space.py +63 -66
  70. sage/modular/modform_hecketriangle/graded_ring_element.py +11 -12
  71. sage/modular/modform_hecketriangle/hecke_triangle_group_element.py +82 -84
  72. sage/modular/modform_hecketriangle/hecke_triangle_groups.py +2 -2
  73. sage/modular/modform_hecketriangle/readme.py +9 -11
  74. sage/modular/modform_hecketriangle/series_constructor.py +10 -18
  75. sage/modular/modform_hecketriangle/space.py +29 -30
  76. sage/modular/modform_hecketriangle/subspace.py +9 -7
  77. sage/modular/modsym/ambient.py +13 -20
  78. sage/modular/modsym/boundary.py +2 -2
  79. sage/modular/modsym/manin_symbol.cpython-313-aarch64-linux-musl.so +0 -0
  80. sage/modular/modsym/manin_symbol_list.py +3 -7
  81. sage/modular/modsym/relation_matrix_pyx.cpython-313-aarch64-linux-musl.so +0 -0
  82. sage/modular/modsym/space.py +10 -22
  83. sage/modular/modsym/subspace.py +5 -7
  84. sage/modular/multiple_zeta.py +11 -13
  85. sage/modular/multiple_zeta_F_algebra.py +4 -6
  86. sage/modular/overconvergent/genus0.py +5 -4
  87. sage/modular/overconvergent/hecke_series.py +2 -2
  88. sage/modular/pollack_stevens/distributions.py +2 -2
  89. sage/modular/pollack_stevens/fund_domain.py +26 -29
  90. sage/modular/pollack_stevens/manin_map.py +15 -10
  91. sage/modular/pollack_stevens/modsym.py +18 -18
  92. sage/modular/quasimodform/element.py +10 -10
  93. sage/modular/quasimodform/ring.py +22 -22
  94. sage/modular/ssmod/ssmod.py +5 -12
  95. sage/rings/polynomial/binary_form_reduce.py +1 -1
  96. sage/schemes/curves/affine_curve.py +4 -4
  97. sage/schemes/curves/plane_curve_arrangement.py +28 -24
  98. sage/schemes/elliptic_curves/BSD.py +1 -1
  99. sage/schemes/elliptic_curves/addition_formulas_ring.py +4 -0
  100. sage/schemes/elliptic_curves/cm.py +1 -1
  101. sage/schemes/elliptic_curves/constructor.py +3 -3
  102. sage/schemes/elliptic_curves/ell_egros.py +1 -1
  103. sage/schemes/elliptic_curves/ell_field.py +57 -46
  104. sage/schemes/elliptic_curves/ell_finite_field.py +138 -26
  105. sage/schemes/elliptic_curves/ell_local_data.py +9 -9
  106. sage/schemes/elliptic_curves/ell_number_field.py +25 -24
  107. sage/schemes/elliptic_curves/ell_point.py +21 -22
  108. sage/schemes/elliptic_curves/ell_rational_field.py +38 -28
  109. sage/schemes/elliptic_curves/formal_group.py +1 -1
  110. sage/schemes/elliptic_curves/heegner.py +11 -8
  111. sage/schemes/elliptic_curves/height.py +26 -23
  112. sage/schemes/elliptic_curves/hom.py +2 -1
  113. sage/schemes/elliptic_curves/hom_composite.py +11 -11
  114. sage/schemes/elliptic_curves/hom_frobenius.py +8 -8
  115. sage/schemes/elliptic_curves/hom_sum.py +7 -1
  116. sage/schemes/elliptic_curves/hom_velusqrt.py +13 -7
  117. sage/schemes/elliptic_curves/homset.py +2 -2
  118. sage/schemes/elliptic_curves/isogeny_small_degree.py +1 -1
  119. sage/schemes/elliptic_curves/mod_poly.py +12 -5
  120. sage/schemes/elliptic_curves/mod_sym_num.cpython-313-aarch64-linux-musl.so +0 -0
  121. sage/schemes/elliptic_curves/padic_lseries.py +25 -13
  122. sage/schemes/elliptic_curves/padics.py +71 -63
  123. sage/schemes/elliptic_curves/period_lattice.py +78 -27
  124. sage/schemes/elliptic_curves/period_lattice_region.cpython-313-aarch64-linux-musl.so +0 -0
  125. sage/schemes/elliptic_curves/sha_tate.py +1 -1
  126. sage/schemes/elliptic_curves/weierstrass_morphism.py +2 -2
  127. sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +1 -1
  128. sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py +1 -1
  129. sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +10 -20
  130. sage/schemes/jacobians/abstract_jacobian.py +1 -1
  131. sage/schemes/plane_conics/con_field.py +42 -42
  132. sage/schemes/plane_conics/con_rational_field.py +1 -1
  133. sage/schemes/riemann_surfaces/riemann_surface.py +8 -8
  134. sage_wheels/share/cremona/cremona_mini.db +0 -0
  135. sage_wheels/share/ellcurves/rank0 +30427 -0
  136. sage_wheels/share/ellcurves/rank1 +31871 -0
  137. sage_wheels/share/ellcurves/rank10 +6 -0
  138. sage_wheels/share/ellcurves/rank11 +6 -0
  139. sage_wheels/share/ellcurves/rank12 +1 -0
  140. sage_wheels/share/ellcurves/rank14 +1 -0
  141. sage_wheels/share/ellcurves/rank15 +1 -0
  142. sage_wheels/share/ellcurves/rank17 +1 -0
  143. sage_wheels/share/ellcurves/rank19 +1 -0
  144. sage_wheels/share/ellcurves/rank2 +2388 -0
  145. sage_wheels/share/ellcurves/rank20 +1 -0
  146. sage_wheels/share/ellcurves/rank21 +1 -0
  147. sage_wheels/share/ellcurves/rank22 +1 -0
  148. sage_wheels/share/ellcurves/rank23 +1 -0
  149. sage_wheels/share/ellcurves/rank24 +1 -0
  150. sage_wheels/share/ellcurves/rank28 +1 -0
  151. sage_wheels/share/ellcurves/rank3 +836 -0
  152. sage_wheels/share/ellcurves/rank4 +10 -0
  153. sage_wheels/share/ellcurves/rank5 +5 -0
  154. sage_wheels/share/ellcurves/rank6 +5 -0
  155. sage_wheels/share/ellcurves/rank7 +5 -0
  156. sage_wheels/share/ellcurves/rank8 +6 -0
  157. sage_wheels/share/ellcurves/rank9 +7 -0
  158. passagemath_schemes-10.5.44.dist-info/top_level.txt +0 -2
  159. sage/databases/db_modular_polynomials.py +0 -250
  160. sage/databases/stein_watkins.py +0 -363
  161. sage/modular/modsym/p1list.cpython-313-aarch64-linux-musl.so +0 -0
  162. sage/modular/modsym/p1list.pxd +0 -29
  163. sage/modular/modsym/p1list.pyx +0 -1372
  164. {passagemath_schemes-10.5.44.dist-info → passagemath_schemes-10.6.42.dist-info}/WHEEL +0 -0
@@ -37,11 +37,11 @@ from sage.rings.laurent_series_ring import LaurentSeriesRing
37
37
  from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
38
38
  from sage.rings.power_series_ring import PowerSeriesRing
39
39
  from sage.rings.rational_field import RationalField
40
- import sage.schemes.hyperelliptic_curves.hypellfrob
41
- import sage.schemes.hyperelliptic_curves.monsky_washnitzer
42
40
 
43
41
  lazy_import('sage.rings.padics.factory', ['Qp', 'Zp'])
44
-
42
+ lazy_import('sage.schemes.hyperelliptic_curves.hypellfrob', 'hypellfrob')
43
+ lazy_import('sage.schemes.hyperelliptic_curves.monsky_washnitzer',
44
+ ['adjusted_prec', 'matrix_of_frobenius'])
45
45
 
46
46
  from . import padic_lseries as plseries
47
47
 
@@ -169,7 +169,7 @@ def padic_lseries(self, p, normalize=None, implementation='eclib',
169
169
 
170
170
  Next consider the curve 37b::
171
171
 
172
- sage: # needs database_cremona_mini_ellcurve
172
+ sage: # needs database_cremona_mini_ellcurve sage.graphs
173
173
  sage: e = EllipticCurve('37b')
174
174
  sage: L = e.padic_lseries(3)
175
175
  sage: P = L.series(5)
@@ -184,23 +184,26 @@ def padic_lseries(self, p, normalize=None, implementation='eclib',
184
184
 
185
185
  We can use Sage modular symbols instead to compute the `L`-series::
186
186
 
187
- sage: # needs database_cremona_mini_ellcurve
187
+ sage: # needs database_cremona_mini_ellcurve sage.graphs
188
188
  sage: e = EllipticCurve('11a')
189
189
  sage: L = e.padic_lseries(3, implementation='sage')
190
- sage: L.series(5,prec=10)
191
- 2 + 3 + 3^2 + 2*3^3 + 2*3^5 + 3^6 + O(3^7) + (1 + 3 + 2*3^2 + 3^3 + O(3^4))*T + (1 + 2*3 + O(3^4))*T^2 + (3 + 2*3^2 + O(3^3))*T^3 + (2*3 + 3^2 + O(3^3))*T^4 + (2 + 2*3 + 2*3^2 + O(3^3))*T^5 + (1 + 3^2 + O(3^3))*T^6 + (2 + 3^2 + O(3^3))*T^7 + (2 + 2*3 + 2*3^2 + O(3^3))*T^8 + (2 + O(3^2))*T^9 + O(T^10)
190
+ sage: L.series(5, prec=10)
191
+ 2 + 3 + 3^2 + 2*3^3 + 2*3^5 + 3^6 + O(3^7) + (1 + 3 + 2*3^2 + 3^3 + O(3^4))*T
192
+ + (1 + 2*3 + O(3^4))*T^2 + (3 + 2*3^2 + O(3^3))*T^3 + (2*3 + 3^2 + O(3^3))*T^4
193
+ + (2 + 2*3 + 2*3^2 + O(3^3))*T^5 + (1 + 3^2 + O(3^3))*T^6 + (2 + 3^2 + O(3^3))*T^7
194
+ + (2 + 2*3 + 2*3^2 + O(3^3))*T^8 + (2 + O(3^2))*T^9 + O(T^10)
192
195
 
193
196
  Also the numerical modular symbols can be used.
194
197
  This may allow for much larger conductor in some instances::
195
198
 
196
199
  sage: E = EllipticCurve([101,103])
197
200
  sage: L = E.padic_lseries(5, implementation='num')
198
- sage: L.series(2)
201
+ sage: L.series(2) # needs sage.graphs
199
202
  O(5^4) + (3 + O(5))*T + (1 + O(5))*T^2 + (3 + O(5))*T^3 + O(5)*T^4 + O(T^5)
200
203
 
201
204
  Finally, we can use the overconvergent method of Pollack-Stevens.::
202
205
 
203
- sage: # needs database_cremona_mini_ellcurve
206
+ sage: # needs database_cremona_mini_ellcurve sage.graphs
204
207
  sage: e = EllipticCurve('11a')
205
208
  sage: L = e.padic_lseries(3, implementation='pollackstevens', precision=6)
206
209
  sage: L.series(5)
@@ -278,48 +281,48 @@ def padic_regulator(self, p, prec=20, height=None, check_hypotheses=True):
278
281
 
279
282
  EXAMPLES::
280
283
 
281
- sage: # needs database_cremona_mini_ellcurve
284
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
282
285
  sage: E = EllipticCurve("37a")
283
286
  sage: E.padic_regulator(5, 10)
284
287
  5 + 5^2 + 5^3 + 3*5^6 + 4*5^7 + 5^9 + O(5^10)
285
288
 
286
289
  An anomalous case::
287
290
 
288
- sage: E.padic_regulator(53, 10) # needs database_cremona_mini_ellcurve
291
+ sage: E.padic_regulator(53, 10) # needs database_cremona_mini_ellcurve sage.symbolic
289
292
  26*53^-1 + 30 + 20*53 + 47*53^2 + 10*53^3 + 32*53^4 + 9*53^5 + 22*53^6 + 35*53^7 + 30*53^8 + O(53^9)
290
293
 
291
294
  An anomalous case where the precision drops some::
292
295
 
293
- sage: # needs database_cremona_mini_ellcurve
296
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
294
297
  sage: E = EllipticCurve("5077a")
295
298
  sage: E.padic_regulator(5, 10)
296
299
  5 + 5^2 + 4*5^3 + 2*5^4 + 2*5^5 + 2*5^6 + 4*5^7 + 2*5^8 + 5^9 + O(5^10)
297
300
 
298
301
  Check that answers agree over a range of precisions::
299
302
 
300
- sage: # needs database_cremona_mini_ellcurve
301
- sage: max_prec = 30 # make sure we get past p^2 # long time
302
- sage: full = E.padic_regulator(5, max_prec) # long time
303
- sage: for prec in range(1, max_prec): # long time
303
+ sage: # long time, needs database_cremona_mini_ellcurve sage.symbolic
304
+ sage: max_prec = 30 # make sure we get past p^2
305
+ sage: full = E.padic_regulator(5, max_prec)
306
+ sage: for prec in range(1, max_prec):
304
307
  ....: assert E.padic_regulator(5, prec) == full
305
308
 
306
309
  A case where the generator belongs to the formal group already
307
310
  (:issue:`3632`)::
308
311
 
309
312
  sage: E = EllipticCurve([37,0])
310
- sage: E.padic_regulator(5,10)
313
+ sage: E.padic_regulator(5,10) # needs sage.symbolic
311
314
  2*5^2 + 2*5^3 + 5^4 + 5^5 + 4*5^6 + 3*5^8 + 4*5^9 + O(5^10)
312
315
 
313
316
  The result is not dependent on the model for the curve::
314
317
 
315
318
  sage: E = EllipticCurve([0,0,0,0,2^12*17])
316
319
  sage: Em = E.minimal_model()
317
- sage: E.padic_regulator(7) == Em.padic_regulator(7)
320
+ sage: E.padic_regulator(7) == Em.padic_regulator(7) # needs sage.symbolic
318
321
  True
319
322
 
320
323
  Allow a python int as input::
321
324
 
322
- sage: # needs database_cremona_mini_ellcurve
325
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
323
326
  sage: E = EllipticCurve('37a')
324
327
  sage: E.padic_regulator(int(5))
325
328
  5 + 5^2 + 5^3 + 3*5^6 + 4*5^7 + 5^9 + 5^10 + 3*5^11 + 3*5^12 + 5^13 + 4*5^14 + 5^15 + 2*5^16 + 5^17 + 2*5^18 + 4*5^19 + O(5^20)
@@ -384,14 +387,14 @@ def padic_height_pairing_matrix(self, p, prec=20, height=None, check_hypotheses=
384
387
 
385
388
  EXAMPLES::
386
389
 
387
- sage: # needs database_cremona_mini_ellcurve
390
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
388
391
  sage: E = EllipticCurve("37a")
389
392
  sage: E.padic_height_pairing_matrix(5, 10)
390
393
  [5 + 5^2 + 5^3 + 3*5^6 + 4*5^7 + 5^9 + O(5^10)]
391
394
 
392
395
  A rank two example::
393
396
 
394
- sage: # needs database_cremona_mini_ellcurve
397
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
395
398
  sage: e = EllipticCurve('389a')
396
399
  sage: e._set_gens([e(-1, 1), e(1,0)]) # avoid platform dependent gens
397
400
  sage: e.padic_height_pairing_matrix(5,10)
@@ -400,7 +403,7 @@ def padic_height_pairing_matrix(self, p, prec=20, height=None, check_hypotheses=
400
403
 
401
404
  An anomalous rank 3 example::
402
405
 
403
- sage: # needs database_cremona_mini_ellcurve
406
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
404
407
  sage: e = EllipticCurve("5077a")
405
408
  sage: e._set_gens([e(-1,3), e(2,0), e(4,6)])
406
409
  sage: e.padic_height_pairing_matrix(5,4)
@@ -724,7 +727,7 @@ def padic_height(self, p, prec=20, sigma=None, check_hypotheses=True):
724
727
 
725
728
  EXAMPLES::
726
729
 
727
- sage: # needs database_cremona_mini_ellcurve
730
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
728
731
  sage: E = EllipticCurve("37a")
729
732
  sage: P = E.gens()[0]
730
733
  sage: h = E.padic_height(5, 10)
@@ -733,23 +736,23 @@ def padic_height(self, p, prec=20, sigma=None, check_hypotheses=True):
733
736
 
734
737
  An anomalous case::
735
738
 
736
- sage: h = E.padic_height(53, 10) # needs database_cremona_mini_ellcurve
737
- sage: h(P) # needs database_cremona_mini_ellcurve
739
+ sage: h = E.padic_height(53, 10) # needs database_cremona_mini_ellcurve sage.symbolic
740
+ sage: h(P) # needs database_cremona_mini_ellcurve sage.symbolic
738
741
  26*53^-1 + 30 + 20*53 + 47*53^2 + 10*53^3 + 32*53^4 + 9*53^5 + 22*53^6 + 35*53^7 + 30*53^8 + 17*53^9 + O(53^10)
739
742
 
740
743
  Boundary case::
741
744
 
742
- sage: E.padic_height(5, 3)(P) # needs database_cremona_mini_ellcurve
745
+ sage: E.padic_height(5, 3)(P) # needs database_cremona_mini_ellcurve sage.symbolic
743
746
  5 + 5^2 + O(5^3)
744
747
 
745
748
  A case that works the division polynomial code a little harder::
746
749
 
747
- sage: E.padic_height(5, 10)(5*P) # needs database_cremona_mini_ellcurve
750
+ sage: E.padic_height(5, 10)(5*P) # needs database_cremona_mini_ellcurve sage.symbolic
748
751
  5^3 + 5^4 + 5^5 + 3*5^8 + 4*5^9 + O(5^10)
749
752
 
750
753
  Check that answers agree over a range of precisions::
751
754
 
752
- sage: # needs database_cremona_mini_ellcurve
755
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
753
756
  sage: max_prec = 30 # make sure we get past p^2 # long time
754
757
  sage: full = E.padic_height(5, max_prec)(P) # long time
755
758
  sage: for prec in range(1, max_prec): # long time
@@ -757,7 +760,7 @@ def padic_height(self, p, prec=20, sigma=None, check_hypotheses=True):
757
760
 
758
761
  A supersingular prime for a curve::
759
762
 
760
- sage: # needs database_cremona_mini_ellcurve
763
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
761
764
  sage: E = EllipticCurve('37a')
762
765
  sage: E.is_supersingular(3)
763
766
  True
@@ -771,7 +774,7 @@ def padic_height(self, p, prec=20, sigma=None, check_hypotheses=True):
771
774
 
772
775
  A torsion point in both the good and supersingular cases::
773
776
 
774
- sage: # needs database_cremona_mini_ellcurve
777
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
775
778
  sage: E = EllipticCurve('11a')
776
779
  sage: P = E.torsion_subgroup().gen(0).element(); P
777
780
  (5 : 5 : 1)
@@ -784,6 +787,7 @@ def padic_height(self, p, prec=20, sigma=None, check_hypotheses=True):
784
787
 
785
788
  The result is not dependent on the model for the curve::
786
789
 
790
+ sage: # needs sage.symbolic
787
791
  sage: E = EllipticCurve([0,0,0,0,2^12*17])
788
792
  sage: Em = E.minimal_model()
789
793
  sage: P = E.gens()[0]
@@ -797,7 +801,7 @@ def padic_height(self, p, prec=20, sigma=None, check_hypotheses=True):
797
801
 
798
802
  Check that issue :issue:`20798` is solved::
799
803
 
800
- sage: # needs database_cremona_mini_ellcurve
804
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
801
805
  sage: E = EllipticCurve("91b")
802
806
  sage: h = E.padic_height(7,10)
803
807
  sage: P = E.gen(0)
@@ -924,7 +928,7 @@ def padic_height_via_multiply(self, p, prec=20, E2=None, check_hypotheses=True):
924
928
 
925
929
  EXAMPLES::
926
930
 
927
- sage: # needs database_cremona_mini_ellcurve
931
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
928
932
  sage: E = EllipticCurve("37a")
929
933
  sage: P = E.gens()[0]
930
934
  sage: h = E.padic_height_via_multiply(5, 10)
@@ -933,13 +937,13 @@ def padic_height_via_multiply(self, p, prec=20, E2=None, check_hypotheses=True):
933
937
 
934
938
  An anomalous case::
935
939
 
936
- sage: h = E.padic_height_via_multiply(53, 10) # needs database_cremona_mini_ellcurve
937
- sage: h(P) # needs database_cremona_mini_ellcurve
940
+ sage: h = E.padic_height_via_multiply(53, 10) # needs database_cremona_mini_ellcurve sage.symbolic
941
+ sage: h(P) # needs database_cremona_mini_ellcurve sage.symbolic
938
942
  26*53^-1 + 30 + 20*53 + 47*53^2 + 10*53^3 + 32*53^4 + 9*53^5 + 22*53^6 + 35*53^7 + 30*53^8 + 17*53^9 + O(53^10)
939
943
 
940
944
  Supply the value of E2 manually::
941
945
 
942
- sage: # needs database_cremona_mini_ellcurve
946
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
943
947
  sage: E2 = E.padic_E2(5, 8)
944
948
  sage: E2
945
949
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + O(5^8)
@@ -949,12 +953,12 @@ def padic_height_via_multiply(self, p, prec=20, E2=None, check_hypotheses=True):
949
953
 
950
954
  Boundary case::
951
955
 
952
- sage: E.padic_height_via_multiply(5, 3)(P) # needs database_cremona_mini_ellcurve
956
+ sage: E.padic_height_via_multiply(5, 3)(P) # needs database_cremona_mini_ellcurve sage.symbolic
953
957
  5 + 5^2 + O(5^3)
954
958
 
955
959
  Check that answers agree over a range of precisions::
956
960
 
957
- sage: # needs database_cremona_mini_ellcurve
961
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
958
962
  sage: max_prec = 30 # make sure we get past p^2 # long time
959
963
  sage: full = E.padic_height(5, max_prec)(P) # long time
960
964
  sage: for prec in range(2, max_prec): # long time
@@ -1089,23 +1093,24 @@ def padic_sigma(self, p, N=20, E2=None, check=False, check_hypotheses=True):
1089
1093
 
1090
1094
  EXAMPLES::
1091
1095
 
1092
- sage: EllipticCurve([-1, 1/4]).padic_sigma(5, 10)
1096
+ sage: EllipticCurve([-1, 1/4]).padic_sigma(5, 10) # needs sage.symbolic
1093
1097
  O(5^11) + (1 + O(5^10))*t + O(5^9)*t^2 + (3 + 2*5^2 + 3*5^3 + 3*5^6 + 4*5^7 + O(5^8))*t^3 + O(5^7)*t^4 + (2 + 4*5^2 + 4*5^3 + 5^4 + 5^5 + O(5^6))*t^5 + O(5^5)*t^6 + (2 + 2*5 + 5^2 + 4*5^3 + O(5^4))*t^7 + O(5^3)*t^8 + (1 + 2*5 + O(5^2))*t^9 + O(5)*t^10 + O(t^11)
1094
1098
 
1095
1099
  Run it with a consistency check::
1096
1100
 
1097
- sage: EllipticCurve("37a").padic_sigma(5, 10, check=True)
1101
+ sage: EllipticCurve("37a").padic_sigma(5, 10, check=True) # needs sage.symbolic
1098
1102
  O(5^11) + (1 + O(5^10))*t + O(5^9)*t^2 + (3 + 2*5^2 + 3*5^3 + 3*5^6 + 4*5^7 + O(5^8))*t^3 + (3 + 2*5 + 2*5^2 + 2*5^3 + 2*5^4 + 2*5^5 + 2*5^6 + O(5^7))*t^4 + (2 + 4*5^2 + 4*5^3 + 5^4 + 5^5 + O(5^6))*t^5 + (2 + 3*5 + 5^4 + O(5^5))*t^6 + (4 + 3*5 + 2*5^2 + O(5^4))*t^7 + (2 + 3*5 + 2*5^2 + O(5^3))*t^8 + (4*5 + O(5^2))*t^9 + (1 + O(5))*t^10 + O(t^11)
1099
1103
 
1100
1104
  Boundary cases::
1101
1105
 
1102
- sage: EllipticCurve([1, 1, 1, 1, 1]).padic_sigma(5, 1)
1106
+ sage: EllipticCurve([1, 1, 1, 1, 1]).padic_sigma(5, 1) # needs sage.symbolic
1103
1107
  (1 + O(5))*t + O(t^2)
1104
- sage: EllipticCurve([1, 1, 1, 1, 1]).padic_sigma(5, 2)
1108
+ sage: EllipticCurve([1, 1, 1, 1, 1]).padic_sigma(5, 2) # needs sage.symbolic
1105
1109
  (1 + O(5^2))*t + (3 + O(5))*t^2 + O(t^3)
1106
1110
 
1107
1111
  Supply your very own value of E2::
1108
1112
 
1113
+ sage: # needs sage.symbolic
1109
1114
  sage: X = EllipticCurve("37a")
1110
1115
  sage: my_E2 = X.padic_E2(5, 8)
1111
1116
  sage: my_E2 = my_E2 + 5**5 # oops!!!
@@ -1116,6 +1121,7 @@ def padic_sigma(self, p, N=20, E2=None, check=False, check_hypotheses=True):
1116
1121
 
1117
1122
  ::
1118
1123
 
1124
+ sage: # needs sage.symbolic
1119
1125
  sage: f = EllipticCurve([-1, 3]).padic_sigma(5, 10)
1120
1126
  sage: g = EllipticCurve([-1*(2**4), 3*(2**6)]).padic_sigma(5, 10)
1121
1127
  sage: t = f.parent().gen()
@@ -1128,7 +1134,7 @@ def padic_sigma(self, p, N=20, E2=None, check=False, check_hypotheses=True):
1128
1134
 
1129
1135
  Test that it returns consistent results over a range of precision::
1130
1136
 
1131
- sage: # long time
1137
+ sage: # long time, needs sage.symbolic
1132
1138
  sage: max_N = 30 # get up to at least p^2
1133
1139
  sage: E = EllipticCurve([1, 1, 1, 1, 1])
1134
1140
  sage: p = 5
@@ -1295,13 +1301,13 @@ def padic_sigma_truncated(self, p, N=20, lamb=0, E2=None, check_hypotheses=True)
1295
1301
  EXAMPLES::
1296
1302
 
1297
1303
  sage: E = EllipticCurve([-1, 1/4])
1298
- sage: E.padic_sigma_truncated(5, 10)
1304
+ sage: E.padic_sigma_truncated(5, 10) # needs sage.symbolic
1299
1305
  O(5^11) + (1 + O(5^10))*t + O(5^9)*t^2 + (3 + 2*5^2 + 3*5^3 + 3*5^6 + 4*5^7 + O(5^8))*t^3 + O(5^7)*t^4 + (2 + 4*5^2 + 4*5^3 + 5^4 + 5^5 + O(5^6))*t^5 + O(5^5)*t^6 + (2 + 2*5 + 5^2 + 4*5^3 + O(5^4))*t^7 + O(5^3)*t^8 + (1 + 2*5 + O(5^2))*t^9 + O(5)*t^10 + O(t^11)
1300
1306
 
1301
1307
  Note the precision of the `t^3` coefficient depends only on
1302
1308
  `N`, not on lamb::
1303
1309
 
1304
- sage: E.padic_sigma_truncated(5, 10, lamb=2)
1310
+ sage: E.padic_sigma_truncated(5, 10, lamb=2) # needs sage.symbolic
1305
1311
  O(5^17) + (1 + O(5^14))*t + O(5^11)*t^2 + (3 + 2*5^2 + 3*5^3 + 3*5^6 + 4*5^7 + O(5^8))*t^3 + O(5^5)*t^4 + (2 + O(5^2))*t^5 + O(t^6)
1306
1312
 
1307
1313
  Compare against plain padic_sigma() function over a dense range of
@@ -1309,9 +1315,10 @@ def padic_sigma_truncated(self, p, N=20, lamb=0, E2=None, check_hypotheses=True)
1309
1315
 
1310
1316
  ::
1311
1317
 
1312
- sage: E = EllipticCurve([1, 2, 3, 4, 7]) # long time
1313
- sage: E2 = E.padic_E2(5, 50) # long time
1314
- sage: for N in range(2, 10): # long time
1318
+ sage: # long time, needs sage.symbolic
1319
+ sage: E = EllipticCurve([1, 2, 3, 4, 7])
1320
+ sage: E2 = E.padic_E2(5, 50)
1321
+ sage: for N in range(2, 10):
1315
1322
  ....: for lamb in range(10):
1316
1323
  ....: correct = E.padic_sigma(5, N + 3*lamb, E2=E2)
1317
1324
  ....: compare = E.padic_sigma_truncated(5, N=N, lamb=lamb, E2=E2)
@@ -1462,17 +1469,18 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1462
1469
  EXAMPLES: Here is the example discussed in the paper "Computation
1463
1470
  of p-adic Heights and Log Convergence" (Mazur, Stein, Tate) [MST2006]_::
1464
1471
 
1465
- sage: EllipticCurve([-1, 1/4]).padic_E2(5)
1472
+ sage: EllipticCurve([-1, 1/4]).padic_E2(5) # needs sage.symbolic
1466
1473
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + 4*5^10 + 2*5^11 + 2*5^12 + 2*5^14 + 3*5^15 + 3*5^16 + 3*5^17 + 4*5^18 + 2*5^19 + O(5^20)
1467
1474
 
1468
1475
  Let's try to higher precision (this is the same answer the MAGMA
1469
1476
  implementation gives)::
1470
1477
 
1471
- sage: EllipticCurve([-1, 1/4]).padic_E2(5, 100)
1478
+ sage: EllipticCurve([-1, 1/4]).padic_E2(5, 100) # needs sage.symbolic
1472
1479
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + 4*5^10 + 2*5^11 + 2*5^12 + 2*5^14 + 3*5^15 + 3*5^16 + 3*5^17 + 4*5^18 + 2*5^19 + 4*5^20 + 5^21 + 4*5^22 + 2*5^23 + 3*5^24 + 3*5^26 + 2*5^27 + 3*5^28 + 2*5^30 + 5^31 + 4*5^33 + 3*5^34 + 4*5^35 + 5^36 + 4*5^37 + 4*5^38 + 3*5^39 + 4*5^41 + 2*5^42 + 3*5^43 + 2*5^44 + 2*5^48 + 3*5^49 + 4*5^50 + 2*5^51 + 5^52 + 4*5^53 + 4*5^54 + 3*5^55 + 2*5^56 + 3*5^57 + 4*5^58 + 4*5^59 + 5^60 + 3*5^61 + 5^62 + 4*5^63 + 5^65 + 3*5^66 + 2*5^67 + 5^69 + 2*5^70 + 3*5^71 + 3*5^72 + 5^74 + 5^75 + 5^76 + 3*5^77 + 4*5^78 + 4*5^79 + 2*5^80 + 3*5^81 + 5^82 + 5^83 + 4*5^84 + 3*5^85 + 2*5^86 + 3*5^87 + 5^88 + 2*5^89 + 4*5^90 + 4*5^92 + 3*5^93 + 4*5^94 + 3*5^95 + 2*5^96 + 4*5^97 + 4*5^98 + 2*5^99 + O(5^100)
1473
1480
 
1474
1481
  Check it works at low precision too::
1475
1482
 
1483
+ sage: # needs sage.symbolic
1476
1484
  sage: EllipticCurve([-1, 1/4]).padic_E2(5, 1)
1477
1485
  2 + O(5)
1478
1486
  sage: EllipticCurve([-1, 1/4]).padic_E2(5, 2)
@@ -1487,7 +1495,7 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1487
1495
 
1488
1496
  ::
1489
1497
 
1490
- sage: EllipticCurve([1, 1, 1, 1, 1]).padic_E2(5, 1)
1498
+ sage: EllipticCurve([1, 1, 1, 1, 1]).padic_E2(5, 1) # needs sage.symbolic
1491
1499
  O(5)
1492
1500
 
1493
1501
  Check it works for different models of the same curve (37a), even
@@ -1498,7 +1506,7 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1498
1506
  sage: X1 = EllipticCurve([-1, 1/4])
1499
1507
  sage: X1.j_invariant(), X1.discriminant()
1500
1508
  (110592/37, 37)
1501
- sage: X1.padic_E2(5, 10)
1509
+ sage: X1.padic_E2(5, 10) # needs sage.symbolic
1502
1510
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + O(5^10)
1503
1511
 
1504
1512
  ::
@@ -1506,7 +1514,7 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1506
1514
  sage: X2 = EllipticCurve([0, 0, 1, -1, 0])
1507
1515
  sage: X2.j_invariant(), X2.discriminant()
1508
1516
  (110592/37, 37)
1509
- sage: X2.padic_E2(5, 10)
1517
+ sage: X2.padic_E2(5, 10) # needs sage.symbolic
1510
1518
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + O(5^10)
1511
1519
 
1512
1520
  ::
@@ -1514,7 +1522,7 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1514
1522
  sage: X3 = EllipticCurve([-1*(2**4), 1/4*(2**6)])
1515
1523
  sage: X3.j_invariant(), X3.discriminant() / 2**12
1516
1524
  (110592/37, 37)
1517
- sage: 2**(-2) * X3.padic_E2(5, 10)
1525
+ sage: 2**(-2) * X3.padic_E2(5, 10) # needs sage.symbolic
1518
1526
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + O(5^10)
1519
1527
 
1520
1528
  ::
@@ -1522,7 +1530,7 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1522
1530
  sage: X4 = EllipticCurve([-1*(7**4), 1/4*(7**6)])
1523
1531
  sage: X4.j_invariant(), X4.discriminant() / 7**12
1524
1532
  (110592/37, 37)
1525
- sage: 7**(-2) * X4.padic_E2(5, 10)
1533
+ sage: 7**(-2) * X4.padic_E2(5, 10) # needs sage.symbolic
1526
1534
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + O(5^10)
1527
1535
 
1528
1536
  ::
@@ -1530,7 +1538,7 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1530
1538
  sage: X5 = EllipticCurve([-1*(5**4), 1/4*(5**6)])
1531
1539
  sage: X5.j_invariant(), X5.discriminant() / 5**12
1532
1540
  (110592/37, 37)
1533
- sage: 5**(-2) * X5.padic_E2(5, 10)
1541
+ sage: 5**(-2) * X5.padic_E2(5, 10) # needs sage.symbolic
1534
1542
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + O(5^10)
1535
1543
 
1536
1544
  ::
@@ -1538,11 +1546,12 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1538
1546
  sage: X6 = EllipticCurve([-1/(5**4), 1/4/(5**6)])
1539
1547
  sage: X6.j_invariant(), X6.discriminant() * 5**12
1540
1548
  (110592/37, 37)
1541
- sage: 5**2 * X6.padic_E2(5, 10)
1549
+ sage: 5**2 * X6.padic_E2(5, 10) # needs sage.symbolic
1542
1550
  2 + 4*5 + 2*5^3 + 5^4 + 3*5^5 + 2*5^6 + 5^8 + 3*5^9 + O(5^10)
1543
1551
 
1544
1552
  Test check=True vs check=False::
1545
1553
 
1554
+ sage: # needs sage.symbolic
1546
1555
  sage: EllipticCurve([-1, 1/4]).padic_E2(5, 1, check=False)
1547
1556
  2 + O(5)
1548
1557
  sage: EllipticCurve([-1, 1/4]).padic_E2(5, 1, check=True)
@@ -1554,7 +1563,7 @@ def padic_E2(self, p, prec=20, check=False, check_hypotheses=True, algorithm='au
1554
1563
 
1555
1564
  Here's one using the `p^{1/2}` algorithm::
1556
1565
 
1557
- sage: EllipticCurve([-1, 1/4]).padic_E2(3001, 3, algorithm='sqrtp')
1566
+ sage: EllipticCurve([-1, 1/4]).padic_E2(3001, 3, algorithm='sqrtp') # needs sage.symbolic
1558
1567
  1907 + 2819*3001 + 1124*3001^2 + O(3001^3)
1559
1568
  """
1560
1569
  if self.conductor() % p == 0:
@@ -1624,7 +1633,7 @@ def matrix_of_frobenius(self, p, prec=20, check=False, check_hypotheses=True, al
1624
1633
 
1625
1634
  EXAMPLES::
1626
1635
 
1627
- sage: # needs database_cremona_mini_ellcurve
1636
+ sage: # needs database_cremona_mini_ellcurve sage.symbolic
1628
1637
  sage: E = EllipticCurve('37a1')
1629
1638
  sage: E.matrix_of_frobenius(7)
1630
1639
  [ 2*7 + 4*7^2 + 5*7^4 + 6*7^5 + 6*7^6 + 7^8 + 4*7^9 + 3*7^10 + 2*7^11 + 5*7^12 + 4*7^14 + 7^16 + 2*7^17 + 3*7^18 + 4*7^19 + 3*7^20 + O(7^21) 2 + 3*7 + 6*7^2 + 7^3 + 3*7^4 + 5*7^5 + 3*7^7 + 7^8 + 3*7^9 + 6*7^13 + 7^14 + 7^16 + 5*7^17 + 4*7^18 + 7^19 + O(7^20)]
@@ -1694,25 +1703,24 @@ def matrix_of_frobenius(self, p, prec=20, check=False, check_hypotheses=True, al
1694
1703
  # Need to increase precision a little to compensate for precision
1695
1704
  # losses during the computation. (See monsky_washnitzer.py
1696
1705
  # for more details.)
1697
- adjusted_prec = sage.schemes.hyperelliptic_curves.monsky_washnitzer.adjusted_prec(p, prec)
1706
+ adj_prec = adjusted_prec(p, prec)
1698
1707
 
1699
1708
  if check:
1700
1709
  trace = None
1701
1710
  else:
1702
1711
  trace = self.ap(p)
1703
1712
 
1704
- base_ring = Integers(p**adjusted_prec)
1713
+ base_ring = Integers(p**adj_prec)
1705
1714
 
1706
1715
  R, x = PolynomialRing(base_ring, 'x').objgen()
1707
1716
  Q = x**3 + base_ring(X.a4()) * x + base_ring(X.a6())
1708
- frob_p = sage.schemes.hyperelliptic_curves.monsky_washnitzer.matrix_of_frobenius(
1709
- Q, p, adjusted_prec, trace)
1717
+ frob_p = matrix_of_frobenius(Q, p, adj_prec, trace)
1710
1718
 
1711
1719
  else: # algorithm == "sqrtp"
1712
1720
  p_to_prec = p**prec
1713
1721
  R = PolynomialRing(Integers(), "x")
1714
1722
  Q = R([X.a6() % p_to_prec, X.a4() % p_to_prec, 0, 1])
1715
- frob_p = sage.schemes.hyperelliptic_curves.hypellfrob.hypellfrob(p, prec, Q)
1723
+ frob_p = hypellfrob(p, prec, Q)
1716
1724
 
1717
1725
  # let's force a trace-check since this algorithm is fairly new
1718
1726
  # and we don't want to get caught with our pants down...