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,11 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from sage.rings.morphism cimport RingHomomorphism
3
+ from sage.structure.element cimport Element
4
+
5
+
6
+ cdef class FrobeniusEndomorphism_padics(RingHomomorphism):
7
+ cdef long _degree
8
+ cdef long _power
9
+ cdef long _order
10
+
11
+ cpdef Element _call_(self, x)
@@ -0,0 +1,366 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.libs.ntl
3
+ """
4
+ Frobenius endomorphisms on `p`-adic fields
5
+ """
6
+ # ****************************************************************************
7
+ # Copyright (C) 2013 Xavier Caruso <xavier.caruso@normalesup.org>
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 2 of the License, or
12
+ # (at your option) any later version.
13
+ # https://www.gnu.org/licenses/
14
+ # ****************************************************************************
15
+
16
+ from sage.rings.integer cimport Integer
17
+ from sage.rings.infinity import Infinity
18
+
19
+ from sage.categories.homset import Hom
20
+ from sage.structure.element cimport Element
21
+ from sage.structure.richcmp cimport (richcmp, rich_to_bool,
22
+ richcmp_not_equal)
23
+
24
+ from sage.rings.morphism cimport RingHomomorphism
25
+ from sage.rings.padics.padic_generic import pAdicGeneric
26
+
27
+
28
+ cdef class FrobeniusEndomorphism_padics(RingHomomorphism):
29
+ """
30
+ A class implementing Frobenius endomorphisms on `p`-adic fields.
31
+ """
32
+ def __init__ (self, domain, n=1):
33
+ """
34
+ INPUT:
35
+
36
+ - ``domain`` -- an unramified `p`-adic field
37
+
38
+ - ``n`` -- integer (default: 1)
39
+
40
+ .. NOTE::
41
+
42
+ `n` may be negative.
43
+
44
+ OUTPUT:
45
+
46
+ The `n`-th power of the absolute (arithmetic) Frobenius
47
+ endomorphism on ``domain``
48
+
49
+ TESTS::
50
+
51
+ sage: from sage.rings.padics.morphism import FrobeniusEndomorphism_padics
52
+ sage: K.<a> = Qq(5^3)
53
+ sage: FrobeniusEndomorphism_padics(K)
54
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^5 on the residue field
55
+ sage: FrobeniusEndomorphism_padics(K,2)
56
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^(5^2) on the residue field
57
+
58
+ sage: FrobeniusEndomorphism_padics(K,a)
59
+ Traceback (most recent call last):
60
+ ...
61
+ TypeError: n (=a + O(5^20)) is not an integer
62
+
63
+ sage: K = Qp(5)
64
+ sage: x = polygen(ZZ, 'x')
65
+ sage: L.<pi> = K.extension(x^2 - 5)
66
+ sage: FrobeniusEndomorphism_padics(L)
67
+ Traceback (most recent call last):
68
+ ...
69
+ TypeError: The domain must be unramified
70
+
71
+ sage: FrobeniusEndomorphism_padics(QQ)
72
+ Traceback (most recent call last):
73
+ ...
74
+ TypeError: The domain must be an instance of pAdicGeneric
75
+ """
76
+ if not isinstance(domain, pAdicGeneric):
77
+ raise TypeError("The domain must be an instance of pAdicGeneric")
78
+ if domain.absolute_e() != 1:
79
+ raise TypeError("The domain must be unramified")
80
+ try:
81
+ n = Integer(n)
82
+ except (ValueError, TypeError):
83
+ raise TypeError("n (=%s) is not an integer" % n)
84
+
85
+ self._degree = domain.absolute_f()
86
+ self._power = n % self._degree
87
+ self._order = self._degree / domain.absolute_f().gcd(self._power)
88
+ RingHomomorphism.__init__(self, Hom(domain, domain))
89
+
90
+ cdef dict _extra_slots(self):
91
+ """
92
+ Helper for copying and pickling.
93
+
94
+ TESTS::
95
+
96
+ sage: R.<x> = QQ[]
97
+ sage: U.<a> = Qp(2).extension(x^2 + x + 1)
98
+ sage: F = U.frobenius_endomorphism(); F
99
+ Frobenius endomorphism on 2-adic Unramified Extension Field in a defined by x^2 + x + 1 lifting a |--> a^2 on the residue field
100
+ sage: copy(F)
101
+ Frobenius endomorphism on 2-adic Unramified Extension Field in a defined by x^2 + x + 1 lifting a |--> a^2 on the residue field
102
+ """
103
+ slots = RingHomomorphism._extra_slots(self)
104
+ slots['_degree'] = self._degree
105
+ slots['_power'] = self._power
106
+ slots['_order'] = self._order
107
+ return slots
108
+
109
+ cdef _update_slots(self, dict slots):
110
+ """
111
+ Helper for copying and pickling.
112
+
113
+ TESTS::
114
+
115
+ sage: R.<x> = ZZ[]
116
+ sage: U.<a> = Zp(2).extension(x^2 + x + 1)
117
+ sage: F = U.frobenius_endomorphism(); F
118
+ Frobenius endomorphism on 2-adic Unramified Extension Ring in a defined by x^2 + x + 1 lifting a |--> a^2 on the residue field
119
+ sage: loads(dumps(F)) == F
120
+ True
121
+ """
122
+ self._degree = slots['_degree']
123
+ self._power = slots['_power']
124
+ self._order = slots['_order']
125
+ RingHomomorphism._update_slots(self, slots)
126
+
127
+ def _repr_(self):
128
+ """
129
+ Return a string representation of this endomorphism.
130
+
131
+ EXAMPLES::
132
+
133
+ sage: K.<a> = Qq(5^3)
134
+ sage: Frob = K.frobenius_endomorphism(); Frob
135
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^5 on the residue field
136
+
137
+ sage: Frob._repr_()
138
+ 'Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^5 on the residue field'
139
+ """
140
+ name = self.domain().variable_name()
141
+ if self._power == 0:
142
+ s = "Identity endomorphism of %s" % self.domain()
143
+ elif self._power == 1:
144
+ s = "Frobenius endomorphism on %s lifting %s |--> %s^%s on the residue field" % (self.domain(), name, name, self.domain().residue_characteristic())
145
+ else:
146
+ s = "Frobenius endomorphism on %s lifting %s |--> %s^(%s^%s) on the residue field" % (self.domain(), name, name, self.domain().residue_characteristic(), self._power)
147
+ return s
148
+
149
+ def _repr_short(self):
150
+ """
151
+ Return a short string representation of this endomorphism.
152
+
153
+ EXAMPLES::
154
+
155
+ sage: K.<a> = Qq(5^3)
156
+ sage: Frob = K.frobenius_endomorphism(); Frob
157
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^5 on the residue field
158
+
159
+ sage: Frob._repr_short()
160
+ 'Frob'
161
+ """
162
+ if self._power == 0:
163
+ s = "Identity"
164
+ elif self._power == 1:
165
+ s = "Frob"
166
+ else:
167
+ s = "Frob^%s" % self._power
168
+ return s
169
+
170
+ cpdef Element _call_ (self, x):
171
+ """
172
+ TESTS::
173
+
174
+ sage: K.<a> = Qq(5^3)
175
+ sage: Frob = K.frobenius_endomorphism()
176
+ sage: Frob(a) == a.frobenius()
177
+ True
178
+ """
179
+ res = x
180
+ for i in range(self._power):
181
+ res = res.frobenius()
182
+ return res
183
+
184
+ def order(self):
185
+ """
186
+ Return the order of this endomorphism.
187
+
188
+ EXAMPLES::
189
+
190
+ sage: K.<a> = Qq(5^12)
191
+ sage: Frob = K.frobenius_endomorphism()
192
+ sage: Frob.order()
193
+ 12
194
+ sage: (Frob^2).order()
195
+ 6
196
+ sage: (Frob^9).order()
197
+ 4
198
+ """
199
+ if self._order == 0:
200
+ return Infinity
201
+ else:
202
+ return Integer(self._order)
203
+
204
+ def power(self):
205
+ """
206
+ Return the smallest integer `n` such that this endomorphism
207
+ is the `n`-th power of the absolute (arithmetic) Frobenius.
208
+
209
+ EXAMPLES::
210
+
211
+ sage: K.<a> = Qq(5^12)
212
+ sage: Frob = K.frobenius_endomorphism()
213
+ sage: Frob.power()
214
+ 1
215
+ sage: (Frob^9).power()
216
+ 9
217
+ sage: (Frob^13).power()
218
+ 1
219
+ """
220
+ return self._power
221
+
222
+ def __pow__(self, n, modulus):
223
+ """
224
+ Return the `n`-th iterate of this endomorphism.
225
+
226
+ EXAMPLES::
227
+
228
+ sage: K.<a> = Qq(5^12)
229
+ sage: Frob = K.frobenius_endomorphism()
230
+ sage: Frob^2
231
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^(5^2) on the residue field
232
+
233
+ The result is simplified if possible::
234
+
235
+ sage: Frob^15
236
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^(5^3) on the residue field
237
+ sage: Frob^36
238
+ Identity endomorphism of 5-adic Unramified Extension ...
239
+ """
240
+ return self.__class__(self.domain(), self.power()*n)
241
+
242
+ def _composition(self, right):
243
+ """
244
+ Return ``self`` o ``right``.
245
+
246
+ EXAMPLES::
247
+
248
+ sage: K.<a> = Qq(5^12)
249
+ sage: f = K.frobenius_endomorphism(); f
250
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^5 on the residue field
251
+ sage: g = K.frobenius_endomorphism(2); g
252
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^(5^2) on the residue field
253
+ sage: f * g
254
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^(5^3) on the residue field
255
+
256
+ The result is simplified if possible::
257
+
258
+ sage: f = K.frobenius_endomorphism(9)
259
+ sage: g = K.frobenius_endomorphism(10)
260
+ sage: f * g
261
+ Frobenius endomorphism on 5-adic Unramified Extension ... lifting a |--> a^(5^7) on the residue field
262
+ """
263
+ if isinstance(right,FrobeniusEndomorphism_padics):
264
+ return self.__class__(self.domain(), self._power+right.power())
265
+ else:
266
+ return RingHomomorphism._composition(self,right)
267
+
268
+ def is_injective(self):
269
+ """
270
+ Return ``True`` since any power of the Frobenius endomorphism
271
+ over an unramified `p`-adic field is always injective.
272
+
273
+ EXAMPLES::
274
+
275
+ sage: K.<a> = Qq(5^3)
276
+ sage: Frob = K.frobenius_endomorphism()
277
+ sage: Frob.is_injective()
278
+ True
279
+ """
280
+ return True
281
+
282
+ def is_surjective(self):
283
+ """
284
+ Return ``True`` since any power of the Frobenius endomorphism
285
+ over an unramified `p`-adic field is always surjective.
286
+
287
+ EXAMPLES::
288
+
289
+ sage: K.<a> = Qq(5^3)
290
+ sage: Frob = K.frobenius_endomorphism()
291
+ sage: Frob.is_surjective()
292
+ True
293
+ """
294
+ return True
295
+
296
+ def is_identity(self):
297
+ """
298
+ Return ``True`` if this morphism is the identity morphism.
299
+
300
+ EXAMPLES::
301
+
302
+ sage: K.<a> = Qq(5^3)
303
+ sage: Frob = K.frobenius_endomorphism()
304
+ sage: Frob.is_identity()
305
+ False
306
+ sage: (Frob^3).is_identity()
307
+ True
308
+ """
309
+ return self.power() == 0
310
+
311
+ def __hash__(self):
312
+ r"""
313
+ Return a hash of this morphism.
314
+
315
+ It is the hash of ``(domain, codomain, ('Frob', power)``
316
+ where ``power`` is the smallest integer `n` such that
317
+ this morphism acts by `x \mapsto x^(p^n)` on the residue field.
318
+
319
+ EXAMPLES::
320
+
321
+ sage: K.<a> = Qq(5^3)
322
+ sage: Frob = K.frobenius_endomorphism()
323
+ sage: hash(Frob) # indirect doctest, random
324
+ 2818440606874670810
325
+ """
326
+ domain = self.domain()
327
+ codomain = self.codomain()
328
+ return hash((domain, codomain, ('Frob', self._power)))
329
+
330
+ cpdef _richcmp_(left, right, int op):
331
+ """
332
+ Compare ``left`` and ``right``.
333
+
334
+ EXAMPLES::
335
+
336
+ sage: K.<a> = Qq(5^3)
337
+ sage: F = K.frobenius_endomorphism()
338
+ sage: G = K.frobenius_endomorphism(4)
339
+
340
+ sage: F == G
341
+ True
342
+ """
343
+ if left is right:
344
+ return rich_to_bool(op, 0)
345
+ l_domain = left.domain()
346
+ r_domain = right.domain()
347
+ if l_domain != r_domain:
348
+ return richcmp_not_equal(l_domain, r_domain, op)
349
+
350
+ l_codomain = left.codomain()
351
+ r_codomain = right.codomain()
352
+ if l_codomain != r_codomain:
353
+ return richcmp_not_equal(l_codomain, r_codomain, op)
354
+
355
+ if isinstance(right, FrobeniusEndomorphism_padics):
356
+ return richcmp(left._power, (<FrobeniusEndomorphism_padics>right)._power, op)
357
+
358
+ try:
359
+ for x in l_domain.gens():
360
+ lx = left(x)
361
+ rx = right(x)
362
+ if lx != rx:
363
+ return richcmp_not_equal(lx, rx, op)
364
+ return rich_to_bool(op, 0)
365
+ except (AttributeError, NotImplementedError):
366
+ raise NotImplementedError