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,132 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.rings.complex_double
3
+
4
+ from cysignals.signals cimport sig_on, sig_off
5
+
6
+ from sage.libs.gsl.complex cimport *
7
+
8
+ from cypari2.paridecl cimport *
9
+ from cypari2.convert cimport new_gen_from_double, new_t_COMPLEX_from_double
10
+
11
+
12
+ cpdef ComplexDoubleElement pari_to_cdf(Gen g):
13
+ """
14
+ Create a CDF element from a PARI ``gen``.
15
+
16
+ EXAMPLES::
17
+
18
+ sage: CDF(pari("Pi")) # indirect doctest
19
+ 3.141592653589793
20
+ sage: CDF(pari("1 + I/2"))
21
+ 1.0 + 0.5*I
22
+
23
+ TESTS:
24
+
25
+ Check that we handle PARI errors gracefully, see :issue:`17329`::
26
+
27
+ sage: CDF(-151.386325246 + 992.34771962*I).zeta() # needs sage.symbolic
28
+ Traceback (most recent call last):
29
+ ...
30
+ PariError: overflow in t_REAL->double conversion
31
+ sage: CDF(pari(x^2 + 5)) # needs sage.symbolic
32
+ Traceback (most recent call last):
33
+ ...
34
+ PariError: incorrect type in gtofp (t_POL)
35
+ """
36
+ cdef ComplexDoubleElement z = ComplexDoubleElement.__new__(ComplexDoubleElement)
37
+ sig_on()
38
+ if typ(g.g) == t_COMPLEX:
39
+ z._complex = gsl_complex_rect(gtodouble(gel(g.g, 1)), gtodouble(gel(g.g, 2)))
40
+ else:
41
+ z._complex = gsl_complex_rect(gtodouble(g.g), 0.0)
42
+ sig_off()
43
+ return z
44
+
45
+
46
+ cpdef Gen new_gen_from_complex_double_element(ComplexDoubleElement self):
47
+ """
48
+ Return PARI version of ``self``, as ``t_COMPLEX`` or ``t_REAL``.
49
+
50
+ EXAMPLES::
51
+
52
+ sage: from sage.libs.pari.convert_sage_complex_double import new_gen_from_complex_double_element
53
+ sage: new_gen_from_complex_double_element(CDF(1,0))
54
+ 1.00000000000000
55
+ sage: new_gen_from_complex_double_element(CDF(0,1))
56
+ 1.00000000000000*I
57
+ sage: new_gen_from_complex_double_element(CDF(1,1))
58
+ 1.00000000000000 + 1.00000000000000*I
59
+ """
60
+ if not GSL_IMAG(self._complex):
61
+ return new_gen_from_double(GSL_REAL(self._complex))
62
+ else:
63
+ return new_t_COMPLEX_from_double(GSL_REAL(self._complex), GSL_IMAG(self._complex))
64
+
65
+
66
+ cpdef ComplexDoubleElement complex_double_element_eta(ComplexDoubleElement self, int flag):
67
+ """
68
+ TESTS::
69
+
70
+ sage: from sage.libs.pari.convert_sage_complex_double import complex_double_element_eta
71
+ sage: a = CDF(1,1)
72
+ sage: complex_double_element_eta(a, 0)
73
+ 0.9981290699259585
74
+ sage: complex_double_element_eta(a, 1)
75
+ 0.7420487758365647 + 0.1988313702299107*I
76
+ """
77
+ return pari_to_cdf(new_gen_from_complex_double_element(self).eta(flag))
78
+
79
+
80
+ cpdef ComplexDoubleElement complex_double_element_agm(ComplexDoubleElement self, right):
81
+ """
82
+ TESTS::
83
+
84
+ sage: from sage.libs.pari.convert_sage_complex_double import complex_double_element_agm
85
+ sage: complex_double_element_agm(CDF(1, 1), CDF(2, 2))
86
+ 1.4567910310469068 + 1.4567910310469068*I
87
+ """
88
+ return pari_to_cdf(new_gen_from_complex_double_element(self).agm(right))
89
+
90
+
91
+ cpdef ComplexDoubleElement complex_double_element_dilog(ComplexDoubleElement self):
92
+ """
93
+ TESTS::
94
+
95
+ sage: from sage.libs.pari.convert_sage_complex_double import complex_double_element_dilog
96
+ sage: complex_double_element_dilog(CDF(1, 1))
97
+ 0.6168502750680849 + 1.4603621167531196*I
98
+ """
99
+ return pari_to_cdf(new_gen_from_complex_double_element(self).dilog())
100
+
101
+
102
+ cpdef ComplexDoubleElement complex_double_element_gamma(ComplexDoubleElement self):
103
+ """
104
+ TESTS::
105
+
106
+ sage: from sage.libs.pari.convert_sage_complex_double import complex_double_element_gamma
107
+ sage: complex_double_element_gamma(CDF(1, 1))
108
+ 0.49801566811835607 - 0.15494982830181067*I
109
+ """
110
+ return pari_to_cdf(new_gen_from_complex_double_element(self).gamma())
111
+
112
+
113
+ cpdef ComplexDoubleElement complex_double_element_gamma_inc(ComplexDoubleElement self, t):
114
+ """
115
+ TESTS::
116
+
117
+ sage: from sage.libs.pari.convert_sage_complex_double import complex_double_element_gamma_inc
118
+ sage: complex_double_element_gamma_inc(CDF(1, 1), CDF(2, 2))
119
+ 0.054695987717541285 - 0.04676800059213122*I
120
+ """
121
+ return pari_to_cdf(new_gen_from_complex_double_element(self).incgam(t))
122
+
123
+
124
+ cpdef ComplexDoubleElement complex_double_element_zeta(ComplexDoubleElement self):
125
+ """
126
+ TESTS::
127
+
128
+ sage: from sage.libs.pari.convert_sage_complex_double import complex_double_element_zeta
129
+ sage: complex_double_element_zeta(CDF(1, 2))
130
+ 0.5981655697623818 - 0.35185474521784527*I
131
+ """
132
+ return pari_to_cdf(new_gen_from_complex_double_element(self).zeta())
@@ -0,0 +1,106 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.modules
3
+
4
+ from cypari2.gen cimport Gen
5
+ from cypari2.types cimport (GEN, typ, t_INT, t_FRAC, t_REAL, t_COMPLEX,
6
+ t_INTMOD, t_PADIC, t_INFINITY, t_VEC, t_COL,
7
+ t_VECSMALL, t_MAT, t_STR,
8
+ lg, precp)
9
+ from cypari2.paridecl cimport *
10
+
11
+ from sage.matrix.args cimport (MatrixArgs, MA_ENTRIES_SEQ_SEQ,
12
+ MA_ENTRIES_SEQ_FLAT, MA_ENTRIES_CALLABLE,
13
+ MA_ENTRIES_UNKNOWN, MA_ENTRIES_SCALAR)
14
+
15
+ from .convert_sage cimport gen_to_sage
16
+
17
+
18
+ def gen_to_sage_matrix(Gen z, locals=None):
19
+ cdef GEN g = z.g
20
+ nc = lg(g) - 1
21
+ nr = 0 if nc == 0 else lg(gel(g,1)) - 1
22
+ ma = MatrixArgs.__new__(MatrixArgs)
23
+ ma.nrows = nr
24
+ ma.ncols = nc
25
+ ma.entries = [gen_to_sage(z[i,j], locals) for i in range(nr) for j in range(nc)]
26
+ return ma.matrix()
27
+
28
+
29
+ def pari_typ_to_entries_type(MatrixArgs self):
30
+ """
31
+ Determine the ``entries_type`` of a :class:`sage.matrix.args.MatrixArgs`
32
+ with PARI entries.
33
+
34
+ This will modify the entries.
35
+
36
+ TESTS:
37
+
38
+ ``MA_ENTRIES_SEQ_SEQ``::
39
+
40
+ sage: from sage.libs.pari.convert_sage import pari_typ_to_entries_type
41
+ sage: from sage.matrix.args import MatrixArgs
42
+ sage: ma = MatrixArgs(QQ, entries=pari("[1,2;3,4]"))
43
+ sage: 0x10_03 == pari_typ_to_entries_type(ma)
44
+ True
45
+
46
+ ``MA_ENTRIES_SEQ_FLAT``::
47
+
48
+ sage: ma = MatrixArgs(QQ, entries=pari("[1,2]"))
49
+ sage: 0x10_04 == pari_typ_to_entries_type(ma)
50
+ True
51
+ sage: ma = MatrixArgs(QQ, entries=pari(vector([1,2])))
52
+ sage: 0x10_04 == pari_typ_to_entries_type(ma)
53
+ True
54
+ sage: ma = MatrixArgs(QQ, entries=pari(matrix(2, range(4))[0]))
55
+ sage: 0x10_04 == pari_typ_to_entries_type(ma)
56
+ True
57
+
58
+ ``MA_ENTRIES_CALLABLE``::
59
+
60
+ sage: ma = MatrixArgs(QQ, entries=pari(lambda x: x))
61
+ sage: 0x13_06 == pari_typ_to_entries_type(ma)
62
+ True
63
+
64
+ ``MA_ENTRIES_SCALAR``::
65
+
66
+ sage: ma = MatrixArgs(QQ, entries=pari(1/2))
67
+ sage: 0x17_02 == pari_typ_to_entries_type(ma)
68
+ True
69
+
70
+ ``MA_ENTRIES_UNKNOWN``::
71
+
72
+ sage: ma = MatrixArgs(QQ, entries=pari('"2"'))
73
+ sage: 0 == pari_typ_to_entries_type(ma)
74
+ True
75
+
76
+ A second call gives an error::
77
+
78
+ sage: ma = MatrixArgs(QQ, entries=pari("[1,2]"))
79
+ sage: 0x10_04 == pari_typ_to_entries_type(ma)
80
+ True
81
+ sage: 0x10_04 == pari_typ_to_entries_type(ma)
82
+ Traceback (most recent call last):
83
+ ...
84
+ ValueError: entries are not a PARI generator
85
+ """
86
+ if not isinstance(self.entries, Gen):
87
+ raise ValueError("entries are not a PARI generator")
88
+ cdef long t = typ((<Gen>self.entries).g)
89
+ if t == t_MAT:
90
+ R = self.base
91
+ if R is None:
92
+ self.entries = self.entries.Col().sage()
93
+ else:
94
+ self.entries = [[R(x) for x in v]
95
+ for v in self.entries.mattranspose()]
96
+ return MA_ENTRIES_SEQ_SEQ
97
+ elif t in [t_VEC, t_COL, t_VECSMALL, t_LIST]:
98
+ self.entries = self.entries.sage()
99
+ return MA_ENTRIES_SEQ_FLAT
100
+ elif t == t_CLOSURE:
101
+ return MA_ENTRIES_CALLABLE
102
+ elif t == t_STR:
103
+ return MA_ENTRIES_UNKNOWN
104
+ else:
105
+ self.entries = self.entries.sage()
106
+ return MA_ENTRIES_SCALAR
@@ -0,0 +1,5 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from cypari2.gen cimport Gen
3
+ from sage.rings.real_double cimport RealDoubleElement
4
+
5
+ cpdef Gen new_gen_from_real_double_element(RealDoubleElement self)
@@ -0,0 +1,14 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from cypari2.convert cimport new_gen_from_double
3
+
4
+ cpdef Gen new_gen_from_real_double_element(RealDoubleElement self):
5
+ """
6
+ Return a PARI representation of ``self``.
7
+
8
+ EXAMPLES::
9
+
10
+ sage: from sage.libs.pari.convert_sage_real_double import new_gen_from_real_double_element
11
+ sage: new_gen_from_real_double_element(RDF(-2.5))
12
+ -2.50000000000000
13
+ """
14
+ return new_gen_from_double(self._value)
@@ -0,0 +1,7 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from cypari2.gen cimport Gen
3
+
4
+ from sage.rings.real_mpfr cimport RealNumber
5
+
6
+ cpdef Gen new_gen_from_real_mpfr_element(RealNumber self)
7
+ cpdef bint set_real_mpfr_element_from_gen(RealNumber self, Gen x) noexcept
@@ -0,0 +1,108 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.rings.real_mpfr
3
+
4
+ from cypari2.stack cimport new_gen
5
+ from cypari2.paridecl cimport *
6
+ from cysignals.signals cimport sig_on
7
+
8
+ from sage.libs.gmp.mpz cimport *
9
+ from sage.libs.mpfr cimport *
10
+ from sage.libs.mpfr.types cimport mpfr_prec_t
11
+ from sage.rings.real_mpfr cimport RealField_class, RealField
12
+
13
+
14
+ cpdef Gen new_gen_from_real_mpfr_element(RealNumber self):
15
+
16
+ # This uses interfaces of MPFR and PARI which are documented
17
+ # (and not marked subject-to-change). It could be faster
18
+ # by using internal interfaces of MPFR, which are documented
19
+ # as subject-to-change.
20
+
21
+ if mpfr_nan_p(self.value) or mpfr_inf_p(self.value):
22
+ raise ValueError('cannot convert NaN or infinity to Pari float')
23
+
24
+ # wordsize for PARI
25
+ cdef unsigned long wordsize = sizeof(long)*8
26
+
27
+ cdef mpfr_prec_t prec
28
+ prec = (<RealField_class>self._parent)._prec
29
+
30
+ # We round up the precision to the nearest multiple of wordsize.
31
+ cdef int rounded_prec
32
+ rounded_prec = nbits2prec(self.prec())
33
+
34
+ # Yes, assigning to self works fine, even in Cython.
35
+ if rounded_prec > prec:
36
+ self = RealField(rounded_prec)(self)
37
+
38
+ cdef mpz_t mantissa
39
+ cdef mp_exp_t exponent
40
+ cdef GEN pari_float
41
+
42
+ sig_on()
43
+ if mpfr_zero_p(self.value):
44
+ pari_float = real_0_bit(-rounded_prec)
45
+ else:
46
+ # Now we can extract the mantissa, and it will be normalized
47
+ # (the most significant bit of the most significant word will be 1).
48
+ mpz_init(mantissa)
49
+ exponent = mpfr_get_z_exp(mantissa, self.value)
50
+
51
+ # Create a PARI REAL
52
+ pari_float = cgetr(rounded_prec)
53
+ pari_float[1] = evalexpo(exponent + rounded_prec - 1) + evalsigne(mpfr_sgn(self.value))
54
+ mpz_export(&pari_float[2], NULL, 1, wordsize // 8, 0, 0, mantissa)
55
+ mpz_clear(mantissa)
56
+
57
+ return new_gen(pari_float)
58
+
59
+
60
+ cpdef bint set_real_mpfr_element_from_gen(RealNumber self, Gen x) noexcept:
61
+ r"""
62
+ EXAMPLES::
63
+
64
+ sage: rt2 = sqrt(pari('2.0'))
65
+ sage: rt2
66
+ 1.41421356237310
67
+ sage: rt2.sage()
68
+ 1.41421356237309505
69
+ sage: rt2.sage().prec()
70
+ 64
71
+ sage: pari(rt2.sage()) == rt2
72
+ True
73
+ sage: for i in range(100, 200):
74
+ ....: assert(sqrt(pari(i)) == pari(sqrt(pari(i)).sage()))
75
+ sage: (-3.1415).__pari__().sage()
76
+ -3.14150000000000000
77
+ """
78
+ cdef GEN g = x.g
79
+
80
+ if typ((<Gen>x).g) != t_REAL:
81
+ return False
82
+
83
+ cdef int sgn
84
+ sgn = signe(g)
85
+
86
+ if sgn == 0:
87
+ mpfr_set_ui(self.value, 0, MPFR_RNDN)
88
+ return True
89
+
90
+ cdef int wordsize = 8 * sizeof(long)
91
+
92
+ cdef mpz_t mantissa
93
+ mpz_init(mantissa)
94
+ mpz_import(mantissa, lg(g) - 2, 1, wordsize/8, 0, 0, &g[2])
95
+
96
+ cdef mp_exp_t exponent = expo(g)
97
+
98
+ # Round to nearest for best results when setting a low-precision
99
+ # MPFR from a high-precision GEN
100
+ mpfr_set_z(self.value, mantissa, MPFR_RNDN)
101
+ mpfr_mul_2si(self.value, self.value, exponent - wordsize * (lg(g) - 2) + 1, MPFR_RNDN)
102
+
103
+ if sgn < 0:
104
+ mpfr_neg(self.value, self.value, MPFR_RNDN)
105
+
106
+ mpz_clear(mantissa)
107
+
108
+ return True
@@ -0,0 +1,4 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from cypari2.gen cimport Gen
3
+
4
+ cdef Gen new_t_POL_from_int_star(int* vals, unsigned long length, long varnum)
@@ -0,0 +1,26 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from cysignals.signals cimport sig_on
3
+ from cypari2.paridecl cimport *
4
+ from cypari2.stack cimport new_gen
5
+
6
+
7
+ cdef Gen new_t_POL_from_int_star(int* vals, unsigned long length, long varnum):
8
+ """
9
+ Convert an array of ints to a PARI polynomial.
10
+
11
+ Note that ``length = degree + 1``, so that recognizing 0 is easier.
12
+ """
13
+ cdef GEN z
14
+ cdef unsigned long i
15
+
16
+ sig_on()
17
+ z = cgetg(length + 2, t_POL)
18
+ if length == 0:
19
+ # Polynomial is zero
20
+ z[1] = evalvarn(varnum) + evalsigne(0)
21
+ else:
22
+ z[1] = evalvarn(varnum) + evalsigne(1)
23
+ for i in range(length):
24
+ set_gel(z, i+2, stoi(vals[i]))
25
+
26
+ return new_gen(z)