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,15 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from sage.libs.gmp.types cimport mpz_t
3
+ from cypari2.gen cimport Gen as pari_gen
4
+ from sage.rings.padics.padic_floating_point_element cimport FPElement
5
+
6
+ ctypedef mpz_t celement
7
+ include "FM_template_header.pxi"
8
+
9
+ cdef class pAdicFixedModElement(FMElement):
10
+ cdef lift_c(self)
11
+ cdef pari_gen _to_gen(self)
12
+
13
+ from sage.rings.padics.pow_computer cimport PowComputer_base
14
+ cdef class PowComputer_(PowComputer_base):
15
+ pass
@@ -0,0 +1,584 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.rings.padics
3
+ """
4
+ `p`-adic Fixed-Mod Element
5
+
6
+ Elements of `p`-adic Rings with Fixed Modulus
7
+
8
+ AUTHORS:
9
+
10
+ - David Roe
11
+ - Genya Zaytman: documentation
12
+ - David Harvey: doctests
13
+ """
14
+
15
+ #*****************************************************************************
16
+ # Copyright (C) 2007-2013 David Roe <roed.math@gmail.com>
17
+ # William Stein <wstein@gmail.com>
18
+ #
19
+ # Distributed under the terms of the GNU General Public License (GPL)
20
+ # as published by the Free Software Foundation; either version 2 of
21
+ # the License, or (at your option) any later version.
22
+ #
23
+ # http://www.gnu.org/licenses/
24
+ #*****************************************************************************
25
+
26
+ include "sage/libs/linkages/padics/mpz.pxi"
27
+ include "FM_template.pxi"
28
+
29
+ from sage.libs.pari.convert_gmp cimport new_gen_from_padic
30
+ from sage.rings.finite_rings.integer_mod import Mod
31
+
32
+ cdef extern from "transcendantal.c":
33
+ cdef void padiclog(mpz_t ans, const mpz_t a, unsigned long p, unsigned long prec, const mpz_t modulo)
34
+ cdef void padicexp(mpz_t ans, const mpz_t a, unsigned long p, unsigned long prec, const mpz_t modulo)
35
+ cdef void padicexp_Newton(mpz_t ans, const mpz_t a, unsigned long p, unsigned long prec, unsigned long precinit, const mpz_t modulo)
36
+
37
+ cdef class PowComputer_(PowComputer_base):
38
+ """
39
+ A PowComputer for a fixed-modulus `p`-adic ring.
40
+ """
41
+ def __init__(self, Integer prime, long cache_limit, long prec_cap, long ram_prec_cap, bint in_field):
42
+ """
43
+ Initialization.
44
+
45
+ EXAMPLES::
46
+
47
+ sage: R = ZpFM(5)
48
+ sage: type(R.prime_pow)
49
+ <class 'sage.rings.padics.padic_fixed_mod_element.PowComputer_'>
50
+ sage: R.prime_pow._prec_type
51
+ 'fixed-mod'
52
+ """
53
+ self._prec_type = 'fixed-mod'
54
+ PowComputer_base.__init__(self, prime, cache_limit, prec_cap, ram_prec_cap, in_field)
55
+
56
+ cdef class pAdicFixedModElement(FMElement):
57
+ r"""
58
+ INPUT:
59
+
60
+ - ``parent`` -- a ``pAdicRingFixedMod`` object
61
+
62
+ - ``x`` -- input data to be converted into the parent
63
+
64
+ - ``absprec`` -- ignored; for compatibility with other `p`-adic rings
65
+
66
+ - ``relprec`` -- ignored; for compatibility with other `p`-adic rings
67
+
68
+ .. NOTE::
69
+
70
+ The following types are currently supported for x:
71
+
72
+ - Integers
73
+ - Rationals -- denominator must be relatively prime to `p`
74
+ - FixedMod `p`-adics
75
+ - Elements of ``IntegerModRing(p^k)`` for ``k`` less than or equal
76
+ to the modulus
77
+
78
+ The following types should be supported eventually:
79
+
80
+ - Finite precision `p`-adics
81
+ - Lazy `p`-adics
82
+ - Elements of local extensions of THIS `p`-adic ring that actually
83
+ lie in `\ZZ_p`
84
+
85
+ EXAMPLES::
86
+
87
+ sage: R = Zp(5, 20, 'fixed-mod', 'terse')
88
+
89
+ Construct from integers::
90
+
91
+ sage: R(3)
92
+ 3
93
+ sage: R(75)
94
+ 75
95
+ sage: R(0)
96
+ 0
97
+
98
+ sage: R(-1)
99
+ 95367431640624
100
+ sage: R(-5)
101
+ 95367431640620
102
+
103
+ Construct from rationals::
104
+
105
+ sage: R(1/2)
106
+ 47683715820313
107
+ sage: R(-7875/874)
108
+ 9493096742250
109
+ sage: R(15/425)
110
+ Traceback (most recent call last):
111
+ ...
112
+ ValueError: p divides denominator
113
+
114
+ Construct from IntegerMod::
115
+
116
+ sage: R(Integers(125)(3))
117
+ 3
118
+ sage: R(Integers(5)(3))
119
+ 3
120
+ sage: R(Integers(5^30)(3))
121
+ 3
122
+ sage: R(Integers(5^30)(1+5^23))
123
+ 1
124
+ sage: R(Integers(49)(3))
125
+ Traceback (most recent call last):
126
+ ...
127
+ TypeError: p does not divide modulus 49
128
+
129
+ sage: R(Integers(48)(3))
130
+ Traceback (most recent call last):
131
+ ...
132
+ TypeError: p does not divide modulus 48
133
+
134
+ Some other conversions::
135
+
136
+ sage: R(R(5))
137
+ 5
138
+
139
+ .. TODO:: doctests for converting from other types of `p`-adic rings
140
+ """
141
+ def lift(self):
142
+ r"""
143
+ Return an integer congruent to ``self`` modulo the precision.
144
+
145
+ .. WARNING::
146
+
147
+ Since fixed modulus elements don't track their precision,
148
+ the result may not be correct modulo
149
+ `i^{\mathrm{prec_cap}}` if the element was defined by
150
+ constructions that lost precision.
151
+
152
+ EXAMPLES::
153
+
154
+ sage: R = Zp(7,4,'fixed-mod'); a = R(8); a.lift()
155
+ 8
156
+ sage: type(a.lift())
157
+ <class 'sage.rings.integer.Integer'>
158
+ """
159
+ return self.lift_c()
160
+
161
+ cdef lift_c(self):
162
+ r"""
163
+ Return an integer congruent to this element modulo the precision.
164
+
165
+ .. WARNING::
166
+
167
+ Since fixed modulus elements don't track their precision,
168
+ the result may not be correct modulo
169
+ `i^{\mbox{prec_cap}}` if the element was defined by
170
+ constructions that lost precision.
171
+
172
+ EXAMPLES::
173
+
174
+ sage: R = ZpFM(7,4); a = R(8); a.lift() # indirect doctest
175
+ 8
176
+ """
177
+ cdef Integer ans = PY_NEW(Integer)
178
+ mpz_set(ans.value, self.value)
179
+ return ans
180
+
181
+ def __pari__(self):
182
+ """
183
+ Conversion to PARI.
184
+
185
+ EXAMPLES::
186
+
187
+ sage: R = ZpCA(5)
188
+ sage: pari(R(1777)) # indirect doctest # needs sage.libs.pari
189
+ 2 + 5^2 + 4*5^3 + 2*5^4 + O(5^20)
190
+ """
191
+ return self._to_gen()
192
+
193
+ cdef pari_gen _to_gen(self):
194
+ """
195
+ Convert ``self`` to an equivalent pari element.
196
+
197
+ EXAMPLES::
198
+
199
+ sage: R = ZpFM(5, 10); a = R(17); pari(a) # indirect doctest
200
+ 2 + 3*5 + O(5^10)
201
+ sage: pari(R(0)) # needs sage.libs.pari
202
+ O(5^10)
203
+ sage: pari(R(0,5)) # needs sage.libs.pari
204
+ O(5^10)
205
+ sage: pari(R(0)).debug() # needs sage.libs.pari
206
+ [&=...] PADIC(lg=5):... (precp=0,valp=10):... ... ... ...
207
+ p : [&=...] INT(lg=3):... (+,lgefint=3):... ...
208
+ p^l : [&=...] INT(lg=3):... (+,lgefint=3):... ...
209
+ I : gen_0
210
+
211
+ This checks that :issue:`15653` is fixed::
212
+
213
+ sage: x = polygen(ZpFM(3,10))
214
+ sage: (x^3 + x + 1).__pari__().poldisc()
215
+ 2 + 3 + 2*3^2 + 3^3 + 2*3^4 + 2*3^5 + 2*3^6 + 2*3^7 + 2*3^8 + 2*3^9 + O(3^10)
216
+ """
217
+ cdef long val
218
+ # Let val be the valuation of self, holder (defined in the
219
+ # linkage file) be the unit part.
220
+ if mpz_sgn(self.value) == 0:
221
+ # Special case for zero: maximal valuation and 0 unit part
222
+ val = self.prime_pow.prec_cap
223
+ mpz_set_ui(holder.value, 0)
224
+ else:
225
+ val = mpz_remove(holder.value, self.value, self.prime_pow.prime.value)
226
+ return new_gen_from_padic(val, self.prime_pow.prec_cap - val,
227
+ self.prime_pow.prime.value,
228
+ self.prime_pow.pow_mpz_t_tmp(self.prime_pow.prec_cap - val),
229
+ holder.value)
230
+
231
+ def _integer_(self, Z=None):
232
+ r"""
233
+ Return an integer congruent to ``self`` modulo the precision.
234
+
235
+ .. WARNING::
236
+
237
+ Since fixed modulus elements don't track their precision,
238
+ the result may not be correct modulo
239
+ `p^{\mathrm{prec_cap}}` if the element was defined by
240
+ constructions that lost precision.
241
+
242
+ EXAMPLES::
243
+
244
+ sage: R = ZpFM(5); R(-1)._integer_()
245
+ 95367431640624
246
+ """
247
+ return self.lift_c()
248
+
249
+ def residue(self, absprec=1, field=None, check_prec=False):
250
+ r"""
251
+ Reduce ``self`` modulo `p^\mathrm{absprec}`.
252
+
253
+ INPUT:
254
+
255
+ - ``absprec`` -- integer (default: 1)
256
+
257
+ - ``field`` -- boolean (default: ``None``); whether to return an
258
+ element of GF(p) or Zmod(p)
259
+
260
+ - ``check_prec`` -- boolean (default: ``False``); no effect (for
261
+ compatibility with other types)
262
+
263
+ OUTPUT:
264
+
265
+ This element reduced modulo `p^\mathrm{absprec}` as an element of
266
+ `\ZZ/p^\mathrm{absprec}\ZZ`.
267
+
268
+ EXAMPLES::
269
+
270
+ sage: R = Zp(7,4,'fixed-mod')
271
+ sage: a = R(8)
272
+ sage: a.residue(1)
273
+ 1
274
+
275
+ This is different from applying ``% p^n`` which returns an element in
276
+ the same ring::
277
+
278
+ sage: b = a.residue(2); b
279
+ 8
280
+ sage: b.parent()
281
+ Ring of integers modulo 49
282
+ sage: c = a % 7^2; c
283
+ 1 + 7
284
+ sage: c.parent()
285
+ 7-adic Ring of fixed modulus 7^4
286
+
287
+ TESTS::
288
+
289
+ sage: R = Zp(7,4,'fixed-mod')
290
+ sage: a = R(8)
291
+ sage: a.residue(0)
292
+ 0
293
+ sage: a.residue(-1)
294
+ Traceback (most recent call last):
295
+ ...
296
+ ValueError: cannot reduce modulo a negative power of p
297
+ sage: a.residue(5)
298
+ 8
299
+
300
+ sage: a.residue(field=True).parent()
301
+ Finite Field of size 7
302
+
303
+ .. SEEALSO::
304
+
305
+ :meth:`_mod_`
306
+ """
307
+ cdef Integer selfvalue, modulus
308
+ cdef long aprec
309
+ if not isinstance(absprec, Integer):
310
+ absprec = Integer(absprec)
311
+ if absprec < 0:
312
+ raise ValueError("cannot reduce modulo a negative power of p")
313
+ if field is None:
314
+ field = (absprec == 1)
315
+ elif field and absprec != 1:
316
+ raise ValueError("field keyword may only be set at precision 1")
317
+ if mpz_fits_slong_p((<Integer>absprec).value) == 0:
318
+ raise ValueError("absolute precision does not fit in a long")
319
+ aprec = mpz_get_si((<Integer>absprec).value)
320
+ modulus = PY_NEW(Integer)
321
+ mpz_set(modulus.value, self.prime_pow.pow_mpz_t_tmp(aprec))
322
+ selfvalue = PY_NEW(Integer)
323
+ mpz_set(selfvalue.value, self.value)
324
+ if field:
325
+ from sage.rings.finite_rings.finite_field_constructor import GF
326
+ return GF(self.parent().prime())(selfvalue)
327
+ else:
328
+ return Mod(selfvalue, modulus)
329
+
330
+ def multiplicative_order(self):
331
+ r"""
332
+ Return the minimum possible multiplicative order of ``self``.
333
+
334
+ OUTPUT:
335
+
336
+ an integer -- the multiplicative order of this element. This is the
337
+ minimum multiplicative order of all elements of `\ZZ_p` lifting this
338
+ element to infinite precision.
339
+
340
+ EXAMPLES::
341
+
342
+ sage: R = ZpFM(7, 6)
343
+ sage: R(1/3)
344
+ 5 + 4*7 + 4*7^2 + 4*7^3 + 4*7^4 + 4*7^5
345
+ sage: R(1/3).multiplicative_order()
346
+ +Infinity
347
+ sage: R(7).multiplicative_order()
348
+ +Infinity
349
+ sage: R(1).multiplicative_order()
350
+ 1
351
+ sage: R(-1).multiplicative_order()
352
+ 2
353
+ sage: R.teichmuller(3).multiplicative_order()
354
+ 6
355
+ """
356
+ cdef mpz_t tmp
357
+ cdef Integer ans
358
+ if mpz_divisible_p(self.value, self.prime_pow.prime.value):
359
+ return infinity
360
+ if mpz_cmp_ui(self.value, 1) == 0:
361
+ ans = PY_NEW(Integer)
362
+ mpz_set_ui(ans.value, 1)
363
+ return ans
364
+ mpz_init(tmp)
365
+ mpz_sub_ui(tmp, self.prime_pow.pow_mpz_t_top(), 1)
366
+ if mpz_cmp(self.value, tmp) == 0:
367
+ ans = PY_NEW(Integer)
368
+ mpz_set_ui(ans.value, 2)
369
+ return ans
370
+ # check if self is an approximation to a teichmuller lift:
371
+ mpz_powm(tmp, self.value, self.prime_pow.prime.value, self.prime_pow.pow_mpz_t_top())
372
+ if mpz_cmp(tmp, self.value) == 0:
373
+ mpz_clear(tmp)
374
+ return self.residue(1).multiplicative_order()
375
+ else:
376
+ mpz_clear(tmp)
377
+ return infinity
378
+
379
+ def _log_binary_splitting(self, aprec, mina=0):
380
+ r"""
381
+ Return ``\log(self)`` for ``self`` equal to 1 in the residue field.
382
+
383
+ This is a helper method for :meth:`log`.
384
+ It uses a fast binary splitting algorithm.
385
+
386
+ INPUT:
387
+
388
+ - ``aprec`` -- integer; the precision to which the result is
389
+ correct. ``aprec`` must not exceed the precision cap of the ring over
390
+ which this element is defined.
391
+ - ``mina`` -- integer (default: 0); the series will check `n` up to
392
+ this valuation (and beyond) to see if they can contribute to the
393
+ series
394
+
395
+ .. NOTE::
396
+
397
+ The function does not check that its argument ``self`` is
398
+ 1 in the residue field. If this assumption is not fulfilled
399
+ the behaviour of the function is not specified.
400
+
401
+ ALGORITHM:
402
+
403
+ 1. Raise `u` to the power `p^v` for a suitable `v` in order
404
+ to make it closer to 1. (`v` is chosen such that `p^v` is
405
+ close to the precision.)
406
+
407
+ 2. Write
408
+
409
+ .. MATH::
410
+
411
+ u^{p-1} = \prod_{i=1}^\infty (1 - a_i p^{(v+1)*2^i})
412
+
413
+ with `0 \leq a_i < p^{(v+1)*2^i}` and compute
414
+ `\log(1 - a_i p^{(v+1)*2^i})` using the standard Taylor expansion
415
+
416
+ .. MATH::
417
+
418
+ \log(1 - x) = -x - 1/2 x^2 - 1/3 x^3 - 1/4 x^4 - 1/5 x^5 - \cdots
419
+
420
+ together with a binary splitting method.
421
+
422
+ 3. Divide the result by `p^v`
423
+
424
+ The complexity of this algorithm is quasi-linear.
425
+
426
+ EXAMPLES::
427
+
428
+ sage: r = Qp(5,prec=4)(6)
429
+ sage: r._log_binary_splitting(2)
430
+ 5 + O(5^2)
431
+ sage: r._log_binary_splitting(4)
432
+ 5 + 2*5^2 + 4*5^3 + O(5^4)
433
+ sage: r._log_binary_splitting(100)
434
+ 5 + 2*5^2 + 4*5^3 + O(5^4)
435
+
436
+ sage: r = Zp(5,prec=4,type='fixed-mod')(6)
437
+ sage: r._log_binary_splitting(5)
438
+ 5 + 2*5^2 + 4*5^3
439
+ """
440
+ cdef unsigned long p
441
+ cdef unsigned long prec = min(aprec, self.prime_pow.prec_cap)
442
+ cdef pAdicFixedModElement ans
443
+
444
+ if mpz_fits_slong_p(self.prime_pow.prime.value) == 0:
445
+ raise NotImplementedError("the prime %s does not fit in a long" % self.prime_pow.prime)
446
+ p = self.prime_pow.prime
447
+
448
+ ans = self._new_c()
449
+ sig_on()
450
+ padiclog(ans.value, self.value, p, prec, self.prime_pow.pow_mpz_t_tmp(prec))
451
+ sig_off()
452
+ return ans
453
+
454
+ def _exp_binary_splitting(self, aprec):
455
+ r"""
456
+ Compute the exponential power series of this element.
457
+
458
+ This is a helper method for :meth:`exp`.
459
+
460
+ INPUT:
461
+
462
+ - ``aprec`` -- integer; the precision to which to compute the
463
+ exponential
464
+
465
+ .. NOTE::
466
+
467
+ The function does not check that its argument ``self`` is
468
+ the disk of convergence of ``exp``. If this assumption is not
469
+ fulfilled the behaviour of the function is not specified.
470
+
471
+ ALGORITHM:
472
+
473
+ Write
474
+
475
+ .. MATH::
476
+
477
+ self = \sum_{i=1}^\infty a_i p^{2^i}
478
+
479
+ with `0 \leq a_i < p^{2^i}` and compute
480
+ `\exp(a_i p^{2^i})` using the standard Taylor expansion
481
+
482
+ .. MATH::
483
+
484
+ \exp(x) = 1 + x + x^2/2 + x^3/6 + x^4/24 + \cdots
485
+
486
+ together with a binary splitting method.
487
+
488
+ The binary complexity of this algorithm is quasi-linear.
489
+
490
+ EXAMPLES::
491
+
492
+ sage: R = Zp(7,5)
493
+ sage: x = R(7)
494
+ sage: x.exp(algorithm='binary_splitting') # indirect doctest
495
+ 1 + 7 + 4*7^2 + 2*7^3 + O(7^5)
496
+ """
497
+ cdef unsigned long p
498
+ cdef unsigned long prec = aprec
499
+ cdef pAdicFixedModElement ans
500
+
501
+ if mpz_fits_slong_p(self.prime_pow.prime.value) == 0:
502
+ raise NotImplementedError("the prime %s does not fit in a long" % self.prime_pow.prime)
503
+ p = self.prime_pow.prime
504
+
505
+ ans = self._new_c()
506
+ sig_on()
507
+ padicexp(ans.value, self.value, p, prec, self.prime_pow.pow_mpz_t_tmp(prec))
508
+ sig_off()
509
+
510
+ return ans
511
+
512
+ def _exp_newton(self, aprec, log_algorithm=None):
513
+ r"""
514
+ Compute the exponential power series of this element.
515
+
516
+ This is a helper method for :meth:`exp`.
517
+
518
+ INPUT:
519
+
520
+ - ``aprec`` -- integer; the precision to which to compute the
521
+ exponential
522
+
523
+ - ``log_algorithm`` -- (default: ``None``) the algorithm used for
524
+ computing the logarithm. This attribute is passed to the log
525
+ method. See :meth:`log` for more details about the possible
526
+ algorithms.
527
+
528
+ .. NOTE::
529
+
530
+ The function does not check that its argument ``self`` is
531
+ the disk of convergence of ``exp``. If this assumption is not
532
+ fulfilled the behaviour of the function is not specified.
533
+
534
+ ALGORITHM:
535
+
536
+ Solve the equation `\log(x) = self` using the Newton scheme::
537
+
538
+ .. MATH::
539
+
540
+ x_{i+1} = x_i \cdot (1 + self - \log(x_i))
541
+
542
+ The binary complexity of this algorithm is roughly the same
543
+ than that of the computation of the logarithm.
544
+
545
+ EXAMPLES::
546
+
547
+ sage: # needs sage.libs.ntl
548
+ sage: R.<w> = Zq(7^2,5)
549
+ sage: x = R(7*w)
550
+ sage: x.exp(algorithm='newton') # indirect doctest
551
+ 1 + w*7 + (4*w + 2)*7^2 + (w + 6)*7^3 + 5*7^4 + O(7^5)
552
+ """
553
+ cdef unsigned long p
554
+ cdef unsigned long prec = aprec
555
+ cdef pAdicFixedModElement ans
556
+
557
+ if mpz_fits_slong_p(self.prime_pow.prime.value) == 0:
558
+ raise NotImplementedError("the prime %s does not fit in a long" % self.prime_pow.prime)
559
+ p = self.prime_pow.prime
560
+
561
+ ans = self._new_c()
562
+ mpz_set_ui(ans.value, 1)
563
+ sig_on()
564
+ if p == 2:
565
+ padicexp_Newton(ans.value, self.value, p, prec, 2, self.prime_pow.pow_mpz_t_tmp(prec))
566
+ else:
567
+ padicexp_Newton(ans.value, self.value, p, prec, 1, self.prime_pow.pow_mpz_t_tmp(prec))
568
+ sig_off()
569
+
570
+ return ans
571
+
572
+
573
+ def make_pAdicFixedModElement(parent, value):
574
+ """
575
+ Unpickles a fixed modulus element.
576
+
577
+ EXAMPLES::
578
+
579
+ sage: from sage.rings.padics.padic_fixed_mod_element import make_pAdicFixedModElement
580
+ sage: R = ZpFM(5)
581
+ sage: a = make_pAdicFixedModElement(R, 17*25); a
582
+ 2*5^2 + 3*5^3
583
+ """
584
+ return unpickle_fme_v2(pAdicFixedModElement, parent, value)
@@ -0,0 +1,14 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from sage.libs.gmp.types cimport mpz_t
3
+ from cypari2.gen cimport Gen as pari_gen
4
+
5
+ ctypedef mpz_t celement
6
+ include "FP_template_header.pxi"
7
+
8
+ cdef class pAdicFloatingPointElement(FPElement):
9
+ cdef lift_c(self)
10
+ cdef pari_gen _to_gen(self)
11
+
12
+ from sage.rings.padics.pow_computer cimport PowComputer_base
13
+ cdef class PowComputer_(PowComputer_base):
14
+ pass