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,277 @@
1
+ # sage_setup: distribution = sagemath-schemes
2
+ """
3
+ Jacobians of curves
4
+
5
+ This module defines the base class of Jacobians as an abstract scheme.
6
+
7
+ AUTHORS:
8
+
9
+ - William Stein (2005)
10
+ """
11
+
12
+ # ****************************************************************************
13
+ # Copyright (C) 2005 William Stein <wstein@gmail.com>
14
+ #
15
+ # This program is free software: you can redistribute it and/or modify
16
+ # it under the terms of the GNU General Public License as published by
17
+ # the Free Software Foundation, either version 2 of the License, or
18
+ # (at your option) any later version.
19
+ # https://www.gnu.org/licenses/
20
+ # ****************************************************************************
21
+
22
+ from sage.categories.schemes import Jacobians
23
+ from sage.categories.fields import Fields
24
+ from sage.schemes.generic.scheme import Scheme
25
+ from sage.structure.richcmp import richcmp_method, richcmp
26
+
27
+ _Fields = Fields()
28
+
29
+
30
+ def is_Jacobian(J):
31
+ """
32
+ Return ``True`` if `J` is of type ``Jacobian_generic``.
33
+
34
+ EXAMPLES::
35
+
36
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian, is_Jacobian
37
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
38
+ sage: C = Curve(x^3 + y^3 + z^3)
39
+ sage: J = Jacobian(C)
40
+ sage: is_Jacobian(J)
41
+ ...
42
+ DeprecationWarning: Use Jacobian_generic directly
43
+ See https://github.com/sagemath/sage/issues/35467 for details.
44
+ True
45
+
46
+ ::
47
+
48
+ sage: E = EllipticCurve('37a1') # needs database_cremona_mini_ellcurve
49
+ sage: is_Jacobian(E) # needs database_cremona_mini_ellcurve
50
+ False
51
+ """
52
+ from sage.misc.superseded import deprecation
53
+ deprecation(35467, "Use Jacobian_generic directly")
54
+ return isinstance(J, Jacobian_generic)
55
+
56
+
57
+ def Jacobian(C):
58
+ """
59
+ EXAMPLES::
60
+
61
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian
62
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
63
+ sage: C = Curve(x^3 + y^3 + z^3)
64
+ sage: Jacobian(C)
65
+ Jacobian of Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
66
+ """
67
+ try:
68
+ return C.jacobian()
69
+ except (AttributeError, TypeError):
70
+ return Jacobian_generic(C)
71
+
72
+
73
+ @richcmp_method
74
+ class Jacobian_generic(Scheme):
75
+ """
76
+ Base class for Jacobians of projective curves.
77
+
78
+ The input must be a projective curve over a field.
79
+
80
+ EXAMPLES::
81
+
82
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian
83
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
84
+ sage: C = Curve(x^3 + y^3 + z^3)
85
+ sage: J = Jacobian(C); J
86
+ Jacobian of Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
87
+ """
88
+ def __init__(self, C, category=None):
89
+ """
90
+ Initialize.
91
+
92
+ TESTS::
93
+
94
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian_generic
95
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
96
+ sage: C = Curve(x^3 + y^3 + z^3)
97
+ sage: J = Jacobian_generic(C); J
98
+ Jacobian of Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
99
+ sage: type(J)
100
+ <class 'sage.schemes.jacobians.abstract_jacobian.Jacobian_generic_with_category'>
101
+
102
+ Note: this is an abstract parent, so we skip element tests::
103
+
104
+ sage: TestSuite(J).run(skip =["_test_an_element", \
105
+ ....: "_test_zero", \
106
+ ....: "_test_elements", \
107
+ ....: "_test_elements_eq_reflexive", \
108
+ ....: "_test_elements_eq_symmetric", \
109
+ ....: "_test_elements_eq_transitive", \
110
+ ....: "_test_additive_associativity", \
111
+ ....: "_test_elements_neq", \
112
+ ....: "_test_some_elements"])
113
+
114
+ ::
115
+
116
+ sage: Jacobian_generic(ZZ)
117
+ Traceback (most recent call last):
118
+ ...
119
+ TypeError: Argument (=Integer Ring) must be a scheme.
120
+ sage: Jacobian_generic(P2)
121
+ Traceback (most recent call last):
122
+ ...
123
+ ValueError: C (=Projective Space of dimension 2 over Rational Field)
124
+ must have dimension 1.
125
+
126
+ ::
127
+
128
+ sage: P2.<x, y, z> = ProjectiveSpace(Zmod(6), 2)
129
+ sage: C = Curve(x + y + z, P2)
130
+ sage: Jacobian_generic(C)
131
+ Traceback (most recent call last):
132
+ ...
133
+ TypeError: C (=Projective Plane Curve over Ring of integers modulo 6
134
+ defined by x + y + z) must be defined over a field.
135
+ """
136
+ if not isinstance(C, Scheme):
137
+ raise TypeError("Argument (=%s) must be a scheme." % C)
138
+ if C.base_ring() not in _Fields:
139
+ raise TypeError("C (=%s) must be defined over a field." % C)
140
+ if C.dimension() != 1:
141
+ raise ValueError("C (=%s) must have dimension 1." % C)
142
+ self.__curve = C
143
+ Scheme.__init__(self, C.base_scheme(), category=Jacobians(C.base_ring()).or_subcategory(category))
144
+
145
+ def __richcmp__(self, J, op):
146
+ """
147
+ Compare the Jacobian ``self`` to `J`. If `J` is a Jacobian, then
148
+ ``self`` and `J` are equal if and only if their curves are equal.
149
+
150
+ EXAMPLES::
151
+
152
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian
153
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
154
+ sage: J1 = Jacobian(Curve(x^3 + y^3 + z^3))
155
+ sage: J1 == J1
156
+ True
157
+ sage: J1 == P2
158
+ False
159
+ sage: J1 != P2
160
+ True
161
+ sage: J2 = Jacobian(Curve(x + y + z))
162
+ sage: J1 == J2
163
+ False
164
+ sage: J1 != J2
165
+ True
166
+ """
167
+ if not isinstance(J, Jacobian_generic):
168
+ return NotImplemented
169
+ return richcmp(self.curve(), J.curve(), op)
170
+
171
+ def _repr_(self):
172
+ """
173
+ Return a string representation of this Jacobian.
174
+
175
+ EXAMPLES::
176
+
177
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian
178
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
179
+ sage: J = Jacobian(Curve(x^3 + y^3 + z^3)); J
180
+ Jacobian of Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
181
+ sage: J._repr_()
182
+ 'Jacobian of Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3'
183
+ """
184
+ return "Jacobian of %s" % self.__curve
185
+
186
+ def _point(self):
187
+ """
188
+ Return the Hom-set from some affine scheme to ``self``.
189
+
190
+ OUTPUT:
191
+
192
+ This method always raises a :exc:`NotImplementedError`; it is
193
+ only abstract.
194
+
195
+ EXAMPLES::
196
+
197
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian
198
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
199
+ sage: J = Jacobian(Curve(x^3 + y^3 + z^3))
200
+ sage: J._point()
201
+ Traceback (most recent call last):
202
+ ...
203
+ NotImplementedError
204
+ """
205
+ raise NotImplementedError
206
+
207
+ def curve(self):
208
+ """
209
+ Return the curve of which ``self`` is the Jacobian.
210
+
211
+ EXAMPLES::
212
+
213
+ sage: from sage.schemes.jacobians.abstract_jacobian import Jacobian
214
+ sage: P2.<x, y, z> = ProjectiveSpace(QQ, 2)
215
+ sage: J = Jacobian(Curve(x^3 + y^3 + z^3))
216
+ sage: J.curve()
217
+ Projective Plane Curve over Rational Field defined by x^3 + y^3 + z^3
218
+ """
219
+ return self.__curve
220
+
221
+ base_curve = curve
222
+
223
+ def change_ring(self, R):
224
+ r"""
225
+ Return the Jacobian over the ring `R`.
226
+
227
+ INPUT:
228
+
229
+ - ``R`` -- a field; the new base ring
230
+
231
+ OUTPUT: the Jacobian over the ring `R`
232
+
233
+ EXAMPLES::
234
+
235
+ sage: R.<x> = QQ['x']
236
+ sage: H = HyperellipticCurve(x^3 - 10*x + 9)
237
+ sage: Jac = H.jacobian(); Jac
238
+ Jacobian of Hyperelliptic Curve over Rational Field
239
+ defined by y^2 = x^3 - 10*x + 9
240
+ sage: Jac.change_ring(RDF)
241
+ Jacobian of Hyperelliptic Curve over Real Double Field
242
+ defined by y^2 = x^3 - 10.0*x + 9.0
243
+ """
244
+ return self.curve().change_ring(R).jacobian()
245
+
246
+ def base_extend(self, R):
247
+ r"""
248
+ Return the natural extension of ``self`` over `R`.
249
+
250
+ INPUT:
251
+
252
+ - ``R`` -- a field; the new base field
253
+
254
+ OUTPUT: the Jacobian over the ring `R`
255
+
256
+ EXAMPLES::
257
+
258
+ sage: R.<x> = QQ['x']
259
+ sage: H = HyperellipticCurve(x^3 - 10*x + 9)
260
+ sage: Jac = H.jacobian(); Jac
261
+ Jacobian of Hyperelliptic Curve over Rational Field
262
+ defined by y^2 = x^3 - 10*x + 9
263
+
264
+ sage: # needs sage.rings.number_field
265
+ sage: F.<a> = QQ.extension(x^2 + 1)
266
+ sage: Jac.base_extend(F)
267
+ Jacobian of Hyperelliptic Curve over Number Field in a with defining
268
+ polynomial x^2 + 1 defined by y^2 = x^3 - 10*x + 9
269
+ """
270
+ if R not in _Fields:
271
+ raise ValueError('Not a field: ' + str(R))
272
+ if self.base_ring() is R:
273
+ return self
274
+ if not R.has_coerce_map_from(self.base_ring()):
275
+ raise ValueError('no natural map from the base ring (=%s) to R (=%s)!'
276
+ % (self.base_ring(), R))
277
+ return self.change_ring(R)
@@ -0,0 +1,2 @@
1
+ # sage_setup: distribution = sagemath-schemes
2
+ # from abstract_jacobian import is_Jacobian, Jacobian
@@ -0,0 +1,161 @@
1
+ # sage_setup: distribution = sagemath-schemes
2
+ r"""
3
+ Scheme implementation overview
4
+
5
+ Various parts of schemes were implemented by different authors. This document
6
+ aims to give an overview of the different classes of schemes working together
7
+ coherently.
8
+
9
+ Generic
10
+ -------
11
+
12
+ - **Scheme:**
13
+ A scheme whose datatype might not be defined in terms of algebraic equations:
14
+ e.g. the Jacobian of a curve may be represented by means of a Scheme.
15
+
16
+ - **AlgebraicScheme:**
17
+ A scheme defined by means of polynomial equations, which may be reducible or
18
+ defined over a ring other than a field. In particular, the defining ideal
19
+ need not be a radical ideal, and an algebraic scheme may be defined over
20
+ `\mathrm{Spec}(R)`.
21
+
22
+ - **AmbientSpaces:**
23
+ Most effective models of algebraic scheme will be defined not by generic
24
+ gluings, but by embeddings in some fixed ambient space.
25
+
26
+ Ambients
27
+ --------
28
+
29
+ - **AffineSpace:**
30
+ Affine spaces and their affine subschemes form the most important universal
31
+ objects from which algebraic schemes are built. The affine spaces form
32
+ universal objects in the sense that a morphism is uniquely determined by the
33
+ images of its coordinate functions and any such images determine a
34
+ well-defined morphism.
35
+
36
+ By default affine spaces will embed in some ordinary projective space, unless
37
+ it is created as an affine patch of another object.
38
+
39
+ - **ProjectiveSpace:**
40
+ Projective spaces are the most natural ambient spaces for most projective
41
+ objects. They are locally universal objects.
42
+
43
+ - **ProjectiveSpace_ordinary (not implemented):**
44
+ The ordinary projective spaces have the standard weights `[1,..,1]` on their
45
+ coefficients.
46
+
47
+ - **ProjectiveSpace_weighted (not implemented):**
48
+ A special subtype for non-standard weights.
49
+
50
+ - **ToricVariety:**
51
+ Toric varieties are (partial) compactifications of algebraic tori `(\CC^*)^n`
52
+ compatible with torus action. Affine and projective spaces are examples of
53
+ toric varieties, but it is not envisioned that these special cases should
54
+ inherit from :class:`~sage.schemes.toric.variety.ToricVariety`.
55
+
56
+ Subschemes
57
+ ----------
58
+
59
+ - **AlgebraicScheme_subscheme_affine:**
60
+ An algebraic scheme defined by means of an embedding in a
61
+ fixed ambient affine space.
62
+
63
+ - **AlgebraicScheme_subscheme_projective:**
64
+ An algebraic scheme defined by means of an embedding in a fixed ambient
65
+ projective space.
66
+
67
+ - **QuasiAffineScheme (not yet implemented):**
68
+ An open subset `U = X \setminus Z` of a closed subset `X` of affine space;
69
+ note that this is mathematically a quasi-projective scheme, but its
70
+ ambient space is an affine space and its points are represented by
71
+ affine rather than projective points.
72
+
73
+ .. NOTE::
74
+
75
+ AlgebraicScheme_quasi is implemented, as a base class for this.
76
+
77
+ - **QuasiProjectiveScheme (not yet implemented):**
78
+ An open subset of a closed subset of projective space; this datatype
79
+ stores the defining polynomial, polynomials, or ideal defining the
80
+ projective closure `X` plus the closed subscheme `Z` of `X` whose complement
81
+ `U = X \setminus Z` is the quasi-projective scheme.
82
+
83
+ .. NOTE::
84
+
85
+ The quasi-affine and quasi-projective datatype lets one create schemes
86
+ like the multiplicative group scheme
87
+ `\mathbb{G}_m = \mathbb{A}^1\setminus \{(0)\}`
88
+ and the non-affine scheme `\mathbb{A}^2\setminus \{(0,0)\}`. The latter
89
+ is not affine and is not of the form `\mathrm{Spec}(R)`.
90
+
91
+ Point sets
92
+ ----------
93
+
94
+ - **PointSets and points over a ring (to do):**
95
+ For algebraic schemes `X/S` and `T/S` over `S`, one can form the point set
96
+ `X(T)` of morphisms from `T\to X` over `S`.
97
+
98
+ A projective space object in the category of schemes is a locally free object
99
+ -- the images of the generator functions *locally* determine a point. Over a
100
+ field, one can choose one of the standard affine patches by the condition
101
+ that a coordinate function `X_i \ne 0`.
102
+
103
+ ::
104
+
105
+ sage: PP.<X,Y,Z> = ProjectiveSpace(2, QQ)
106
+ sage: PP
107
+ Projective Space of dimension 2 over Rational Field
108
+ sage: PP(QQ)
109
+ Set of rational points of Projective Space
110
+ of dimension 2 over Rational Field
111
+ sage: PP(QQ)([-2, 3, 5])
112
+ (-2/5 : 3/5 : 1)
113
+
114
+ Over a ring, this is not true anymore. For example, even over an integral
115
+ domain which is not a PID, there may be no *single* affine patch which covers
116
+ a point.
117
+
118
+ ::
119
+
120
+ sage: R.<x> = ZZ[]
121
+ sage: S.<t> = R.quo(x^2 + 5)
122
+ sage: P.<X,Y,Z> = ProjectiveSpace(2, S)
123
+ sage: P(S)
124
+ Set of rational points of Projective Space of dimension 2 over
125
+ Univariate Quotient Polynomial Ring in t over Integer Ring with
126
+ modulus x^2 + 5
127
+
128
+ In order to represent the projective point `(2:1+t) = (1-t:3)` we note that
129
+ the first representative is not well-defined at the prime `p = (2,1+t)` and
130
+ the second element is not well-defined at the prime `q = (1-t,3)`, but that
131
+ `p + q = (1)`, so globally the pair of coordinate representatives is
132
+ well-defined.
133
+
134
+ ::
135
+
136
+ sage: P([2, 1 + t])
137
+ (2 : t + 1 : 1)
138
+
139
+ In fact, we need a test ``R.ideal([2, 1 + t]) == R.ideal([1])`` in order to make
140
+ this meaningful.
141
+
142
+ Berkovich Analytic Spaces
143
+ -------------------------
144
+
145
+ - **Berkovich Analytic Space (not yet implemented)**
146
+ The construction of analytic spaces from schemes due to Berkovich. Any Berkovich
147
+ space should inherit from :class:`Berkovich`
148
+
149
+ - **Berkovich Analytic Space over Cp**
150
+ A special case of the general Berkovich analytic space construction.
151
+ Affine Berkovich space over `\CC_p` is the set of seminorms on the polynomial
152
+ ring `\CC_p[x]`, while projective Berkovich space over `\CC_p` is the one-point compactification
153
+ of affine Berkovich space `\CC_p`. Points are represented using the classification (due
154
+ to Berkovich) of a corresponding decreasing sequence of disks in `\CC_p`.
155
+
156
+ AUTHORS:
157
+
158
+ - David Kohel, William Stein (2006-01-03): initial version
159
+
160
+ - Andrey Novoseltsev (2010-09-24): updated due to addition of toric varieties
161
+ """
@@ -0,0 +1,22 @@
1
+ # sage_setup: distribution = sagemath-schemes
2
+ """
3
+ Plane conics
4
+ """
5
+ # ****************************************************************************
6
+ #
7
+ # Sage: Open Source Mathematical Software
8
+ #
9
+ # Copyright (C) 2005 William Stein <was@math.harvard.edu>
10
+ #
11
+ # Distributed under the terms of the GNU General Public License (GPL)
12
+ #
13
+ # This code is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ # General Public License for more details.
17
+ #
18
+ # The full text of the GPL is available at:
19
+ #
20
+ # https://www.gnu.org/licenses/
21
+ # ****************************************************************************
22
+ from sage.schemes.plane_conics.constructor import Conic