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,467 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ r"""
3
+ `p`-adic Base Generic
4
+
5
+ A superclass for implementations of `\ZZ_p` and `\QQ_p`.
6
+
7
+ AUTHORS:
8
+
9
+ - David Roe
10
+ """
11
+
12
+ #*****************************************************************************
13
+ # Copyright (C) 2007-2013 David Roe <roed.math@gmail.com>
14
+ # William Stein <wstein@gmail.com>
15
+ #
16
+ # Distributed under the terms of the GNU General Public License (GPL)
17
+ # as published by the Free Software Foundation; either version 2 of
18
+ # the License, or (at your option) any later version.
19
+ #
20
+ # http://www.gnu.org/licenses/
21
+ #*****************************************************************************
22
+
23
+ from sage.rings.integer_ring import ZZ
24
+ from sage.rings.rational_field import QQ
25
+
26
+ from .padic_generic import pAdicGeneric
27
+ from .misc import precprint
28
+ from sage.rings.padics.pow_computer import PowComputer
29
+ from sage.rings.padics.padic_capped_relative_element import pAdicCoercion_ZZ_CR, pAdicCoercion_QQ_CR, pAdicConvert_QQ_CR
30
+ from sage.rings.padics.padic_capped_absolute_element import pAdicCoercion_ZZ_CA, pAdicConvert_QQ_CA
31
+ from sage.rings.padics.padic_fixed_mod_element import pAdicCoercion_ZZ_FM, pAdicConvert_QQ_FM
32
+ from sage.rings.padics.padic_floating_point_element import pAdicCoercion_ZZ_FP, pAdicCoercion_QQ_FP, pAdicConvert_QQ_FP
33
+
34
+
35
+ class pAdicBaseGeneric(pAdicGeneric):
36
+ _implementation = 'GMP'
37
+
38
+ def __init__(self, p, prec, print_mode, names, element_class, category=None):
39
+ """
40
+ Initialization.
41
+
42
+ TESTS::
43
+
44
+ sage: R = Zp(5) # indirect doctest
45
+ """
46
+ if self.is_relaxed():
47
+ from sage.rings.padics.pow_computer_flint import PowComputer_flint
48
+ self.prime_pow = PowComputer_flint(p, 1, 1, 1, self.is_field())
49
+ else:
50
+ self.prime_pow = PowComputer(p, max(min(prec - 1, 30), 1), prec, self.is_field(), self._prec_type())
51
+ pAdicGeneric.__init__(self, self, p, prec, print_mode, names, element_class, category=category)
52
+ if self.is_field():
53
+ if self.is_capped_relative():
54
+ coerce_list = [pAdicCoercion_ZZ_CR(self), pAdicCoercion_QQ_CR(self)]
55
+ convert_list = []
56
+ elif self.is_floating_point():
57
+ coerce_list = [pAdicCoercion_ZZ_FP(self), pAdicCoercion_QQ_FP(self)]
58
+ convert_list = []
59
+ elif self.is_lattice_prec():
60
+ coerce_list = [QQ]
61
+ convert_list = []
62
+ elif self.is_relaxed():
63
+ coerce_list = [QQ]
64
+ convert_list = []
65
+ else:
66
+ raise RuntimeError
67
+ elif self.is_capped_relative():
68
+ coerce_list = [pAdicCoercion_ZZ_CR(self)]
69
+ convert_list = [pAdicConvert_QQ_CR(self)]
70
+ elif self.is_capped_absolute():
71
+ coerce_list = [pAdicCoercion_ZZ_CA(self)]
72
+ convert_list = [pAdicConvert_QQ_CA(self)]
73
+ elif self.is_fixed_mod():
74
+ coerce_list = [pAdicCoercion_ZZ_FM(self)]
75
+ convert_list = [pAdicConvert_QQ_FM(self)]
76
+ elif self.is_floating_point():
77
+ coerce_list = [pAdicCoercion_ZZ_FP(self)]
78
+ convert_list = [pAdicConvert_QQ_FP(self)]
79
+ elif self.is_lattice_prec():
80
+ coerce_list = [ZZ]
81
+ convert_list = [QQ]
82
+ elif self.is_relaxed():
83
+ coerce_list = [ZZ]
84
+ convert_list = [QQ]
85
+ else:
86
+ raise RuntimeError
87
+ self.Element = element_class
88
+ self._populate_coercion_lists_(coerce_list=coerce_list, convert_list=convert_list)
89
+
90
+ def _repr_(self, do_latex=False):
91
+ r"""
92
+ Return a print representation of this `p`-adic ring or field.
93
+
94
+ EXAMPLES::
95
+
96
+ sage: K = Zp(17); K # indirect doctest
97
+ 17-adic Ring with capped relative precision 20
98
+ sage: latex(K)
99
+ \Bold{Z}_{17}
100
+ sage: K = ZpCA(17); K # indirect doctest
101
+ 17-adic Ring with capped absolute precision 20
102
+ sage: latex(K)
103
+ \Bold{Z}_{17}
104
+ sage: K = ZpFP(17); K # indirect doctest
105
+ 17-adic Ring with floating precision 20
106
+ sage: latex(K)
107
+ \Bold{Z}_{17}
108
+ sage: K = ZpFM(7); K
109
+ 7-adic Ring of fixed modulus 7^20
110
+ sage: latex(K) # indirect doctest
111
+ \Bold{Z}_{7}
112
+ sage: K = ZpLF(2); K # indirect doctest
113
+ doctest:...: FutureWarning: This class/method/function is marked as experimental. It, its functionality or its interface might change without a formal deprecation.
114
+ See https://github.com/sagemath/sage/issues/23505 for details.
115
+ 2-adic Ring with lattice-float precision
116
+ sage: latex(K)
117
+ \Bold{Z}_{2}
118
+ sage: K = Qp(17); K # indirect doctest
119
+ 17-adic Field with capped relative precision 20
120
+ sage: latex(K)
121
+ \Bold{Q}_{17}
122
+ sage: K = QpFP(17); K # indirect doctest
123
+ 17-adic Field with floating precision 20
124
+ sage: latex(K)
125
+ \Bold{Q}_{17}
126
+ sage: K = QpLC(2); K # indirect doctest
127
+ 2-adic Field with lattice-cap precision
128
+ sage: latex(K)
129
+ \Bold{Q}_{2}
130
+ """
131
+ if do_latex:
132
+ if self.is_field():
133
+ s = r"\Bold{Q}_{%s}" % self.prime()
134
+ else:
135
+ s = r"\Bold{Z}_{%s}" % self.prime()
136
+ if hasattr(self, '_label') and self._label:
137
+ s = r"\verb'%s' (\simeq %s)" % (self._label, s)
138
+ else:
139
+ s = "Field " if self.is_field() else "Ring "
140
+ s = "%s-adic " % self.prime() + s + precprint(self._prec_type(), self.precision_cap(), self.prime())
141
+ if hasattr(self, '_label') and self._label:
142
+ s += " (label: %s)" % self._label
143
+ return s
144
+
145
+ def exact_field(self):
146
+ """
147
+ Return the rational field.
148
+
149
+ For compatibility with extensions of `p`-adics.
150
+
151
+ EXAMPLES::
152
+
153
+ sage: Zp(5).exact_field()
154
+ Rational Field
155
+ """
156
+ from sage.rings.rational_field import QQ
157
+ return QQ
158
+
159
+ def exact_ring(self):
160
+ """
161
+ Return the integer ring.
162
+
163
+ EXAMPLES::
164
+
165
+ sage: Zp(5).exact_ring()
166
+ Integer Ring
167
+ """
168
+ from sage.rings.integer_ring import ZZ
169
+ return ZZ
170
+
171
+ def is_isomorphic(self, ring):
172
+ r"""
173
+ Return whether ``self`` and ``ring`` are isomorphic, i.e. whether
174
+ ``ring`` is an implementation of `\ZZ_p` for the same prime as ``self``.
175
+
176
+ INPUT:
177
+
178
+ - ``self`` -- a `p`-adic ring
179
+
180
+ - ``ring`` -- a ring
181
+
182
+ OUTPUT: ``boolean`` -- whether ``ring`` is an implementation of \ZZ_p`
183
+ for the same prime as ``self``
184
+
185
+ EXAMPLES::
186
+
187
+ sage: R = Zp(5, 15, print_mode='digits'); S = Zp(5, 44, print_max_terms=4); R.is_isomorphic(S)
188
+ True
189
+ """
190
+ return isinstance(ring, pAdicBaseGeneric) and self.prime() == ring.prime() and self.is_field() == ring.is_field()
191
+
192
+ def gen(self, n=0):
193
+ """
194
+ Return the `n`-th generator of this extension. For base
195
+ rings/fields, we consider the generator to be the prime.
196
+
197
+ EXAMPLES::
198
+
199
+ sage: R = Zp(5); R.gen()
200
+ 5 + O(5^21)
201
+ """
202
+ if n != 0:
203
+ raise IndexError("only one generator")
204
+ return self(self.prime())
205
+
206
+ def modulus(self, exact=False):
207
+ r"""
208
+ Return the polynomial defining this extension.
209
+
210
+ For compatibility with extension fields; we define the modulus to be `x-1`.
211
+
212
+ INPUT:
213
+
214
+ - ``exact`` -- boolean (default: ``False``); whether to return a
215
+ polynomial with integer entries
216
+
217
+ EXAMPLES::
218
+
219
+ sage: Zp(5).modulus(exact=True)
220
+ x
221
+ """
222
+ return self.defining_polynomial(exact=exact)
223
+
224
+ def absolute_discriminant(self):
225
+ """
226
+ Return the absolute discriminant of this `p`-adic ring.
227
+
228
+ EXAMPLES::
229
+
230
+ sage: Zp(5).absolute_discriminant()
231
+ 1
232
+ """
233
+ return 1
234
+
235
+ def discriminant(self, K=None):
236
+ """
237
+ Return the discriminant of this `p`-adic ring over ``K``.
238
+
239
+ INPUT:
240
+
241
+ - ``self`` -- a `p`-adic ring
242
+
243
+ - ``K`` -- a sub-ring of ``self`` or ``None`` (default: ``None``)
244
+
245
+ OUTPUT:
246
+
247
+ integer; the discriminant of this ring over ``K`` (or the absolute
248
+ discriminant if ``K`` is ``None``)
249
+
250
+ EXAMPLES::
251
+
252
+ sage: Zp(5).discriminant()
253
+ 1
254
+ """
255
+ if (K is None or K is self):
256
+ return 1
257
+ else:
258
+ raise ValueError("Ground Ring must be a subring of self")
259
+
260
+ def is_abelian(self):
261
+ """
262
+ Return whether the Galois group is abelian, i.e. ``True``.
263
+ #should this be automorphism group?
264
+
265
+ EXAMPLES::
266
+
267
+ sage: R = Zp(3, 10,'fixed-mod'); R.is_abelian()
268
+ True
269
+ """
270
+ return True
271
+
272
+ def is_normal(self):
273
+ """
274
+ Return whether or not this is a normal extension, i.e. ``True``.
275
+
276
+ EXAMPLES::
277
+
278
+ sage: R = Zp(3, 10,'fixed-mod'); R.is_normal()
279
+ True
280
+ """
281
+ return True
282
+
283
+ def uniformizer(self):
284
+ """
285
+ Return a uniformizer for this ring.
286
+
287
+ EXAMPLES::
288
+
289
+ sage: R = Zp(3,5,'fixed-mod', 'series')
290
+ sage: R.uniformizer()
291
+ 3
292
+ """
293
+ return self(self.prime_pow._prime())
294
+
295
+ def uniformizer_pow(self, n):
296
+ """
297
+ Return the `n`-th power of the uniformizer of ``self`` (as
298
+ an element of ``self``).
299
+
300
+ EXAMPLES::
301
+
302
+ sage: R = Zp(5)
303
+ sage: R.uniformizer_pow(5)
304
+ 5^5 + O(5^25)
305
+ sage: R.uniformizer_pow(infinity)
306
+ 0
307
+ """
308
+ return self(self.prime_pow(n))
309
+
310
+ def _uniformizer_print(self):
311
+ """
312
+ Return how the uniformizer is supposed to print.
313
+
314
+ EXAMPLES::
315
+
316
+ sage: R = Zp(5, names='pi'); R._uniformizer_print()
317
+ 'pi'
318
+ """
319
+ return self.variable_name()
320
+
321
+ def has_pth_root(self):
322
+ r"""
323
+ Return whether or not `\ZZ_p` has a primitive `p`-th
324
+ root of unity.
325
+
326
+ EXAMPLES::
327
+
328
+ sage: Zp(2).has_pth_root()
329
+ True
330
+ sage: Zp(17).has_pth_root()
331
+ False
332
+ """
333
+ return (self.prime() == 2)
334
+
335
+ def has_root_of_unity(self, n):
336
+ r"""
337
+ Return whether or not `\ZZ_p` has a primitive `n`-th
338
+ root of unity.
339
+
340
+ INPUT:
341
+
342
+ - ``self`` -- a `p`-adic ring
343
+
344
+ - ``n`` -- integer
345
+
346
+ OUTPUT:
347
+
348
+ boolean; whether ``self`` has primitive `n`-th root of unity
349
+
350
+ EXAMPLES::
351
+
352
+ sage: R=Zp(37)
353
+ sage: R.has_root_of_unity(12)
354
+ True
355
+ sage: R.has_root_of_unity(11)
356
+ False
357
+ """
358
+ if (self.prime() == 2):
359
+ return n.divides(2)
360
+ else:
361
+ return n.divides(self.prime() - 1)
362
+
363
+ def zeta(self, n=None):
364
+ r"""
365
+ Return a generator of the group of roots of unity.
366
+
367
+ INPUT:
368
+
369
+ - ``self`` -- a `p`-adic ring
370
+
371
+ - ``n`` -- integer or ``None`` (default: ``None``)
372
+
373
+ OUTPUT:
374
+
375
+ ``element``; a generator of the `n`-th roots of unity, or a generator
376
+ of the full group of roots of unity if ``n`` is ``None``
377
+
378
+ EXAMPLES::
379
+
380
+ sage: R = Zp(37,5)
381
+ sage: R.zeta(12)
382
+ 8 + 24*37 + 37^2 + 29*37^3 + 23*37^4 + O(37^5)
383
+ """
384
+ if (self.prime() == 2):
385
+ if (n is None) or (n == 2):
386
+ return self(-1)
387
+ if n == 1:
388
+ return self(1)
389
+ else:
390
+ raise ValueError("No, %sth root of unity in self" % n)
391
+ else:
392
+ from sage.rings.finite_rings.finite_field_constructor import GF
393
+ return self.teichmuller(GF(self.prime()).zeta(n).lift())
394
+
395
+ def zeta_order(self):
396
+ """
397
+ Return the order of the group of roots of unity.
398
+
399
+ EXAMPLES::
400
+
401
+ sage: R = Zp(37); R.zeta_order()
402
+ 36
403
+ sage: Zp(2).zeta_order()
404
+ 2
405
+ """
406
+ if (self.prime() == 2):
407
+ return 2
408
+ else:
409
+ return self.prime() - 1
410
+
411
+ def plot(self, max_points=2500, **args):
412
+ r"""
413
+ Create a visualization of this `p`-adic ring as a fractal
414
+ similar to a generalization of the Sierpi\'nski
415
+ triangle.
416
+
417
+ The resulting image attempts to capture the
418
+ algebraic and topological characteristics of `\ZZ_p`.
419
+
420
+ INPUT:
421
+
422
+ - ``max_points`` -- the maximum number or points to plot,
423
+ which controls the depth of recursion (default: 2500)
424
+
425
+ - ``**args`` -- color, size, etc. that are passed to the
426
+ underlying point graphics objects
427
+
428
+ REFERENCES:
429
+
430
+ - Cuoco, A. ''Visualizing the `p`-adic Integers'', The
431
+ American Mathematical Monthly, Vol. 98, No. 4 (Apr., 1991),
432
+ pp. 355-364
433
+
434
+ EXAMPLES::
435
+
436
+ sage: Zp(3).plot() # needs sage.plot
437
+ Graphics object consisting of 1 graphics primitive
438
+ sage: Zp(5).plot(max_points=625) # needs sage.plot
439
+ Graphics object consisting of 1 graphics primitive
440
+ sage: Zp(23).plot(rgbcolor=(1,0,0)) # needs sage.plot
441
+ Graphics object consisting of 1 graphics primitive
442
+ """
443
+ if 'pointsize' not in args:
444
+ args['pointsize'] = 1
445
+ from sage.misc.mrange import cartesian_product_iterator
446
+ from sage.rings.real_double import RDF
447
+ from sage.plot.all import points
448
+ p = self.prime()
449
+ phi = 2*RDF.pi()/p
450
+ V = RDF**2
451
+ vs = [V([(phi*t).sin(), (phi*t).cos()]) for t in range(p)]
452
+ all = []
453
+ depth = max(RDF(max_points).log(p).floor(), 1)
454
+ scale = min(RDF(1.5/p), 1/RDF(3))
455
+ pts = [vs]*depth
456
+ if depth == 1 and 23 < p < max_points:
457
+ extras = int(max_points/p)
458
+ if p/extras > 5:
459
+ pts = [vs]*depth + [vs[::extras]]
460
+ for digits in cartesian_product_iterator(pts):
461
+ p = sum([v * scale**n for n, v in enumerate(digits)])
462
+ all.append(tuple(p))
463
+ g = points(all, **args)
464
+ # Set default plotting options
465
+ g.axes(False)
466
+ g.set_aspect_ratio(1)
467
+ return g