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,447 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.rings.padics
3
+ r"""
4
+ `p`-adic Floating Point Elements
5
+
6
+ Elements of `p`-adic Rings with Floating Point Precision
7
+
8
+ AUTHORS:
9
+
10
+ - David Roe: initial version (2016-12-6)
11
+ """
12
+
13
+ #*****************************************************************************
14
+ # Copyright (C) 2016 David Roe <roed.math@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
+ include "sage/libs/linkages/padics/mpz.pxi"
24
+ include "FP_template.pxi"
25
+
26
+ from sage.libs.pari import pari
27
+ from sage.libs.pari.convert_gmp cimport new_gen_from_padic
28
+ from sage.rings.finite_rings.integer_mod import Mod
29
+
30
+ cdef extern from "transcendantal.c":
31
+ cdef void padicexp(mpz_t ans, const mpz_t a, unsigned long p, unsigned long prec, const mpz_t modulo)
32
+ cdef void padicexp_Newton(mpz_t ans, const mpz_t a, unsigned long p, unsigned long prec, unsigned long precinit, const mpz_t modulo)
33
+
34
+
35
+ cdef class PowComputer_(PowComputer_base):
36
+ """
37
+ A PowComputer for a floating-point `p`-adic ring or field.
38
+ """
39
+ def __init__(self, Integer prime, long cache_limit, long prec_cap, long ram_prec_cap, bint in_field):
40
+ """
41
+ Initialization.
42
+
43
+ EXAMPLES::
44
+
45
+ sage: R = ZpFP(5)
46
+ sage: type(R.prime_pow)
47
+ <class 'sage.rings.padics.padic_floating_point_element.PowComputer_'>
48
+ sage: R.prime_pow._prec_type
49
+ 'floating-point'
50
+ """
51
+ self._prec_type = 'floating-point'
52
+ PowComputer_base.__init__(self, prime, cache_limit, prec_cap, ram_prec_cap, in_field)
53
+
54
+ cdef class pAdicFloatingPointElement(FPElement):
55
+ """
56
+ Construct new element with given parent and value.
57
+
58
+ INPUT:
59
+
60
+ - ``x`` -- value to coerce into a floating point ring or field
61
+
62
+ - ``absprec`` -- maximum number of digits of absolute precision
63
+
64
+ - ``relprec`` -- maximum number of digits of relative precision
65
+
66
+ EXAMPLES::
67
+
68
+ sage: R = Zp(5, 10, 'floating-point')
69
+
70
+ Construct from integers::
71
+
72
+ sage: R(3)
73
+ 3
74
+ sage: R(75)
75
+ 3*5^2
76
+ sage: R(0)
77
+ 0
78
+ sage: R(-1)
79
+ 4 + 4*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + 4*5^6 + 4*5^7 + 4*5^8 + 4*5^9
80
+ sage: R(-5)
81
+ 4*5 + 4*5^2 + 4*5^3 + 4*5^4 + 4*5^5 + 4*5^6 + 4*5^7 + 4*5^8 + 4*5^9 + 4*5^10
82
+ sage: R(-7*25)
83
+ 3*5^2 + 3*5^3 + 4*5^4 + 4*5^5 + 4*5^6 + 4*5^7 + 4*5^8 + 4*5^9 + 4*5^10 + 4*5^11
84
+
85
+ Construct from rationals::
86
+
87
+ sage: R(1/2)
88
+ 3 + 2*5 + 2*5^2 + 2*5^3 + 2*5^4 + 2*5^5 + 2*5^6 + 2*5^7 + 2*5^8 + 2*5^9
89
+ sage: R(-7875/874)
90
+ 3*5^3 + 2*5^4 + 2*5^5 + 5^6 + 3*5^7 + 2*5^8 + 3*5^10 + 3*5^11 + 3*5^12
91
+ sage: R(15/425)
92
+ Traceback (most recent call last):
93
+ ...
94
+ ValueError: p divides the denominator
95
+
96
+ Construct from IntegerMod::
97
+
98
+ sage: R(Integers(125)(3))
99
+ 3
100
+ sage: R(Integers(5)(3))
101
+ 3
102
+ sage: R(Integers(5^30)(3))
103
+ 3
104
+ sage: R(Integers(5^30)(1+5^23))
105
+ 1
106
+ sage: R(Integers(49)(3))
107
+ Traceback (most recent call last):
108
+ ...
109
+ TypeError: p does not divide modulus 49
110
+
111
+ ::
112
+
113
+ sage: R(Integers(48)(3))
114
+ Traceback (most recent call last):
115
+ ...
116
+ TypeError: p does not divide modulus 48
117
+
118
+ Some other conversions::
119
+
120
+ sage: R(R(5))
121
+ 5
122
+
123
+ Construct from Pari objects::
124
+
125
+ sage: R = ZpFP(5)
126
+ sage: x = pari(123123) ; R(x) # needs sage.libs.pari
127
+ 3 + 4*5 + 4*5^2 + 4*5^3 + 5^4 + 4*5^5 + 2*5^6 + 5^7
128
+ sage: R(pari(R(5252)))
129
+ 2 + 2*5^3 + 3*5^4 + 5^5
130
+ sage: R = ZpFP(5,prec=5)
131
+ sage: R(pari(-1))
132
+ 4 + 4*5 + 4*5^2 + 4*5^3 + 4*5^4
133
+ sage: pari(R(-1)) # needs sage.libs.pari
134
+ 4 + 4*5 + 4*5^2 + 4*5^3 + 4*5^4 + O(5^5)
135
+ sage: pari(R(0)) # needs sage.libs.pari
136
+ 0
137
+ sage: R(pari(R(0,5)))
138
+ 0
139
+
140
+ # todo: doctests for converting from other types of p-adic rings
141
+ """
142
+ def lift(self):
143
+ r"""
144
+ Return an integer or rational congruent to ``self`` modulo ``self``'s
145
+ precision. If a rational is returned, its denominator will equal
146
+ ``p^ordp(self)``.
147
+
148
+ This method will raise a :exc:`ValueError` when this element
149
+ is infinity.
150
+
151
+ EXAMPLES::
152
+
153
+ sage: R = Zp(7,4,'floating-point'); a = R(8); a.lift()
154
+ 8
155
+ sage: R = QpFP(7,4); a = R(8); a.lift()
156
+ 8
157
+ sage: R = QpFP(7,4); a = R(8/7); a.lift()
158
+ 8/7
159
+ """
160
+ return self.lift_c()
161
+
162
+ cdef lift_c(self):
163
+ r"""
164
+ Implementation of lift.
165
+
166
+ TESTS::
167
+
168
+ sage: ZpFP(5)(0).lift() # indirect doctest
169
+ 0
170
+ sage: R = QpFP(5); R(0).lift()
171
+ 0
172
+ sage: R(5/9).lift()
173
+ 264909532335070
174
+ sage: R(9/5).lift()
175
+ 9/5
176
+ """
177
+ cdef Integer ans
178
+ cdef Rational ansr
179
+ if self.ordp >= 0:
180
+ ans = PY_NEW(Integer)
181
+ if very_pos_val(self.ordp):
182
+ mpz_set_ui(ans.value, 0)
183
+ else:
184
+ mpz_set(ans.value, self.unit)
185
+ mpz_mul(ans.value, ans.value, self.prime_pow.pow_mpz_t_tmp(self.ordp))
186
+ return ans
187
+ else:
188
+ ansr = Rational.__new__(Rational)
189
+ if very_neg_val(self.ordp):
190
+ raise ValueError("infinity cannot be lifted to an integer or rational")
191
+ mpz_set(mpq_numref(ansr.value), self.unit)
192
+ mpz_set(mpq_denref(ansr.value), self.prime_pow.pow_mpz_t_tmp(-self.ordp))
193
+ return ansr
194
+
195
+ def __pari__(self):
196
+ """
197
+ Convert this element to an equivalent pari element.
198
+
199
+ EXAMPLES::
200
+
201
+ sage: R = ZpFP(17, 10); a = ~R(14); pari(a) # indirect doctest
202
+ 11 + 3*17 + 17^2 + 6*17^3 + 13*17^4 + 15*17^5 + 10*17^6 + 3*17^7 + 17^8 + 6*17^9 + O(17^10)
203
+ sage: pari(R(0)) # needs sage.libs.pari
204
+ 0
205
+ """
206
+ return self._to_gen()
207
+
208
+ cdef pari_gen _to_gen(self):
209
+ """
210
+ Convert this element to an equivalent pari element.
211
+
212
+ EXAMPLES::
213
+
214
+ sage: R = ZpFP(5, 10); a = R(17); pari(a) # indirect doctest
215
+ 2 + 3*5 + O(5^10)
216
+ sage: pari(R(0)) # needs sage.libs.pari
217
+ 0
218
+ """
219
+ if very_pos_val(self.ordp):
220
+ return pari.zero()
221
+ elif very_neg_val(self.ordp):
222
+ raise ValueError("no analogue of p-adic infinity in pari")
223
+ else:
224
+ return new_gen_from_padic(self.ordp, self.prime_pow.prec_cap,
225
+ self.prime_pow.prime.value,
226
+ self.prime_pow.pow_mpz_t_top(),
227
+ self.unit)
228
+
229
+ def _integer_(self, Z=None):
230
+ r"""
231
+ Return an integer congruent to this element modulo
232
+ ``p^self.absolute_precision()``.
233
+
234
+ EXAMPLES::
235
+
236
+ sage: R = ZpFP(5); a = R(-1); a._integer_()
237
+ 95367431640624
238
+ """
239
+ if self.ordp < 0:
240
+ raise ValueError("cannot form an integer out of a p-adic field element with negative valuation")
241
+ return self.lift_c()
242
+
243
+ def residue(self, absprec=1, field=None, check_prec=False):
244
+ r"""
245
+ Reduce this element modulo `p^{\mathrm{absprec}}`.
246
+
247
+ INPUT:
248
+
249
+ - ``absprec`` -- nonnegative integer (default: 1)
250
+
251
+ - ``field`` -- boolean (default: ``None``); whether to return an
252
+ element of `\GF{p}` or `\ZZ / p\ZZ`
253
+
254
+ - ``check_prec`` -- ignored (for compatibility with other types)
255
+
256
+ OUTPUT:
257
+
258
+ This element reduced modulo `p^{\mathrm{absprec}}` as an element of
259
+ `\ZZ/p^{\mathrm{absprec}}\ZZ`.
260
+
261
+ EXAMPLES::
262
+
263
+ sage: R = ZpFP(7,4)
264
+ sage: a = R(8)
265
+ sage: a.residue(1)
266
+ 1
267
+ sage: a.residue(2)
268
+ 8
269
+
270
+ sage: K = QpFP(7,4)
271
+ sage: a = K(8)
272
+ sage: a.residue(1)
273
+ 1
274
+ sage: a.residue(2)
275
+ 8
276
+ sage: b = K(1/7)
277
+ sage: b.residue()
278
+ Traceback (most recent call last):
279
+ ...
280
+ ValueError: element must have nonnegative valuation in order to compute residue
281
+
282
+ TESTS::
283
+
284
+ sage: R = ZpFP(7,4)
285
+ sage: a = R(8)
286
+ sage: a.residue(0)
287
+ 0
288
+ sage: a.residue(-1)
289
+ Traceback (most recent call last):
290
+ ...
291
+ ValueError: cannot reduce modulo a negative power of p
292
+ sage: a.residue(5)
293
+ 8
294
+
295
+ sage: a.residue(field=True).parent()
296
+ Finite Field of size 7
297
+ """
298
+ cdef Integer selfvalue, modulus
299
+ cdef long aprec
300
+ if not isinstance(absprec, Integer):
301
+ absprec = Integer(absprec)
302
+ if mpz_sgn((<Integer>absprec).value) < 0:
303
+ raise ValueError("cannot reduce modulo a negative power of p")
304
+ if self.ordp < 0:
305
+ raise ValueError("element must have nonnegative valuation in order to compute residue")
306
+ if field is None:
307
+ field = (absprec == 1)
308
+ elif field and absprec != 1:
309
+ raise ValueError("field keyword may only be set at precision 1")
310
+ if mpz_fits_slong_p((<Integer>absprec).value) == 0:
311
+ raise ValueError("absolute precision does not fit in a long")
312
+ aprec = mpz_get_si((<Integer>absprec).value)
313
+ modulus = PY_NEW(Integer)
314
+ mpz_set(modulus.value, self.prime_pow.pow_mpz_t_tmp(aprec))
315
+ selfvalue = PY_NEW(Integer)
316
+ if very_pos_val(self.ordp):
317
+ mpz_set_ui(selfvalue.value, 0)
318
+ else:
319
+ # Need to do this better.
320
+ mpz_mul(selfvalue.value, self.prime_pow.pow_mpz_t_tmp(self.ordp), self.unit)
321
+ if field:
322
+ from sage.rings.finite_rings.finite_field_constructor import GF
323
+ return GF(self.parent().prime())(selfvalue)
324
+ else:
325
+ return Mod(selfvalue, modulus)
326
+
327
+ def _exp_binary_splitting(self, aprec):
328
+ r"""
329
+ Compute the exponential power series of this element.
330
+
331
+ This is a helper method for :meth:`exp`.
332
+
333
+ INPUT:
334
+
335
+ - ``aprec`` -- integer; the precision to which to compute the
336
+ exponential
337
+
338
+ .. NOTE::
339
+
340
+ The function does not check that its argument ``self`` is
341
+ the disk of convergence of ``exp``. If this assumption is not
342
+ fulfilled the behaviour of the function is not specified.
343
+
344
+ ALGORITHM:
345
+
346
+ Write
347
+
348
+ .. MATH::
349
+
350
+ \mathrm{self} = \sum_{i=1}^\infty a_i p^{2^i}
351
+
352
+ with `0 \leq a_i < p^{2^i}` and compute
353
+ `\exp(a_i p^{2^i})` using the standard Taylor expansion
354
+
355
+ .. MATH::
356
+
357
+ \exp(x) = 1 + x + x^2/2 + x^3/6 + x^4/24 + \cdots
358
+
359
+ together with a binary splitting method.
360
+
361
+ The binary complexity of this algorithm is quasi-linear.
362
+
363
+ EXAMPLES::
364
+
365
+ sage: R = Zp(7,5)
366
+ sage: x = R(7)
367
+ sage: x.exp(algorithm='binary_splitting') # indirect doctest
368
+ 1 + 7 + 4*7^2 + 2*7^3 + O(7^5)
369
+ """
370
+ cdef unsigned long p
371
+ cdef unsigned long prec = aprec
372
+ cdef pAdicFloatingPointElement ans
373
+ cdef Integer selfint = self.lift_c()
374
+
375
+ if mpz_fits_slong_p(self.prime_pow.prime.value) == 0:
376
+ raise NotImplementedError("the prime %s does not fit in a long" % self.prime_pow.prime)
377
+ p = self.prime_pow.prime
378
+
379
+ ans = self._new_c()
380
+ ans.ordp = 0
381
+ sig_on()
382
+ padicexp(ans.unit, selfint.value, p, prec, self.prime_pow.pow_mpz_t_tmp(prec))
383
+ sig_off()
384
+
385
+ return ans
386
+
387
+ def _exp_newton(self, aprec, log_algorithm=None):
388
+ r"""
389
+ Compute the exponential power series of this element.
390
+
391
+ This is a helper method for :meth:`exp`.
392
+
393
+ INPUT:
394
+
395
+ - ``aprec`` -- integer; the precision to which to compute the
396
+ exponential
397
+
398
+ - ``log_algorithm`` -- (default: ``None``) the algorithm used for
399
+ computing the logarithm. This attribute is passed to the :meth:`log`
400
+ method; see :meth:`log` for more details about the possible
401
+ algorithms
402
+
403
+ .. NOTE::
404
+
405
+ The function does not check that its argument ``self`` is
406
+ the disk of convergence of ``exp``. If this assumption is not
407
+ fulfilled the behaviour of the function is not specified.
408
+
409
+ ALGORITHM:
410
+
411
+ Solve the equation `\log(x) = \mathrm{self}` using the Newton scheme::
412
+
413
+ .. MATH::
414
+
415
+ x_{i+1} = x_i \cdot (1 + \mathrm{self} - \log(x_i)).
416
+
417
+ The binary complexity of this algorithm is roughly the same
418
+ than that of the computation of the logarithm.
419
+
420
+ EXAMPLES::
421
+
422
+ sage: # needs sage.libs.ntl
423
+ sage: R.<w> = Zq(7^2,5)
424
+ sage: x = R(7*w)
425
+ sage: x.exp(algorithm='newton') # indirect doctest
426
+ 1 + w*7 + (4*w + 2)*7^2 + (w + 6)*7^3 + 5*7^4 + O(7^5)
427
+ """
428
+ cdef unsigned long p
429
+ cdef unsigned long prec = aprec
430
+ cdef pAdicFloatingPointElement ans
431
+ cdef Integer selfint = self.lift_c()
432
+
433
+ if mpz_fits_slong_p(self.prime_pow.prime.value) == 0:
434
+ raise NotImplementedError("the prime %s does not fit in a long" % self.prime_pow.prime)
435
+ p = self.prime_pow.prime
436
+
437
+ ans = self._new_c()
438
+ ans.ordp = 0
439
+ mpz_set_ui(ans.unit, 1)
440
+ sig_on()
441
+ if p == 2:
442
+ padicexp_Newton(ans.unit, selfint.value, p, prec, 2, self.prime_pow.pow_mpz_t_tmp(prec))
443
+ else:
444
+ padicexp_Newton(ans.unit, selfint.value, p, prec, 1, self.prime_pow.pow_mpz_t_tmp(prec))
445
+ sig_off()
446
+
447
+ return ans
@@ -0,0 +1,48 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from cpython cimport array
3
+
4
+ cimport sage.structure.element
5
+ from sage.libs.gmp.types cimport mpz_t, mpq_t
6
+ from sage.structure.element cimport Element, RingElement
7
+ from sage.rings.padics.local_generic_element cimport LocalGenericElement
8
+ from sage.rings.padics.pow_computer cimport PowComputer_class
9
+ from sage.rings.integer cimport Integer
10
+ from sage.rings.rational cimport Rational
11
+
12
+ cpdef gauss_table(long long p, int f, int prec, bint use_longs)
13
+
14
+ cdef class pAdicGenericElement(LocalGenericElement):
15
+ cdef long valuation_c(self) noexcept
16
+ cpdef val_unit(self)
17
+
18
+ cdef int _set_from_Integer(self, Integer x, absprec, relprec) except -1
19
+ cdef int _set_from_mpz(self, mpz_t x) except -1
20
+ cdef int _set_from_mpz_rel(self, mpz_t x, long relprec) except -1
21
+ cdef int _set_from_mpz_abs(self, mpz_t value, long absprec) except -1
22
+ cdef int _set_from_mpz_both(self, mpz_t x, long absprec, long relprec) except -1
23
+
24
+ cdef int _set_from_Rational(self, Rational x, absprec, relprec) except -1
25
+ cdef int _set_from_mpq(self, mpq_t x) except -1
26
+ cdef int _set_from_mpq_rel(self, mpq_t x, long relprec) except -1
27
+ cdef int _set_from_mpq_abs(self, mpq_t value, long absprec) except -1
28
+ cdef int _set_from_mpq_both(self, mpq_t x, long absprec, long relprec) except -1
29
+
30
+ cdef int _pshift_self(self, long shift) except -1
31
+
32
+ cdef int _cmp_units(left, pAdicGenericElement right) except -2
33
+
34
+ cdef int _set_inexact_zero(self, long absprec) except -1
35
+ cdef int _set_exact_zero(self) except -1
36
+
37
+ cpdef bint _is_exact_zero(self) except -1
38
+ cpdef bint _is_inexact_zero(self) except -1
39
+ cpdef bint _is_zero_rep(self) except -1
40
+
41
+ cdef bint _set_prec_abs(self, long absprec) except -1
42
+ cdef bint _set_prec_rel(self, long relprec) except -1
43
+ cdef bint _set_prec_both(self, long absprec, long relprec) except -1
44
+
45
+ cpdef abs(self, prec=*)
46
+ cpdef _mod_(self, right)
47
+ cpdef _floordiv_(self, right)
48
+ cpdef bint _is_base_elt(self, p) except -1