passagemath-pari 10.6.32__cp314-cp314-musllinux_1_2_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-pari might be problematic. Click here for more details.

Files changed (331) hide show
  1. PARIKernel/__init__.py +2 -0
  2. PARIKernel/__main__.py +5 -0
  3. PARIKernel/io.cpython-314-x86_64-linux-musl.so +0 -0
  4. PARIKernel/io.pxd +7 -0
  5. PARIKernel/io.pyx +84 -0
  6. PARIKernel/kernel.cpython-314-x86_64-linux-musl.so +0 -0
  7. PARIKernel/kernel.pyx +260 -0
  8. PARIKernel/paridecl.pxd +95 -0
  9. PARIKernel/svg.cpython-314-x86_64-linux-musl.so +0 -0
  10. PARIKernel/svg.pyx +52 -0
  11. cypari2/__init__.py +8 -0
  12. cypari2/auto_paridecl.pxd +1070 -0
  13. cypari2/closure.cpython-314-x86_64-linux-musl.so +0 -0
  14. cypari2/closure.pxd +5 -0
  15. cypari2/closure.pyx +246 -0
  16. cypari2/convert.cpython-314-x86_64-linux-musl.so +0 -0
  17. cypari2/convert.pxd +80 -0
  18. cypari2/convert.pyx +613 -0
  19. cypari2/custom_block.cpython-314-x86_64-linux-musl.so +0 -0
  20. cypari2/custom_block.pyx +30 -0
  21. cypari2/cypari.h +13 -0
  22. cypari2/gen.cpython-314-x86_64-linux-musl.so +0 -0
  23. cypari2/gen.pxd +69 -0
  24. cypari2/gen.pyx +4819 -0
  25. cypari2/handle_error.cpython-314-x86_64-linux-musl.so +0 -0
  26. cypari2/handle_error.pxd +7 -0
  27. cypari2/handle_error.pyx +232 -0
  28. cypari2/pari_instance.cpython-314-x86_64-linux-musl.so +0 -0
  29. cypari2/pari_instance.pxd +27 -0
  30. cypari2/pari_instance.pyx +1438 -0
  31. cypari2/paridecl.pxd +5353 -0
  32. cypari2/paripriv.pxd +34 -0
  33. cypari2/pycore_long.h +98 -0
  34. cypari2/pycore_long.pxd +9 -0
  35. cypari2/stack.cpython-314-x86_64-linux-musl.so +0 -0
  36. cypari2/stack.pxd +27 -0
  37. cypari2/stack.pyx +278 -0
  38. cypari2/string_utils.cpython-314-x86_64-linux-musl.so +0 -0
  39. cypari2/string_utils.pxd +29 -0
  40. cypari2/string_utils.pyx +65 -0
  41. cypari2/types.pxd +147 -0
  42. passagemath_pari-10.6.32.data/data/etc/jupyter/nbconfig/notebook.d/gp-mode.json +5 -0
  43. passagemath_pari-10.6.32.data/data/share/jupyter/kernels/pari_jupyter/kernel.js +28 -0
  44. passagemath_pari-10.6.32.data/data/share/jupyter/kernels/pari_jupyter/kernel.json +6 -0
  45. passagemath_pari-10.6.32.data/data/share/jupyter/kernels/pari_jupyter/logo-64x64.png +0 -0
  46. passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/kernel.json +13 -0
  47. passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/logo-32x32.png +0 -0
  48. passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/logo-64x64.png +0 -0
  49. passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/logo-svg.svg +75 -0
  50. passagemath_pari-10.6.32.data/data/share/jupyter/nbextensions/gp-mode/gp.js +284 -0
  51. passagemath_pari-10.6.32.data/data/share/jupyter/nbextensions/gp-mode/main.js +15 -0
  52. passagemath_pari-10.6.32.dist-info/METADATA +209 -0
  53. passagemath_pari-10.6.32.dist-info/RECORD +331 -0
  54. passagemath_pari-10.6.32.dist-info/WHEEL +5 -0
  55. passagemath_pari-10.6.32.dist-info/top_level.txt +4 -0
  56. passagemath_pari.libs/libcrypto-f04afe95.so.3 +0 -0
  57. passagemath_pari.libs/libflint-fd6f12fc.so.21.0.0 +0 -0
  58. passagemath_pari.libs/libgcc_s-0cd532bd.so.1 +0 -0
  59. passagemath_pari.libs/libgf2x-9e30c3e3.so.3.0.0 +0 -0
  60. passagemath_pari.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
  61. passagemath_pari.libs/libgivaro-9a94c711.so.9.2.1 +0 -0
  62. passagemath_pari.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  63. passagemath_pari.libs/libgmpxx-9e08595c.so.4.7.0 +0 -0
  64. passagemath_pari.libs/libgsl-42cda06f.so.28.0.0 +0 -0
  65. passagemath_pari.libs/libmpfr-aaecbfc0.so.6.2.1 +0 -0
  66. passagemath_pari.libs/libncursesw-9c9e32c3.so.6.5 +0 -0
  67. passagemath_pari.libs/libntl-26885ca2.so.44.0.1 +0 -0
  68. passagemath_pari.libs/libopenblasp-r0-905cb27d.3.29.so +0 -0
  69. passagemath_pari.libs/libpari-gmp-tls-f31f908f.so.2.17.2 +0 -0
  70. passagemath_pari.libs/libquadmath-bb76a5fc.so.0.0.0 +0 -0
  71. passagemath_pari.libs/libreadline-06542304.so.8.2 +0 -0
  72. passagemath_pari.libs/libstdc++-5d72f927.so.6.0.33 +0 -0
  73. passagemath_pari.libs/libuuid-f3770415.so.1.3.0 +0 -0
  74. passagemath_pari.libs/libxeus-735780ff.so.13.1.0 +0 -0
  75. passagemath_pari.libs/libxeus-zmq-c68577b4.so.6.0.1 +0 -0
  76. passagemath_pari.libs/libzmq-1ba9a3da.so.5.2.5 +0 -0
  77. sage/all__sagemath_pari.py +26 -0
  78. sage/databases/all__sagemath_pari.py +7 -0
  79. sage/databases/conway.py +274 -0
  80. sage/ext/all__sagemath_pari.py +1 -0
  81. sage/ext/memory.cpython-314-x86_64-linux-musl.so +0 -0
  82. sage/ext/memory.pyx +98 -0
  83. sage/ext_data/pari/buzzard/DimensionSk.g +286 -0
  84. sage/ext_data/pari/buzzard/Tpprog.g +179 -0
  85. sage/ext_data/pari/buzzard/genusn.g +129 -0
  86. sage/ext_data/pari/dokchitser/computel.gp +740 -0
  87. sage/ext_data/pari/dokchitser/computel.gp.template +740 -0
  88. sage/ext_data/pari/dokchitser/ex-bsw +43 -0
  89. sage/ext_data/pari/dokchitser/ex-chgen +48 -0
  90. sage/ext_data/pari/dokchitser/ex-chqua +37 -0
  91. sage/ext_data/pari/dokchitser/ex-delta +35 -0
  92. sage/ext_data/pari/dokchitser/ex-eisen +30 -0
  93. sage/ext_data/pari/dokchitser/ex-gen2 +38 -0
  94. sage/ext_data/pari/dokchitser/ex-gen3 +49 -0
  95. sage/ext_data/pari/dokchitser/ex-gen4 +54 -0
  96. sage/ext_data/pari/dokchitser/ex-nf +48 -0
  97. sage/ext_data/pari/dokchitser/ex-shin +50 -0
  98. sage/ext_data/pari/dokchitser/ex-tau2 +30 -0
  99. sage/ext_data/pari/dokchitser/ex-zeta +27 -0
  100. sage/ext_data/pari/dokchitser/ex-zeta2 +47 -0
  101. sage/ext_data/pari/dokchitser/testall +13 -0
  102. sage/ext_data/pari/simon/ell.gp +2129 -0
  103. sage/ext_data/pari/simon/ellQ.gp +2151 -0
  104. sage/ext_data/pari/simon/ellcommon.gp +126 -0
  105. sage/ext_data/pari/simon/qfsolve.gp +722 -0
  106. sage/ext_data/pari/simon/resultant3.gp +306 -0
  107. sage/groups/all__sagemath_pari.py +3 -0
  108. sage/groups/pari_group.py +175 -0
  109. sage/interfaces/all__sagemath_pari.py +1 -0
  110. sage/interfaces/genus2reduction.py +464 -0
  111. sage/interfaces/gp.py +1114 -0
  112. sage/libs/all__sagemath_pari.py +2 -0
  113. sage/libs/linkages/__init__.py +1 -0
  114. sage/libs/linkages/padics/API.pxi +617 -0
  115. sage/libs/linkages/padics/Polynomial_ram.pxi +388 -0
  116. sage/libs/linkages/padics/Polynomial_shared.pxi +554 -0
  117. sage/libs/linkages/padics/__init__.py +1 -0
  118. sage/libs/linkages/padics/fmpz_poly_unram.pxi +869 -0
  119. sage/libs/linkages/padics/mpz.pxi +691 -0
  120. sage/libs/linkages/padics/relaxed/API.pxi +518 -0
  121. sage/libs/linkages/padics/relaxed/__init__.py +1 -0
  122. sage/libs/linkages/padics/relaxed/flint.pxi +543 -0
  123. sage/libs/linkages/padics/unram_shared.pxi +247 -0
  124. sage/libs/pari/__init__.py +210 -0
  125. sage/libs/pari/all.py +5 -0
  126. sage/libs/pari/convert_flint.cpython-314-x86_64-linux-musl.so +0 -0
  127. sage/libs/pari/convert_flint.pxd +14 -0
  128. sage/libs/pari/convert_flint.pyx +159 -0
  129. sage/libs/pari/convert_gmp.cpython-314-x86_64-linux-musl.so +0 -0
  130. sage/libs/pari/convert_gmp.pxd +14 -0
  131. sage/libs/pari/convert_gmp.pyx +210 -0
  132. sage/libs/pari/convert_sage.cpython-314-x86_64-linux-musl.so +0 -0
  133. sage/libs/pari/convert_sage.pxd +16 -0
  134. sage/libs/pari/convert_sage.pyx +588 -0
  135. sage/libs/pari/convert_sage_complex_double.cpython-314-x86_64-linux-musl.so +0 -0
  136. sage/libs/pari/convert_sage_complex_double.pxd +14 -0
  137. sage/libs/pari/convert_sage_complex_double.pyx +132 -0
  138. sage/libs/pari/convert_sage_matrix.cpython-314-x86_64-linux-musl.so +0 -0
  139. sage/libs/pari/convert_sage_matrix.pyx +106 -0
  140. sage/libs/pari/convert_sage_real_double.cpython-314-x86_64-linux-musl.so +0 -0
  141. sage/libs/pari/convert_sage_real_double.pxd +5 -0
  142. sage/libs/pari/convert_sage_real_double.pyx +14 -0
  143. sage/libs/pari/convert_sage_real_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
  144. sage/libs/pari/convert_sage_real_mpfr.pxd +7 -0
  145. sage/libs/pari/convert_sage_real_mpfr.pyx +108 -0
  146. sage/libs/pari/misc.cpython-314-x86_64-linux-musl.so +0 -0
  147. sage/libs/pari/misc.pxd +4 -0
  148. sage/libs/pari/misc.pyx +26 -0
  149. sage/libs/pari/tests.py +1848 -0
  150. sage/matrix/all__sagemath_pari.py +1 -0
  151. sage/matrix/matrix_integer_pari.cpython-314-x86_64-linux-musl.so +0 -0
  152. sage/matrix/matrix_integer_pari.pyx +187 -0
  153. sage/matrix/matrix_rational_pari.cpython-314-x86_64-linux-musl.so +0 -0
  154. sage/matrix/matrix_rational_pari.pyx +160 -0
  155. sage/quadratic_forms/all__sagemath_pari.py +10 -0
  156. sage/quadratic_forms/genera/all.py +9 -0
  157. sage/quadratic_forms/genera/genus.py +3506 -0
  158. sage/quadratic_forms/genera/normal_form.py +1519 -0
  159. sage/quadratic_forms/genera/spinor_genus.py +243 -0
  160. sage/quadratic_forms/qfsolve.py +255 -0
  161. sage/quadratic_forms/quadratic_form__automorphisms.py +427 -0
  162. sage/quadratic_forms/quadratic_form__genus.py +141 -0
  163. sage/quadratic_forms/quadratic_form__local_density_interfaces.py +140 -0
  164. sage/quadratic_forms/quadratic_form__local_normal_form.py +421 -0
  165. sage/quadratic_forms/quadratic_form__local_representation_conditions.py +889 -0
  166. sage/quadratic_forms/quadratic_form__mass.py +69 -0
  167. sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py +663 -0
  168. sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py +373 -0
  169. sage/quadratic_forms/quadratic_form__siegel_product.py +198 -0
  170. sage/quadratic_forms/special_values.py +323 -0
  171. sage/rings/all__sagemath_pari.py +15 -0
  172. sage/rings/factorint_pari.cpython-314-x86_64-linux-musl.so +0 -0
  173. sage/rings/factorint_pari.pyx +80 -0
  174. sage/rings/finite_rings/all__sagemath_pari.py +1 -0
  175. sage/rings/finite_rings/element_givaro.cpython-314-x86_64-linux-musl.so +0 -0
  176. sage/rings/finite_rings/element_givaro.pxd +91 -0
  177. sage/rings/finite_rings/element_givaro.pyx +1769 -0
  178. sage/rings/finite_rings/element_ntl_gf2e.cpython-314-x86_64-linux-musl.so +0 -0
  179. sage/rings/finite_rings/element_ntl_gf2e.pxd +22 -0
  180. sage/rings/finite_rings/element_ntl_gf2e.pyx +1333 -0
  181. sage/rings/finite_rings/element_pari_ffelt.cpython-314-x86_64-linux-musl.so +0 -0
  182. sage/rings/finite_rings/element_pari_ffelt.pxd +13 -0
  183. sage/rings/finite_rings/element_pari_ffelt.pyx +1441 -0
  184. sage/rings/finite_rings/finite_field_givaro.py +612 -0
  185. sage/rings/finite_rings/finite_field_pari_ffelt.py +238 -0
  186. sage/rings/finite_rings/hom_finite_field_givaro.cpython-314-x86_64-linux-musl.so +0 -0
  187. sage/rings/finite_rings/hom_finite_field_givaro.pxd +28 -0
  188. sage/rings/finite_rings/hom_finite_field_givaro.pyx +280 -0
  189. sage/rings/finite_rings/residue_field_givaro.cpython-314-x86_64-linux-musl.so +0 -0
  190. sage/rings/finite_rings/residue_field_givaro.pyx +133 -0
  191. sage/rings/finite_rings/residue_field_pari_ffelt.cpython-314-x86_64-linux-musl.so +0 -0
  192. sage/rings/finite_rings/residue_field_pari_ffelt.pyx +128 -0
  193. sage/rings/function_field/all__sagemath_pari.py +1 -0
  194. sage/rings/function_field/valuation.py +1450 -0
  195. sage/rings/function_field/valuation_ring.py +212 -0
  196. sage/rings/number_field/all__sagemath_pari.py +14 -0
  197. sage/rings/number_field/totallyreal.cpython-314-x86_64-linux-musl.so +0 -0
  198. sage/rings/number_field/totallyreal.pyx +509 -0
  199. sage/rings/number_field/totallyreal_data.cpython-314-x86_64-linux-musl.so +0 -0
  200. sage/rings/number_field/totallyreal_data.pxd +26 -0
  201. sage/rings/number_field/totallyreal_data.pyx +928 -0
  202. sage/rings/number_field/totallyreal_phc.py +144 -0
  203. sage/rings/number_field/totallyreal_rel.py +1018 -0
  204. sage/rings/padics/CA_template.pxi +1847 -0
  205. sage/rings/padics/CA_template_header.pxi +50 -0
  206. sage/rings/padics/CR_template.pxi +2563 -0
  207. sage/rings/padics/CR_template_header.pxi +57 -0
  208. sage/rings/padics/FM_template.pxi +1575 -0
  209. sage/rings/padics/FM_template_header.pxi +50 -0
  210. sage/rings/padics/FP_template.pxi +2176 -0
  211. sage/rings/padics/FP_template_header.pxi +57 -0
  212. sage/rings/padics/all.py +3 -0
  213. sage/rings/padics/all__sagemath_pari.py +11 -0
  214. sage/rings/padics/common_conversion.cpython-314-x86_64-linux-musl.so +0 -0
  215. sage/rings/padics/common_conversion.pxd +15 -0
  216. sage/rings/padics/common_conversion.pyx +508 -0
  217. sage/rings/padics/eisenstein_extension_generic.py +232 -0
  218. sage/rings/padics/factory.py +3623 -0
  219. sage/rings/padics/generic_nodes.py +1615 -0
  220. sage/rings/padics/lattice_precision.py +2889 -0
  221. sage/rings/padics/morphism.cpython-314-x86_64-linux-musl.so +0 -0
  222. sage/rings/padics/morphism.pxd +11 -0
  223. sage/rings/padics/morphism.pyx +366 -0
  224. sage/rings/padics/padic_base_generic.py +467 -0
  225. sage/rings/padics/padic_base_leaves.py +1235 -0
  226. sage/rings/padics/padic_capped_absolute_element.cpython-314-x86_64-linux-musl.so +0 -0
  227. sage/rings/padics/padic_capped_absolute_element.pxd +15 -0
  228. sage/rings/padics/padic_capped_absolute_element.pyx +520 -0
  229. sage/rings/padics/padic_capped_relative_element.cpython-314-x86_64-linux-musl.so +0 -0
  230. sage/rings/padics/padic_capped_relative_element.pxd +14 -0
  231. sage/rings/padics/padic_capped_relative_element.pyx +614 -0
  232. sage/rings/padics/padic_extension_generic.py +990 -0
  233. sage/rings/padics/padic_extension_leaves.py +738 -0
  234. sage/rings/padics/padic_fixed_mod_element.cpython-314-x86_64-linux-musl.so +0 -0
  235. sage/rings/padics/padic_fixed_mod_element.pxd +15 -0
  236. sage/rings/padics/padic_fixed_mod_element.pyx +584 -0
  237. sage/rings/padics/padic_floating_point_element.cpython-314-x86_64-linux-musl.so +0 -0
  238. sage/rings/padics/padic_floating_point_element.pxd +14 -0
  239. sage/rings/padics/padic_floating_point_element.pyx +447 -0
  240. sage/rings/padics/padic_generic_element.cpython-314-x86_64-linux-musl.so +0 -0
  241. sage/rings/padics/padic_generic_element.pxd +48 -0
  242. sage/rings/padics/padic_generic_element.pyx +4642 -0
  243. sage/rings/padics/padic_lattice_element.py +1342 -0
  244. sage/rings/padics/padic_printing.cpython-314-x86_64-linux-musl.so +0 -0
  245. sage/rings/padics/padic_printing.pxd +38 -0
  246. sage/rings/padics/padic_printing.pyx +1505 -0
  247. sage/rings/padics/padic_relaxed_element.cpython-314-x86_64-linux-musl.so +0 -0
  248. sage/rings/padics/padic_relaxed_element.pxd +56 -0
  249. sage/rings/padics/padic_relaxed_element.pyx +18 -0
  250. sage/rings/padics/padic_relaxed_errors.cpython-314-x86_64-linux-musl.so +0 -0
  251. sage/rings/padics/padic_relaxed_errors.pxd +11 -0
  252. sage/rings/padics/padic_relaxed_errors.pyx +71 -0
  253. sage/rings/padics/padic_template_element.pxi +1212 -0
  254. sage/rings/padics/padic_template_element_header.pxi +50 -0
  255. sage/rings/padics/padic_valuation.py +1423 -0
  256. sage/rings/padics/pow_computer_flint.cpython-314-x86_64-linux-musl.so +0 -0
  257. sage/rings/padics/pow_computer_flint.pxd +38 -0
  258. sage/rings/padics/pow_computer_flint.pyx +641 -0
  259. sage/rings/padics/pow_computer_relative.cpython-314-x86_64-linux-musl.so +0 -0
  260. sage/rings/padics/pow_computer_relative.pxd +29 -0
  261. sage/rings/padics/pow_computer_relative.pyx +415 -0
  262. sage/rings/padics/qadic_flint_CA.cpython-314-x86_64-linux-musl.so +0 -0
  263. sage/rings/padics/qadic_flint_CA.pxd +21 -0
  264. sage/rings/padics/qadic_flint_CA.pyx +130 -0
  265. sage/rings/padics/qadic_flint_CR.cpython-314-x86_64-linux-musl.so +0 -0
  266. sage/rings/padics/qadic_flint_CR.pxd +13 -0
  267. sage/rings/padics/qadic_flint_CR.pyx +172 -0
  268. sage/rings/padics/qadic_flint_FM.cpython-314-x86_64-linux-musl.so +0 -0
  269. sage/rings/padics/qadic_flint_FM.pxd +14 -0
  270. sage/rings/padics/qadic_flint_FM.pyx +111 -0
  271. sage/rings/padics/qadic_flint_FP.cpython-314-x86_64-linux-musl.so +0 -0
  272. sage/rings/padics/qadic_flint_FP.pxd +12 -0
  273. sage/rings/padics/qadic_flint_FP.pyx +165 -0
  274. sage/rings/padics/relative_extension_leaves.py +429 -0
  275. sage/rings/padics/relative_ramified_CA.cpython-314-x86_64-linux-musl.so +0 -0
  276. sage/rings/padics/relative_ramified_CA.pxd +9 -0
  277. sage/rings/padics/relative_ramified_CA.pyx +33 -0
  278. sage/rings/padics/relative_ramified_CR.cpython-314-x86_64-linux-musl.so +0 -0
  279. sage/rings/padics/relative_ramified_CR.pxd +8 -0
  280. sage/rings/padics/relative_ramified_CR.pyx +33 -0
  281. sage/rings/padics/relative_ramified_FM.cpython-314-x86_64-linux-musl.so +0 -0
  282. sage/rings/padics/relative_ramified_FM.pxd +9 -0
  283. sage/rings/padics/relative_ramified_FM.pyx +33 -0
  284. sage/rings/padics/relative_ramified_FP.cpython-314-x86_64-linux-musl.so +0 -0
  285. sage/rings/padics/relative_ramified_FP.pxd +8 -0
  286. sage/rings/padics/relative_ramified_FP.pyx +33 -0
  287. sage/rings/padics/relaxed_template.pxi +4229 -0
  288. sage/rings/padics/relaxed_template_header.pxi +160 -0
  289. sage/rings/padics/tests.py +35 -0
  290. sage/rings/padics/tutorial.py +341 -0
  291. sage/rings/padics/unramified_extension_generic.py +335 -0
  292. sage/rings/padics/witt_vector.py +917 -0
  293. sage/rings/padics/witt_vector_ring.py +934 -0
  294. sage/rings/pari_ring.py +235 -0
  295. sage/rings/polynomial/all__sagemath_pari.py +1 -0
  296. sage/rings/polynomial/padics/all.py +1 -0
  297. sage/rings/polynomial/padics/polynomial_padic.py +360 -0
  298. sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py +1324 -0
  299. sage/rings/polynomial/padics/polynomial_padic_flat.py +72 -0
  300. sage/rings/power_series_pari.cpython-314-x86_64-linux-musl.so +0 -0
  301. sage/rings/power_series_pari.pxd +6 -0
  302. sage/rings/power_series_pari.pyx +934 -0
  303. sage/rings/tate_algebra.py +1282 -0
  304. sage/rings/tate_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  305. sage/rings/tate_algebra_element.pxd +49 -0
  306. sage/rings/tate_algebra_element.pyx +3464 -0
  307. sage/rings/tate_algebra_ideal.cpython-314-x86_64-linux-musl.so +0 -0
  308. sage/rings/tate_algebra_ideal.pxd +7 -0
  309. sage/rings/tate_algebra_ideal.pyx +1307 -0
  310. sage/rings/valuation/all.py +7 -0
  311. sage/rings/valuation/augmented_valuation.py +2118 -0
  312. sage/rings/valuation/developing_valuation.py +362 -0
  313. sage/rings/valuation/gauss_valuation.py +812 -0
  314. sage/rings/valuation/inductive_valuation.py +1686 -0
  315. sage/rings/valuation/limit_valuation.py +946 -0
  316. sage/rings/valuation/mapped_valuation.py +656 -0
  317. sage/rings/valuation/scaled_valuation.py +322 -0
  318. sage/rings/valuation/trivial_valuation.py +382 -0
  319. sage/rings/valuation/valuation.py +1119 -0
  320. sage/rings/valuation/valuation_space.py +1615 -0
  321. sage/rings/valuation/valuations_catalog.py +10 -0
  322. sage/rings/valuation/value_group.py +697 -0
  323. sage/schemes/all__sagemath_pari.py +1 -0
  324. sage/schemes/elliptic_curves/all__sagemath_pari.py +1 -0
  325. sage/schemes/elliptic_curves/descent_two_isogeny_pari.cpython-314-x86_64-linux-musl.so +0 -0
  326. sage/schemes/elliptic_curves/descent_two_isogeny_pari.pyx +46 -0
  327. sage_wheels/bin/gp +0 -0
  328. sage_wheels/bin/gp2c +0 -0
  329. sage_wheels/bin/gp2c-run +57 -0
  330. sage_wheels/bin/xeus-gp +0 -0
  331. sage_wheels/share/gp2c/func.dsc +18414 -0
@@ -0,0 +1,464 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ r"""
3
+ Conductor and reduction types for genus 2 curves
4
+
5
+ AUTHORS:
6
+
7
+ - Qing Liu and Henri Cohen (1994-1998): wrote genus2reduction C
8
+ program
9
+
10
+ - William Stein (2006-03-05): wrote Sage interface to genus2reduction
11
+
12
+ - Jeroen Demeyer (2014-09-17): replace genus2reduction program by PARI
13
+ library call (:issue:`15808`)
14
+
15
+ ACKNOWLEDGMENT: (From Liu's website:) Many thanks to Henri Cohen who started
16
+ writing this program. After this program is available, many people pointed out
17
+ to me (mathematical as well as programming) bugs : B. Poonen, E. Schaefer, C.
18
+ Stahlke, M. Stoll, F. Villegas. So thanks to all of them. Thanks also go to
19
+ Ph. Depouilly who help me to compile the program.
20
+
21
+ Also Liu has given me explicit permission to include genus2reduction with Sage
22
+ and for people to modify the C source code however they want.
23
+ """
24
+
25
+ # ****************************************************************************
26
+ # Copyright (C) 2006 William Stein <wstein@gmail.com>
27
+ # Copyright (C) 2014 Jeroen Demeyer <jdemeyer@cage.ugent.be>
28
+ #
29
+ # This program is free software: you can redistribute it and/or modify
30
+ # it under the terms of the GNU General Public License as published by
31
+ # the Free Software Foundation, either version 2 of the License, or
32
+ # (at your option) any later version.
33
+ # https://www.gnu.org/licenses/
34
+ # ****************************************************************************
35
+
36
+ from sage.structure.sage_object import SageObject
37
+ from sage.rings.integer_ring import ZZ
38
+ from sage.rings.rational_field import QQ
39
+ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
40
+ from sage.libs.pari import pari
41
+
42
+ roman_numeral = ["", "I", "II", "III", "IV", "V", "VI", "VII"]
43
+
44
+
45
+ class ReductionData(SageObject):
46
+ r"""
47
+ Reduction data for a genus 2 curve.
48
+
49
+ How to read ``local_data`` attribute, i.e., if this
50
+ class is R, then the following is the meaning of
51
+ ``R.local_data[p]``.
52
+
53
+ For each prime number `p` dividing the discriminant of
54
+ `y^2+Q(x)y=P(x)`, there are two lines.
55
+
56
+ The first line contains information about the stable reduction
57
+ after field extension. Here are the meanings of the symbols of
58
+ stable reduction:
59
+
60
+ (I) The stable reduction is smooth (i.e. the curve has potentially
61
+ good reduction).
62
+
63
+ (II) The stable reduction is an elliptic curve `E` with an
64
+ ordinary double point. `j` mod `p` is the modular
65
+ invariant of `E`.
66
+
67
+ (III) The stable reduction is a projective line with two ordinary
68
+ double points.
69
+
70
+ (IV) The stable reduction is two projective lines crossing
71
+ transversally at three points.
72
+
73
+ (V) The stable reduction is the union of two elliptic curves
74
+ `E_1` and `E_2` intersecting transversally at one
75
+ point. Let `j_1`, `j_2` be their modular
76
+ invariants, then `j_1+j_2` and `j_1 j_2` are
77
+ computed (they are numbers mod `p`).
78
+
79
+ (VI) The stable reduction is the union of an elliptic curve
80
+ `E` and a projective line which has an ordinary double
81
+ point. These two components intersect transversally at one point.
82
+ `j` mod `p` is the modular invariant of
83
+ `E`.
84
+
85
+ (VII) The stable reduction is as above, but the two components are
86
+ both singular.
87
+
88
+ In the cases (I) and (V), the Jacobian `J(C)` has
89
+ potentially good reduction. In the cases (III), (IV) and (VII),
90
+ `J(C)` has potentially multiplicative reduction. In the two
91
+ remaining cases, the (potential) semi-abelian reduction of
92
+ `J(C)` is extension of an elliptic curve (with modular
93
+ invariant `j` mod `p`) by a torus.
94
+
95
+ The second line contains three data concerning the reduction at
96
+ `p` without any field extension.
97
+
98
+
99
+ #. The first symbol describes the REDUCTION AT `p` of
100
+ `C`. We use the symbols of Namikawa-Ueno for the type of
101
+ the reduction (Namikawa, Ueno:"The complete classification of
102
+ fibers in pencils of curves of genus two", Manuscripta Math., vol.
103
+ 9, (1973), pages 143-186.) The reduction symbol is followed by the
104
+ corresponding page number (or just an indication) in the above
105
+ article. The lower index is printed by , for instance, [I2-II-5]
106
+ means [I_2-II-5]. Note that if `K` and `K'` are
107
+ Kodaira symbols for singular fibers of elliptic curves, [K-K'-m]
108
+ and [K'-K-m] are the same type. Finally, [K-K'-1] (not the same as
109
+ [K-K'-1]) is [K'-K-alpha] in the notation of Namikawa-Ueno. The
110
+ figure [2I_0-m] in Namikawa-Ueno, page 159 must be denoted by
111
+ [2I_0-(m+1)].
112
+
113
+ #. The second datum is the GROUP OF CONNECTED COMPONENTS (over an
114
+ ALGEBRAIC CLOSURE (!) of `\GF{p}`) of the Neron
115
+ model of J(C). The symbol (n) means the cyclic group with n
116
+ elements. When n=0, (0) is the trivial group (1).
117
+ ``Hn`` is isomorphic to (2)x(2) if n is even and to (4)
118
+ otherwise.
119
+
120
+ Note - The set of rational points of `\Phi` can be computed
121
+ using Theorem 1.17 in S. Bosch and Q. Liu "Rational points of the
122
+ group of components of a Neron model", Manuscripta Math. 98 (1999),
123
+ 275-293.
124
+
125
+ #. Finally, `f` is the exponent of the conductor of
126
+ `J(C)` at `p`.
127
+
128
+
129
+ .. warning::
130
+
131
+ Be careful regarding the formula:
132
+
133
+ .. MATH::
134
+
135
+ \text{valuation of the naive minimal discriminant} = f + n - 1 + 11c(X).
136
+
137
+ (Q. Liu : "Conducteur et discriminant minimal de courbes de genre
138
+ 2", Compositio Math. 94 (1994) 51-79, Theoreme 2) is valid only if
139
+ the residual field is algebraically closed as stated in the paper.
140
+ So this equality does not hold in general over
141
+ `\QQ_p`. The fact is that the minimal discriminant
142
+ may change after unramified extension. One can show however that,
143
+ at worst, the change will stabilize after a quadratic unramified
144
+ extension (Q. Liu : "Modèles entiers de courbes hyperelliptiques
145
+ sur un corps de valuation discrète", Trans. AMS 348 (1996),
146
+ 4577-4610, Section 7.2, Proposition 4).
147
+ """
148
+ def __init__(self, pari_result, P, Q, Pmin, Qmin, minimal_disc,
149
+ local_data, conductor):
150
+ self.pari_result = pari_result
151
+ self.P = P
152
+ self.Q = Q
153
+ self.Pmin = Pmin
154
+ self.Qmin = Qmin
155
+ self.minimal_disc = minimal_disc
156
+ self.local_data = local_data
157
+ self.conductor = conductor
158
+
159
+ def _repr_(self):
160
+ if self.Q == 0:
161
+ yterm = ''
162
+ else:
163
+ yterm = '+ (%s)*y ' % self.Q
164
+
165
+ s = 'Reduction data about this proper smooth genus 2 curve:\n'
166
+ s += '\ty^2 %s= %s\n' % (yterm, self.P)
167
+ if self.Qmin:
168
+ s += 'A Minimal Equation:\n\ty^2 + (%s)y = %s\n' % (self.Qmin, self.Pmin)
169
+ else:
170
+ s += 'A Minimal Equation:\n\ty^2 = %s\n' % self.Pmin
171
+ s += 'Minimal Discriminant: %s\n' % self.minimal_disc
172
+ s += 'Conductor: %s\n' % self.conductor
173
+ s += 'Local Data:\n%s' % self._local_data_str()
174
+ return s
175
+
176
+ def _local_data_str(self):
177
+ s = ''
178
+ D = self.local_data
179
+ K = sorted(D.keys())
180
+ for p in K:
181
+ s += 'p=%s\n%s\n' % (p, D[p])
182
+ s = '\t' + '\n\t'.join(s.strip().split('\n'))
183
+ return s
184
+
185
+
186
+ def divisors_to_string(divs):
187
+ """
188
+ Convert a list of numbers (representing the orders of cyclic groups
189
+ in the factorization of a finite abelian group) to a string
190
+ according to the format shown in the examples.
191
+
192
+ INPUT:
193
+
194
+ - ``divs`` -- a (possibly empty) list of numbers
195
+
196
+ OUTPUT: string representation of these numbers
197
+
198
+ EXAMPLES::
199
+
200
+ sage: from sage.interfaces.genus2reduction import divisors_to_string
201
+ sage: print(divisors_to_string([]))
202
+ (1)
203
+ sage: print(divisors_to_string([5]))
204
+ (5)
205
+ sage: print(divisors_to_string([5]*6))
206
+ (5)^6
207
+ sage: print(divisors_to_string([2,3,4]))
208
+ (2)x(3)x(4)
209
+ sage: print(divisors_to_string([6,2,2]))
210
+ (6)x(2)^2
211
+ """
212
+ s = ""
213
+ n = 0 # How many times have we seen the current divisor?
214
+ for i in range(len(divs)):
215
+ n += 1
216
+ if i+1 == len(divs) or divs[i+1] != divs[i]:
217
+ # Next divisor is different or we are done? Print current one
218
+ if s:
219
+ s += "x"
220
+ s += "(%s)" % divs[i]
221
+ if n > 1:
222
+ s += "^%s" % n
223
+ n = 0
224
+
225
+ return s or "(1)"
226
+
227
+
228
+ class Genus2reduction(SageObject):
229
+ r"""
230
+ Conductor and Reduction Types for Genus 2 Curves.
231
+
232
+ Use ``R = genus2reduction(Q, P)`` to obtain reduction
233
+ information about the Jacobian of the projective smooth curve
234
+ defined by `y^2 + Q(x)y = P(x)`. Type ``R?``
235
+ for further documentation and a description of how to interpret the
236
+ local reduction data.
237
+
238
+ EXAMPLES::
239
+
240
+ sage: x = QQ['x'].0
241
+ sage: R = genus2reduction(x^3 - 2*x^2 - 2*x + 1, -5*x^5)
242
+ sage: R.conductor
243
+ 1416875
244
+ sage: factor(R.conductor)
245
+ 5^4 * 2267
246
+
247
+ The discriminant is always minimal::
248
+
249
+ sage: factor(R.minimal_disc)
250
+ 2^3 * 5^5 * 2267
251
+
252
+ Printing R summarizes all the information computed about the curve
253
+
254
+ ::
255
+
256
+ sage: R
257
+ Reduction data about this proper smooth genus 2 curve:
258
+ y^2 + (x^3 - 2*x^2 - 2*x + 1)*y = -5*x^5
259
+ A Minimal Equation:
260
+ y^2 ...
261
+ Minimal Discriminant: 56675000
262
+ Conductor: 1416875
263
+ Local Data:
264
+ p=2
265
+ (potential) stable reduction: (II), j=1
266
+ p=5
267
+ (potential) stable reduction: (I)
268
+ reduction at p: [V] page 156, (3), f=4
269
+ p=2267
270
+ (potential) stable reduction: (II), j=432
271
+ reduction at p: [I{1-0-0}] page 170, (1), f=1
272
+
273
+ Here are some examples of curves with modular Jacobians::
274
+
275
+ sage: R = genus2reduction(x^3 + x + 1, -2*x^5 - 3*x^2 + 2*x - 2)
276
+ sage: factor(R.conductor)
277
+ 23^2
278
+ sage: factor(genus2reduction(x^3 + 1, -x^5 - 3*x^4 + 2*x^2 + 2*x - 2).conductor)
279
+ 29^2
280
+ sage: factor(genus2reduction(x^3 + x + 1, x^5 + 2*x^4 + 2*x^3 + x^2 - x - 1).conductor)
281
+ 5^6
282
+
283
+ EXAMPLES::
284
+
285
+ sage: genus2reduction(0, x^6 + 3*x^3 + 63)
286
+ Reduction data about this proper smooth genus 2 curve:
287
+ y^2 = x^6 + 3*x^3 + 63
288
+ A Minimal Equation:
289
+ y^2 ...
290
+ Minimal Discriminant: -10628388316852992
291
+ Conductor: 2893401
292
+ Local Data:
293
+ p=2
294
+ (potential) stable reduction: (V), j1+j2=0, j1*j2=0
295
+ p=3
296
+ (potential) stable reduction: (I)
297
+ reduction at p: [III{9}] page 184, (3)^2, f=10
298
+ p=7
299
+ (potential) stable reduction: (V), j1+j2=0, j1*j2=0
300
+ reduction at p: [I{0}-II-0] page 159, (1), f=2
301
+
302
+ In the above example, Liu remarks that in fact at `p=2`,
303
+ the reduction is [II-II-0] page 163, (1), `f=8`. So the
304
+ conductor of J(C) is actually `2 \cdot 2893401=5786802`.
305
+
306
+ A MODULAR CURVE:
307
+
308
+ Consider the modular curve `X_1(13)` defined by an
309
+ equation
310
+
311
+ .. MATH::
312
+
313
+ y^2 + (x^3-x^2-1)y = x^2 - x.
314
+
315
+ We have::
316
+
317
+ sage: genus2reduction(x^3-x^2-1, x^2 - x)
318
+ Reduction data about this proper smooth genus 2 curve:
319
+ y^2 + (x^3 - x^2 - 1)*y = x^2 - x
320
+ A Minimal Equation:
321
+ y^2 ...
322
+ Minimal Discriminant: -169
323
+ Conductor: 169
324
+ Local Data:
325
+ p=13
326
+ (potential) stable reduction: (V), j1+j2=0, j1*j2=0
327
+ reduction at p: [I{0}-II-0] page 159, (1), f=2
328
+
329
+ So the curve has good reduction at 2. At `p=13`, the stable
330
+ reduction is union of two elliptic curves, and both of them have 0
331
+ as modular invariant. The reduction at 13 is of type [I_0-II-0]
332
+ (see Namikawa-Ueno, page 159). It is an elliptic curve with a cusp.
333
+ The group of connected components of the Neron model of
334
+ `J(C)` is trivial, and the exponent of the conductor of
335
+ `J(C)` at `13` is `f=2`. The conductor of
336
+ `J(C)` is `13^2`. (Note: It is a theorem of
337
+ Conrad-Edixhoven-Stein that the component group of
338
+ `J(X_1(p))` is trivial for all primes `p`.)
339
+ """
340
+ def __init__(self):
341
+ pass
342
+
343
+ def _repr_(self):
344
+ """
345
+ EXAMPLES::
346
+
347
+ sage: genus2reduction
348
+ Genus 2 reduction PARI interface
349
+ """
350
+ return "Genus 2 reduction PARI interface"
351
+
352
+ def __call__(self, Q, P):
353
+ """
354
+ Compute and return the :class:`ReductionData` corresponding to
355
+ the genus 2 curve `y^2 + Q(x) y = P(x)`.
356
+
357
+ EXAMPLES::
358
+
359
+ sage: x = polygen(QQ)
360
+ sage: genus2reduction(x^3 - 2*x^2 - 2*x + 1, -5*x^5)
361
+ Reduction data about this proper smooth genus 2 curve:
362
+ y^2 + (x^3 - 2*x^2 - 2*x + 1)*y = -5*x^5
363
+ A Minimal Equation:
364
+ y^2 ...
365
+ Minimal Discriminant: 56675000
366
+ Conductor: 1416875
367
+ Local Data:
368
+ p=2
369
+ (potential) stable reduction: (II), j=1
370
+ p=5
371
+ (potential) stable reduction: (I)
372
+ reduction at p: [V] page 156, (3), f=4
373
+ p=2267
374
+ (potential) stable reduction: (II), j=432
375
+ reduction at p: [I{1-0-0}] page 170, (1), f=1
376
+
377
+ ::
378
+
379
+ sage: genus2reduction(x^2 + 1, -5*x^5)
380
+ Reduction data about this proper smooth genus 2 curve:
381
+ y^2 + (x^2 + 1)*y = -5*x^5
382
+ A Minimal Equation:
383
+ y^2 ...
384
+ Minimal Discriminant: 48838125
385
+ Conductor: 32025
386
+ Local Data:
387
+ p=3
388
+ (potential) stable reduction: (II), j=1
389
+ reduction at p: [I{1-0-0}] page 170, (1), f=1
390
+ p=5
391
+ (potential) stable reduction: (IV)
392
+ reduction at p: [I{1-1-2}] page 182, (5), f=2
393
+ p=7
394
+ (potential) stable reduction: (II), j=4
395
+ reduction at p: [I{1-0-0}] page 170, (1), f=1
396
+ p=61
397
+ (potential) stable reduction: (II), j=57
398
+ reduction at p: [I{2-0-0}] page 170, (2), f=1
399
+
400
+ Verify that we fix :issue:`5573`::
401
+
402
+ sage: genus2reduction(x^3 + x^2 + x,-2*x^5 + 3*x^4 - x^3 - x^2 - 6*x - 2)
403
+ Reduction data about this proper smooth genus 2 curve:
404
+ y^2 + (x^3 + x^2 + x)*y = -2*x^5 + 3*x^4 - x^3 - x^2 - 6*x - 2
405
+ A Minimal Equation:
406
+ y^2 ...
407
+ Minimal Discriminant: 1520984142
408
+ Conductor: 954
409
+ Local Data:
410
+ p=2
411
+ (potential) stable reduction: (II), j=1
412
+ reduction at p: [I{1-0-0}] page 170, (1), f=1
413
+ p=3
414
+ (potential) stable reduction: (I)
415
+ reduction at p: [II] page 155, (1), f=2
416
+ p=53
417
+ (potential) stable reduction: (II), j=12
418
+ reduction at p: [I{1-0-0}] page 170, (1), f=1
419
+ """
420
+ R = PolynomialRing(QQ, 'x')
421
+ P = R(P)
422
+ Q = R(Q)
423
+ if P.degree() > 6:
424
+ raise ValueError("P (=%s) must have degree at most 6" % P)
425
+ if Q.degree() >= 4:
426
+ raise ValueError("Q (=%s) must have degree at most 3" % Q)
427
+
428
+ res = pari.genus2red([P, Q])
429
+ conductor = ZZ(res[0])
430
+ Pmin = R(res[2][0])
431
+ Qmin = R(res[2][1])
432
+ minimal_disc = ZZ(pari.hyperelldisc(res[2]))
433
+
434
+ local_data = {}
435
+ for red in res[3]:
436
+ p = ZZ(red[0])
437
+
438
+ t = red[1]
439
+ data = "(potential) stable reduction: (%s)" % roman_numeral[int(t[0])]
440
+ t = t[1]
441
+ if len(t) == 1:
442
+ data += ", j=%s" % t[0].lift()
443
+ elif len(t) == 2:
444
+ data += ", j1+j2=%s, j1*j2=%s" % (t[0].lift(), t[1].lift())
445
+
446
+ t = red[2]
447
+ if t:
448
+ data += "\nreduction at p: %s, " % str(t[0]).replace('"', '').replace("(tame) ", "")
449
+ data += divisors_to_string(t[1]) + ", f=" + str(res[0].valuation(red[0]))
450
+
451
+ local_data[p] = data
452
+
453
+ return ReductionData(res, P, Q, Pmin, Qmin, minimal_disc, local_data, conductor)
454
+
455
+ def __reduce__(self):
456
+ return _reduce_load_genus2reduction, tuple([])
457
+
458
+
459
+ # An instance
460
+ genus2reduction = Genus2reduction()
461
+
462
+
463
+ def _reduce_load_genus2reduction():
464
+ return genus2reduction