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,543 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ r"""
3
+ This linkage file implements the relaxed padics API using flint.
4
+
5
+ AUTHOR:
6
+
7
+ - Xavier Caruso (2021-01): initial version
8
+ """
9
+
10
+ # ****************************************************************************
11
+ # Copyright (C) 2021 Xavier Caruso <xavier.caruso@normalesup.org>
12
+ #
13
+ # This program is free software: you can redistribute it and/or modify
14
+ # it under the terms of the GNU General Public License as published by
15
+ # the Free Software Foundation, either version 2 of the License, or
16
+ # (at your option) any later version.
17
+ # http://www.gnu.org/licenses/
18
+ # ****************************************************************************
19
+
20
+ from sage.libs.flint.types cimport flint_rand_t
21
+ from sage.libs.flint.fmpz cimport *
22
+ from sage.libs.flint.fmpz_poly cimport *
23
+ from sage.libs.flint.fmpz_poly_sage cimport *
24
+
25
+ cdef extern from "sage/libs/linkages/padics/relaxed/flint_helper.c":
26
+ cdef void flint_randseed(flint_rand_t state, ulong seed1, ulong seed2)
27
+ cdef fmpz* get_coeff(fmpz_poly_t poly, slong i)
28
+ cdef void get_slice(fmpz_poly_t slice, fmpz_poly_t poly, slong start, slong length)
29
+ cdef void iadd_coeff(fmpz_poly_t poly, fmpz_t summand, slong i)
30
+ cdef void isub_coeff(fmpz_poly_t poly, fmpz_t summand, slong i)
31
+ cdef void iadd_shifted(fmpz_poly_t poly, fmpz_poly_t summand, slong shift)
32
+ cdef void reduce_coeff(fmpz_poly_t poly, slong i, fmpz_t modulus)
33
+ cdef void reducesmall_coeff(fmpz_poly_t poly, slong i, fmpz_t modulus)
34
+ cdef void reduceneg_coeff(fmpz_poly_t poly, slong i, fmpz_t modulus)
35
+
36
+ from sage.rings.padics.pow_computer_flint cimport PowComputer_flint
37
+
38
+ from sage.ext.stdsage cimport PY_NEW
39
+
40
+ from sage.rings.finite_rings.finite_field_constructor import GF
41
+
42
+
43
+ # Operations on digits (intended to be small elements in the exact subring)
44
+ ###########################################################################
45
+
46
+ cdef fmpz_t digit_zero
47
+ digit_init(digit_zero)
48
+
49
+ cdef inline void digit_init(fmpz_t a) noexcept:
50
+ r"""
51
+ Initialize a digit and set to it the value `0`.
52
+
53
+ INPUT:
54
+
55
+ - ``a`` -- the ``cdigit`` to initialize
56
+ """
57
+ fmpz_init(a)
58
+
59
+ cdef inline void digit_clear(fmpz_t a) noexcept:
60
+ r"""
61
+ Deallocate memory assigned to a digit.
62
+
63
+ INPUT:
64
+
65
+ - ``a`` -- the ``cdigit`` to deallocate
66
+ """
67
+ fmpz_clear(a)
68
+
69
+ # get and set
70
+
71
+ cdef inline Integer digit_get_sage(fmpz_t a):
72
+ r"""
73
+ Convert a digit to a Sage element.
74
+
75
+ INPUT:
76
+
77
+ - ``a`` -- a ``cdigit``
78
+
79
+ OUTPUT:
80
+
81
+ A Sage element representing the same digit.
82
+ """
83
+ cdef Integer elt = PY_NEW(Integer)
84
+ fmpz_get_mpz(elt.value, a)
85
+ return elt
86
+
87
+ cdef inline void digit_set(fmpz_t a, fmpz_t b) noexcept:
88
+ r"""
89
+ Set up a digit.
90
+
91
+ INPUT:
92
+
93
+ - ``a`` -- the ``cdigit`` to set up
94
+ - ``b`` -- the ``cdigit`` containing the value to assign
95
+ """
96
+ fmpz_set(a, b)
97
+
98
+ cdef inline void digit_set_ui(fmpz_t a, slong b) noexcept:
99
+ r"""
100
+ Set an integral value of a digit.
101
+
102
+ INPUT:
103
+
104
+ - ``a`` -- the ``cdigit`` to set up
105
+ - ``b`` -- integer; the value of assign
106
+ """
107
+ fmpz_set_ui(a, b)
108
+
109
+ cdef inline void digit_set_sage(fmpz_t a, Integer elt) noexcept:
110
+ r"""
111
+ Set the value of a digit.
112
+
113
+ INPUT:
114
+
115
+ - ``a`` -- the ``cdigit`` to be assigned
116
+ - ``b`` -- a Sage element containing the value to assign
117
+ """
118
+ fmpz_set_mpz(a, elt.value)
119
+
120
+ # comparisons
121
+
122
+ cdef inline bint digit_equal(fmpz_t a, fmpz_t b) noexcept:
123
+ r"""
124
+ Comparison of two digits.
125
+
126
+ INPUT:
127
+
128
+ - ``a`` -- a ``cdigit``
129
+ - ``b`` -- a ``cdigit``
130
+
131
+ OUTPUT:
132
+
133
+ `1` of `a` is equal to `b`, `0` otherwise
134
+ """
135
+ return fmpz_equal(a, b)
136
+
137
+ cdef inline bint digit_equal_ui(fmpz_t a, slong b) noexcept:
138
+ r"""
139
+ Comparison of a digit and an integer
140
+
141
+ INPUT:
142
+
143
+ - ``a`` -- a ``cdigit``
144
+ - ``b`` -- integer
145
+
146
+ OUTPUT:
147
+
148
+ `1` of `a` is equal to `b`, `0` otherwise
149
+ """
150
+ return fmpz_equal_ui(a, b)
151
+
152
+ cdef inline bint digit_is_zero(fmpz_t a) noexcept:
153
+ r"""
154
+ Comparison to zero
155
+
156
+ INPUT:
157
+
158
+ - ``a`` -- a ``cdigit``
159
+
160
+ OUTPUT:
161
+
162
+ `1` of `a` vanishes, `0` otherwise
163
+ """
164
+ return fmpz_is_zero(a)
165
+
166
+ # random
167
+
168
+ cdef inline void digit_random_init(flint_rand_t generator, slong seed) noexcept:
169
+ r"""
170
+ Initialize the random generator with a new seed
171
+
172
+ INPUT:
173
+
174
+ - ``generator`` -- the generator to initialize
175
+ - ``seed`` -- the seed
176
+ """
177
+ flint_randseed(generator, seed, seed*seed + 1)
178
+
179
+ cdef inline void digit_random(fmpz_t res, PowComputer_flint prime_pow, flint_rand_t generator) noexcept:
180
+ r"""
181
+ Set a digit to a random value in the distinguished set of representatives.
182
+
183
+ INPUT:
184
+
185
+ - ``res`` -- the ``cdigit`` to be assigned
186
+ - ``prime_pow`` -- the PowComputer for the ring
187
+ """
188
+ fmpz_randm(res, generator, prime_pow.fprime)
189
+
190
+ # operations
191
+
192
+ cdef inline void digit_add(fmpz_t res, fmpz_t a, fmpz_t b) noexcept:
193
+ r"""
194
+ Add two digits.
195
+
196
+ INPUT:
197
+
198
+ - ``res`` -- a ``cdigit`` to store the result
199
+ - ``a`` -- a ``cdigit``, the first summand
200
+ - ``b`` -- a ``cdigit``, the second summand
201
+ """
202
+ fmpz_add(res, a, b)
203
+
204
+ cdef inline void digit_sub(fmpz_t res, fmpz_t a, fmpz_t b) noexcept:
205
+ r"""
206
+ Subtract two digits.
207
+
208
+ INPUT:
209
+
210
+ - ``res`` -- a ``cdigit`` to store the result
211
+ - ``a`` -- a ``cdigit``, the minuend
212
+ - ``b`` -- a ``cdigit``, the subtrahend
213
+ """
214
+ fmpz_sub(res, a, b)
215
+
216
+ cdef inline void digit_mul(fmpz_t res, fmpz_t a, fmpz_t b) noexcept:
217
+ r"""
218
+ Multiply two digits.
219
+
220
+ INPUT:
221
+
222
+ - ``res`` -- a ``cdigit`` to store the result
223
+ - ``a`` -- a ``cdigit``, the first factor
224
+ - ``b`` -- a ``cdigit``, the second factor
225
+ """
226
+ fmpz_mul(res, a, b)
227
+
228
+ cdef inline void digit_mod(fmpz_t res, fmpz_t a, PowComputer_flint prime_pow) noexcept:
229
+ r"""
230
+ Reduce a digit modulo the uniformizer.
231
+
232
+ INPUT:
233
+
234
+ - ``res`` -- a ``cdigit`` to store the result
235
+ - ``a`` -- a ``cdigit``, the digit to reduce
236
+ - ``prime_pow`` -- the PowComputer for the ring
237
+ """
238
+ fmpz_mod(res, a, prime_pow.fprime)
239
+
240
+ cdef inline void digit_quorem(fmpz_t quo, fmpz_t rem, fmpz_t a, PowComputer_flint prime_pow) noexcept:
241
+ r"""
242
+ Reduce a digit modulo the uniformizer and keep the carry.
243
+
244
+ INPUT:
245
+
246
+ - ``quo`` -- a ``cdigit`` to store the carry
247
+ - ``rem`` -- a ``cdigit`` to store the reduction
248
+ - ``a`` -- a ``cdigit``, the digit to reduce
249
+ - ``prime_pow`` -- the PowComputer for the ring
250
+ """
251
+ fmpz_tdiv_qr(quo, rem, a, prime_pow.fprime)
252
+
253
+ cdef inline void digit_smallest(cdigit res, cdigit carry, cdigit a, PowComputer_flint prime_pow) noexcept:
254
+ r"""
255
+ Compute the smallest representative of a digit.
256
+
257
+ INPUT:
258
+
259
+ - ``res`` -- a ``cdigit`` to store the smallest representative
260
+ - ``carry`` -- a ``cdigit`` to store the carry
261
+ - ``a`` -- a ``cdigit``, the digit to reduce
262
+ - ``prime_pow`` -- the PowComputer for the ring
263
+
264
+ .. NOTE::
265
+
266
+ This function assumes that ``a`` is always reduced in the
267
+ usual sense, that is belongs to the range `[0, p-1]`.
268
+ """
269
+ cdef fmpz_t b
270
+ fmpz_init(b)
271
+ fmpz_mul_ui(b, a, 2)
272
+ if fmpz_cmp(b, prime_pow.fprime) > 0:
273
+ fmpz_sub(res, a, prime_pow.fprime)
274
+ fmpz_set_ui(carry, 1)
275
+ else:
276
+ fmpz_set(res, a)
277
+ fmpz_set_ui(carry, 0)
278
+ fmpz_clear(b)
279
+
280
+ cdef inline void digit_inv(fmpz_t res, fmpz_t a, PowComputer_flint prime_pow) noexcept:
281
+ r"""
282
+ Compute the multiplicative inverse of a digit modulo the uniformizer.
283
+
284
+ INPUT:
285
+
286
+ - ``res`` -- a ``cdigit`` to store the result
287
+ - ``a`` -- a ``cdigit``, the digit to invert
288
+ - ``prime_pow`` -- the PowComputer for the ring
289
+ """
290
+ cdef fmpz_t gcd
291
+ fmpz_init(gcd)
292
+ fmpz_gcdinv(gcd, res, a, prime_pow.fprime)
293
+ fmpz_clear(gcd)
294
+
295
+ cdef bint digit_sqrt(fmpz_t ans, fmpz_t x, PowComputer_flint prime_pow) noexcept:
296
+ r"""
297
+ Compute the square root of a digit modulo the uniformizer.
298
+
299
+ INPUT:
300
+
301
+ - ``res`` -- a ``cdigit`` to store the result
302
+ - ``a`` -- a ``cdigit``, the digit to square root
303
+ - ``prime_pow`` -- the PowComputer for the ring
304
+ """
305
+ return not fmpz_sqrtmod(ans, x, prime_pow.fprime)
306
+
307
+
308
+ # Operations on elements (represented as series of digits)
309
+ ##########################################################
310
+
311
+ cdef inline void element_init(fmpz_poly_t x) noexcept:
312
+ r"""
313
+ Initialize an element.
314
+
315
+ INPUT:
316
+
317
+ - ``x`` -- the ``celement`` to initialize
318
+ """
319
+ fmpz_poly_init(x)
320
+
321
+ cdef inline void element_clear(fmpz_poly_t x) noexcept:
322
+ r"""
323
+ Deallocate memory assigned to an element.
324
+
325
+ INPUT:
326
+
327
+ - ``x`` -- the ``celement`` to deallocate
328
+ """
329
+ fmpz_poly_clear(x)
330
+
331
+ # get and set
332
+
333
+ cdef inline Integer element_get_sage(fmpz_poly_t x, PowComputer_flint prime_pow):
334
+ r"""
335
+ Convert a digit to a Sage element.
336
+
337
+ INPUT:
338
+
339
+ - ``x`` -- a ``celement``
340
+ - ``prime_pow`` -- the PowComputer for the ring
341
+
342
+ OUTPUT:
343
+
344
+ A Sage integer representing the same element modulo the known precision
345
+ """
346
+ cdef fmpz_t value
347
+ fmpz_init(value)
348
+ fmpz_poly_evaluate_fmpz(value, x, prime_pow.fprime)
349
+ cdef Integer ans = digit_get_sage(value)
350
+ fmpz_clear(value)
351
+ return ans
352
+
353
+ cdef inline void element_set(fmpz_poly_t x, fmpz_poly_t y) noexcept:
354
+ r"""
355
+ Set an element
356
+
357
+ INPUT:
358
+
359
+ - ``x`` -- the ``celement`` to be assigned
360
+ - ``y`` -- the ``celement`` containing the value to assign
361
+ """
362
+ fmpz_poly_set(x, y)
363
+
364
+ # get and set digits
365
+
366
+ cdef inline fmpz* element_get_digit(fmpz_poly_t x, slong i) noexcept:
367
+ r"""
368
+ Return the `i`-th coefficient of `x`.
369
+
370
+ INPUT:
371
+
372
+ - ``x`` -- a ``celement``
373
+ - ``i`` -- integer
374
+ """
375
+ return get_coeff(x, i)
376
+
377
+ cdef inline void element_get_slice(fmpz_poly_t res, fmpz_poly_t x, slong start, slong length) noexcept:
378
+ r"""
379
+ Select a slice of an element.
380
+
381
+ INPUT:
382
+
383
+ - ``res`` -- a ``celement`` to store the slice
384
+ - ``x`` -- a ``celement``, the element from which the slice is extracted
385
+ - ``start`` -- integer; the start position of the slice
386
+ - ``length`` -- integer; the length of the slice
387
+
388
+ .. NOTE::
389
+
390
+ The function only sets up a pointer to the requested slice
391
+ (the slice is not copied). Hence any future modification
392
+ of the slice ``res`` will affect the container ``x``.
393
+ """
394
+ get_slice(res, x, start, length)
395
+
396
+ cdef inline void element_set_digit(fmpz_poly_t x, fmpz_t a, slong i) noexcept:
397
+ r"""
398
+ Set `i`-th coefficient of `x` to the value `a`.
399
+
400
+ INPUT:
401
+
402
+ - ``x`` -- a ``celement``
403
+ - ``a`` -- a ``cdigit``
404
+ - ``i`` -- integer
405
+ """
406
+ fmpz_poly_set_coeff_fmpz(x, i, a)
407
+
408
+ cdef inline void element_set_digit_ui(fmpz_poly_t x, slong a, slong i) noexcept:
409
+ r"""
410
+ Set `i`-th coefficient of `x` to the value `a`.
411
+
412
+ INPUT:
413
+
414
+ - ``x`` -- a ``celement``
415
+ - ``a`` -- integer
416
+ - ``i`` -- integer
417
+ """
418
+ fmpz_poly_set_coeff_ui(x, i, a)
419
+
420
+ cdef inline void element_set_digit_sage(fmpz_poly_t x, Integer a, slong i) noexcept:
421
+ r"""
422
+ Set `i`-th coefficient of `x` to the value `a`.
423
+
424
+ INPUT:
425
+
426
+ - ``x`` -- a ``celement``
427
+ - ``a`` -- a Sage element
428
+ - ``i`` -- integer
429
+ """
430
+ fmpz_poly_set_coeff_mpz(x, i, a.value)
431
+
432
+ # operations
433
+
434
+ cdef inline void element_iadd_digit(fmpz_poly_t x, fmpz_t a, slong i) noexcept:
435
+ r"""
436
+ Inplace addition:
437
+ add `a` to the `i`-th coefficient of `x`.
438
+
439
+ INPUT:
440
+
441
+ - ``x`` -- a ``celement``
442
+ - ``a`` -- a ``cdigit``
443
+ - ``i`` -- integer
444
+ """
445
+ iadd_coeff(x, a, i)
446
+
447
+ cdef inline void element_isub_digit(fmpz_poly_t x, fmpz_t a, slong i) noexcept:
448
+ r"""
449
+ Inplace subtraction:
450
+ subtract `a` to the `i`-th coefficient of `x`.
451
+
452
+ INPUT:
453
+
454
+ - ``x`` -- a ``celement``
455
+ - ``a`` -- a ``cdigit``
456
+ - ``i`` -- integer
457
+ """
458
+ isub_coeff(x, a, i)
459
+
460
+ cdef inline void element_iadd_slice(fmpz_poly_t x, fmpz_poly_t slice, slong start) noexcept:
461
+ r"""
462
+ Inplace addition:
463
+ add a slice to an element
464
+
465
+ INPUT:
466
+
467
+ - ``x`` -- a ``celement``, the element to update
468
+ - ``slice`` -- a ``celement``, the slice to be added
469
+ - ``start`` -- the position from which the slice will be added
470
+ """
471
+ iadd_shifted(x, slice, start)
472
+
473
+ cdef inline void element_scalarmul(fmpz_poly_t res, fmpz_poly_t x, fmpz_t a) noexcept:
474
+ r"""
475
+ Scalar multiplication.
476
+
477
+ INPUT:
478
+
479
+ - ``res`` -- a ``celement``, the element to store the result
480
+ - ``x`` -- a ``celement``, the multiplicand
481
+ - ``a`` -- a ``cdigit``, the multiplier
482
+ """
483
+ fmpz_poly_scalar_mul_fmpz(res, x, a)
484
+
485
+ cdef inline void element_mul(fmpz_poly_t res, fmpz_poly_t x, fmpz_poly_t y) noexcept:
486
+ r"""
487
+ Multiplication.
488
+
489
+ INPUT:
490
+
491
+ - ``res`` -- a ``celement``, the element to store the result
492
+ - ``x`` -- a ``celement``, the first factor
493
+ - ``y`` -- a ``celement``, the second factor
494
+ """
495
+ fmpz_poly_mul(res, x, y)
496
+
497
+ cdef inline void element_reduce_digit(fmpz_poly_t x, slong i, PowComputer_flint prime_pow) noexcept:
498
+ r"""
499
+ Reduce the `i`-th digit of `x` and propagate carry.
500
+
501
+ INPUT:
502
+
503
+ - ``x`` -- a ``celement``, the element to update
504
+ - ``i`` -- integer
505
+ - ``prime_pow`` -- the PowComputer for the ring
506
+ """
507
+ reduce_coeff(x, i, prime_pow.fprime)
508
+
509
+ cdef inline void element_reducesmall_digit(fmpz_poly_t x, slong i, PowComputer_flint prime_pow) noexcept:
510
+ r"""
511
+ Reduce the `i`-th digit of `x` and propagate carry,
512
+ assuming that `x` is between `0` and `2*p - 1`.
513
+
514
+ INPUT:
515
+
516
+ - ``x`` -- a ``celement``, the element to update
517
+ - ``i`` -- integer
518
+ - ``prime_pow`` -- the PowComputer for the ring
519
+ """
520
+ reducesmall_coeff(x, i, prime_pow.fprime)
521
+
522
+ cdef inline void element_reduceneg_digit(fmpz_poly_t x, slong i, PowComputer_flint prime_pow) noexcept:
523
+ r"""
524
+ Reduce the `i`-th digit of `x` and propagate carry,
525
+ assuming that `x` is between `-p` and `p-1`.
526
+
527
+ INPUT:
528
+
529
+ - ``x`` -- a ``celement``, the element to update
530
+ - ``i`` -- integer
531
+ - ``prime_pow`` -- the PowComputer for the ring
532
+ """
533
+ reduceneg_coeff(x, i, prime_pow.fprime)
534
+
535
+ cdef inline void element_shift_right(fmpz_poly_t x) noexcept:
536
+ r"""
537
+ Remove the first digit of ``x``.
538
+
539
+ INPUT:
540
+
541
+ - ``x`` -- a ``celement``
542
+ """
543
+ fmpz_poly_shift_right(x, x, 1)