passagemath-pari 10.6.31rc3__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.31rc3.data/data/etc/jupyter/nbconfig/notebook.d/gp-mode.json +5 -0
  43. passagemath_pari-10.6.31rc3.data/data/share/jupyter/kernels/pari_jupyter/kernel.js +28 -0
  44. passagemath_pari-10.6.31rc3.data/data/share/jupyter/kernels/pari_jupyter/kernel.json +6 -0
  45. passagemath_pari-10.6.31rc3.data/data/share/jupyter/kernels/pari_jupyter/logo-64x64.png +0 -0
  46. passagemath_pari-10.6.31rc3.data/data/share/jupyter/kernels/xeus-gp/kernel.json +13 -0
  47. passagemath_pari-10.6.31rc3.data/data/share/jupyter/kernels/xeus-gp/logo-32x32.png +0 -0
  48. passagemath_pari-10.6.31rc3.data/data/share/jupyter/kernels/xeus-gp/logo-64x64.png +0 -0
  49. passagemath_pari-10.6.31rc3.data/data/share/jupyter/kernels/xeus-gp/logo-svg.svg +75 -0
  50. passagemath_pari-10.6.31rc3.data/data/share/jupyter/nbextensions/gp-mode/gp.js +284 -0
  51. passagemath_pari-10.6.31rc3.data/data/share/jupyter/nbextensions/gp-mode/main.js +15 -0
  52. passagemath_pari-10.6.31rc3.dist-info/METADATA +209 -0
  53. passagemath_pari-10.6.31rc3.dist-info/RECORD +331 -0
  54. passagemath_pari-10.6.31rc3.dist-info/WHEEL +5 -0
  55. passagemath_pari-10.6.31rc3.dist-info/top_level.txt +4 -0
  56. passagemath_pari.libs/libcrypto-435bc0f9.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-cb821cd5.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
PARIKernel/__init__.py ADDED
@@ -0,0 +1,2 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ __version__ = "1.4.3"
PARIKernel/__main__.py ADDED
@@ -0,0 +1,5 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from .kernel import PARIKernel
3
+
4
+ from ipykernel.kernelapp import IPKernelApp
5
+ IPKernelApp.launch_instance(kernel_class=PARIKernel)
PARIKernel/io.pxd ADDED
@@ -0,0 +1,7 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ from .paridecl cimport PariOUT
3
+
4
+ cdef class PARIKernelIO(object):
5
+ cdef PariOUT pari_out
6
+ cdef PariOUT pari_err
7
+ cdef readonly stdout_stream, stderr_stream
PARIKernel/io.pyx ADDED
@@ -0,0 +1,84 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ #cython: language_level=3
3
+ #
4
+ # Helper class to manage I/O between PARI and the Jupyter client
5
+ #
6
+ # Copyright (C) 2015 Jeroen Demeyer
7
+ #
8
+ # This program is free software: you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation, either version 3 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ #
21
+
22
+
23
+ from .paridecl cimport pariOut, pariErr
24
+ from ipykernel.iostream import OutStream
25
+
26
+
27
+ cdef extern from "Python.h":
28
+ unicode PyUnicode_FromString(const char *)
29
+ unicode PyUnicode_FromStringAndSize(const char *, Py_ssize_t)
30
+
31
+ # Unique PARIKernelIO object
32
+ cdef PARIKernelIO io
33
+
34
+
35
+ cdef void out_putch(char c) noexcept with gil:
36
+ io.stdout_stream.write(PyUnicode_FromStringAndSize(&c, 1))
37
+
38
+ cdef void out_puts(const char* s) noexcept with gil:
39
+ io.stdout_stream.write(PyUnicode_FromString(s))
40
+
41
+ cdef void out_flush() noexcept with gil:
42
+ io.stdout_stream.flush()
43
+
44
+ cdef void err_putch(char c) noexcept with gil:
45
+ io.stderr_stream.write(PyUnicode_FromStringAndSize(&c, 1))
46
+
47
+ cdef void err_puts(const char* s) noexcept with gil:
48
+ io.stderr_stream.write(PyUnicode_FromString(s))
49
+
50
+ cdef void err_flush() noexcept with gil:
51
+ io.stderr_stream.flush()
52
+
53
+
54
+ cdef class PARIKernelIO(object):
55
+ def __cinit__(self):
56
+ self.pari_out.putch = out_putch
57
+ self.pari_out.puts = out_puts
58
+ self.pari_out.flush = out_flush
59
+ self.pari_err.putch = err_putch
60
+ self.pari_err.puts = err_puts
61
+ self.pari_err.flush = err_flush
62
+
63
+ def __init__(self, kernel):
64
+ global io
65
+ if io is not None:
66
+ raise RuntimeError("cannot create more than one PARIKernelIO object")
67
+ io = self
68
+
69
+ global pariOut, pariErr
70
+ pariOut = &self.pari_out
71
+ pariErr = &self.pari_err
72
+
73
+ self.stdout_stream = OutStream(kernel.session,
74
+ kernel.iopub_socket, "stdout")
75
+ self.stderr_stream = OutStream(kernel.session,
76
+ kernel.iopub_socket, "stderr")
77
+
78
+ def set_parent(self, parent):
79
+ self.stdout_stream.set_parent(parent)
80
+ self.stderr_stream.set_parent(parent)
81
+
82
+ def flush(self):
83
+ self.stdout_stream.flush()
84
+ self.stderr_stream.flush()
PARIKernel/kernel.pyx ADDED
@@ -0,0 +1,260 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # distutils: include_dirs = READLINE_INCDIR
3
+ # distutils: library_dirs = READLINE_LIBDIR
4
+ # distutils: extra_link_args = READLINE_LIBEXTRA
5
+ # distutils: libraries = readline
6
+ #cython: language_level=3
7
+ #
8
+ # Jupyter kernel for PARI/GP
9
+ #
10
+ # Copyright (C) 2015-2016 Jeroen Demeyer
11
+ #
12
+ # This program is free software: you can redistribute it and/or modify
13
+ # it under the terms of the GNU General Public License as published by
14
+ # the Free Software Foundation, either version 3 of the License, or
15
+ # (at your option) any later version.
16
+ #
17
+ # This program is distributed in the hope that it will be useful,
18
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ # GNU General Public License for more details.
21
+ #
22
+ # You should have received a copy of the GNU General Public License
23
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
24
+ #
25
+
26
+
27
+ from .paridecl cimport *
28
+ from .io cimport PARIKernelIO
29
+ from libc.setjmp cimport *
30
+ from libc.string cimport memset, strncmp
31
+ from ipykernel.kernelbase import Kernel
32
+ from libc.signal cimport SIGALRM, SIGINT
33
+ from posix.signal cimport sigaction, sigaction_t
34
+ import PARIKernel
35
+
36
+ cdef extern from "readline/readline.h":
37
+ pass
38
+
39
+ DEF PARISIZE = 2**27
40
+ DEF PRIMELIMIT = 500000
41
+
42
+
43
+ # Global setjmp() context for error handling
44
+ cdef sigjmp_buf context
45
+
46
+ cdef void pari_recover(long numerr) noexcept nogil:
47
+ siglongjmp(context, numerr)
48
+
49
+ # Global PARI readline interface
50
+ cdef pari_rl_interface pari_rl
51
+
52
+ # Support for SVG plotting (if compiled in)
53
+ try:
54
+ from .svg import init_svg
55
+ except ImportError:
56
+ def init_svg(self):
57
+ pass
58
+
59
+
60
+ # Helper functions
61
+ cdef extern from "Python.h":
62
+ unicode PyUnicode_FromString(const char*)
63
+
64
+
65
+ cdef inline PyUnicode_FromGEN(GEN g):
66
+ cdef char* s = GENtostr(g)
67
+ cdef object pystr = PyUnicode_FromString(s)
68
+ pari_free(s)
69
+ return pystr
70
+
71
+
72
+ def pari_short_version():
73
+ cdef unsigned long mask = (1<<PARI_VERSION_SHIFT) - 1
74
+ cdef unsigned long n = paricfg_version_code
75
+
76
+ cdef unsigned long patch = n & mask
77
+ n >>= PARI_VERSION_SHIFT
78
+ cdef unsigned long minor = n & mask
79
+ n >>= PARI_VERSION_SHIFT
80
+ cdef unsigned long major = n
81
+ return "{}.{}.{}".format(major, minor, patch)
82
+
83
+
84
+ cdef inline bint is_keyword_char_python(s) except -1:
85
+ """
86
+ Given a Python single-character string ``s``, is it a PARI
87
+ keyword character?
88
+ """
89
+ cdef long c
90
+ try:
91
+ c = ord(s)
92
+ except TypeError:
93
+ return 0
94
+ return 32 <= c < 128 and is_keyword_char(c)
95
+
96
+
97
+ class PARIKernel(Kernel):
98
+ implementation = 'PARI'
99
+ implementation_version = PARIKernel.__version__
100
+ language = 'GP'
101
+ language_version = pari_short_version()
102
+ language_info = dict(mimetype='text/x-pari-gp', name='gp', file_extension='.gp')
103
+ banner = "PARI/GP kernel"
104
+
105
+ def __init__(self, *args, **kwds):
106
+ super().__init__(*args, **kwds)
107
+
108
+ pari_init_opts(PARISIZE, PRIMELIMIT, INIT_SIGm | INIT_DFTm)
109
+ global cb_pari_err_recover
110
+ cb_pari_err_recover = pari_recover
111
+ self.io = PARIKernelIO(self)
112
+ pari_use_readline(pari_rl)
113
+ init_svg(self)
114
+
115
+ def do_execute(self, code, silent, store_history=True, user_expressions=None,
116
+ allow_stdin=False):
117
+ global avma
118
+ cdef pari_sp av = avma
119
+ cdef GEN result
120
+
121
+ code = (<unicode?>code).encode("utf-8")
122
+ cdef const char* gp_code = <bytes>code
123
+
124
+ self.io.set_parent(self._parent_header)
125
+
126
+ cdef sigaction_t sa
127
+ cdef sigaction_t old_sa
128
+ memset(&sa, 0, sizeof(sa))
129
+ sa.sa_handler = pari_sighandler
130
+
131
+ cdef int err
132
+ cdef long t_ms, wt_ms
133
+ cdef char last
134
+
135
+ with nogil:
136
+ err = sigsetjmp(context, 1)
137
+ if err == 0: # Initial sigsetjmp() call
138
+ sigaction(SIGINT, &sa, &old_sa) # Handle SIGINT by PARI
139
+ timer_start(GP_DATA.T)
140
+ walltimer_start(GP_DATA.Tw)
141
+ result = gp_read_str_multiline(gp_code, &last)
142
+ t_ms = timer_delay(GP_DATA.T)
143
+ wt_ms = walltimer_delay(GP_DATA.Tw)
144
+ sigaction(SIGINT, &old_sa, &sa) # Restore Python SIGINT handler
145
+
146
+ if err == 0: # success
147
+ if not silent:
148
+ if t_ms and GP_DATA.chrono:
149
+ pari_puts(b"time = ")
150
+ pari_puts(gp_format_time(t_ms))
151
+ pari_flush()
152
+
153
+ # gnil as a result is like Python's None, it should be
154
+ # considered as "no result"
155
+ if result is not gnil:
156
+ if store_history:
157
+ pari_add_hist(result, t_ms, wt_ms)
158
+
159
+ if last != c';' and not silent:
160
+ content = {
161
+ 'execution_count': pari_nb_hist(),
162
+ 'data': {
163
+ 'text/plain': PyUnicode_FromGEN(result),
164
+ },
165
+ 'metadata': {}
166
+ }
167
+ self.send_response(self.iopub_socket, 'execute_result', content)
168
+
169
+ reply = {'status': 'ok',
170
+ 'execution_count': pari_nb_hist(),
171
+ 'payload': [],
172
+ 'user_expressions': {},
173
+ }
174
+
175
+ avma = av
176
+
177
+ else: # error (therefore no result)
178
+ reply = {'status': 'error',
179
+ 'execution_count': pari_nb_hist(),
180
+ 'ename': "",
181
+ 'evalue': "",
182
+ 'traceback': [],
183
+ }
184
+
185
+ if err > 0:
186
+ # true error
187
+ avma = av
188
+ else:
189
+ # allocatemem
190
+ avma = pari_mainstack.top
191
+
192
+ self.io.flush()
193
+ return reply
194
+
195
+ def do_complete(self, code, cursor_pos):
196
+ cdef long word
197
+ cdef char** m = pari_completion_matches(&pari_rl,
198
+ (<unicode?>code).encode("utf-8"), cursor_pos, &word)
199
+
200
+ cdef list matches = []
201
+ if m != NULL:
202
+ if m[1] == NULL: # Unique match
203
+ matches = [PyUnicode_FromString(m[0])]
204
+ else: # Non-unique match
205
+ while m[1] != NULL:
206
+ matches.append(PyUnicode_FromString(m[1]))
207
+ m += 1
208
+
209
+ reply = dict(status="ok", matches=sorted(matches),
210
+ cursor_start=word, cursor_end=cursor_pos)
211
+ return reply
212
+
213
+ def do_inspect(self, code, cursor_pos, detail_level=0):
214
+ word = self.__get_keyword(code, cursor_pos)[0]
215
+ # Possibly rewind if we are right after a "("
216
+ if not word and cursor_pos > 0 and code[cursor_pos-1] == u"(":
217
+ word = self.__get_keyword(code, cursor_pos-1)[0]
218
+
219
+ reply = dict(status="ok", found=False, data={}, metadata={})
220
+ if not word:
221
+ return reply
222
+
223
+ cdef entree* ep = is_entry((<unicode?>word).encode("utf-8"))
224
+ if ep == NULL or ep.help == NULL:
225
+ return reply
226
+
227
+ reply["found"] = True
228
+ reply["data"] = {"text/plain": PyUnicode_FromString(ep.help)}
229
+ return reply
230
+
231
+ def publish_svg(self, svg, width, height):
232
+ # For some reason, the payload must be str, not bytes
233
+ if not isinstance(svg, str):
234
+ svg = PyUnicode_FromString(svg)
235
+ content = {
236
+ 'data': {
237
+ "text/plain": "SVG plot",
238
+ "image/svg+xml": svg,
239
+ },
240
+ 'metadata': {
241
+ "width": width,
242
+ "height": height,
243
+ }
244
+ }
245
+ self.send_response(self.iopub_socket, 'display_data', content)
246
+
247
+ def __get_keyword(self, code, pos):
248
+ """
249
+ Return a tuple ``(word, start, end)`` such that ``word`` is a
250
+ PARI "keyword" and ``word = code[start:end]``. The bounds are
251
+ such that ``start <= pos <= end``.
252
+ """
253
+ cdef Py_ssize_t start, end, length = len(code)
254
+ start = end = pos
255
+ while start > 0 and is_keyword_char_python(code[start-1]):
256
+ start -= 1
257
+ while end < length and is_keyword_char_python(code[end]):
258
+ end += 1
259
+ word = code[start:end]
260
+ return (word, start, end)
@@ -0,0 +1,95 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # distutils: libraries = pari
3
+
4
+ cdef extern from "pari/pari.h" nogil:
5
+ ctypedef unsigned long ulong "pari_ulong"
6
+ ctypedef long* GEN
7
+ ctypedef unsigned long pari_sp
8
+ ctypedef long pari_timer
9
+
10
+ ctypedef struct entree:
11
+ entree* next
12
+ char* name
13
+ const char* help
14
+
15
+ long paricfg_version_code
16
+ long PARI_VERSION_SHIFT
17
+
18
+ ctypedef struct pari_mainstack:
19
+ pari_sp top
20
+
21
+ pari_sp avma
22
+ pari_mainstack * pari_mainstack
23
+ GEN gnil
24
+
25
+ int INIT_JMPm, INIT_SIGm, INIT_DFTm, INIT_noPRIMEm, INIT_noIMTm
26
+ void pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts)
27
+ void pari_init(size_t parisize, ulong maxprime)
28
+ void pari_sighandler(int sig)
29
+
30
+ void (*cb_pari_err_recover)(long)
31
+
32
+ void pari_free(void*)
33
+
34
+ GEN gp_read_str_multiline(const char *t, char *last)
35
+ char* GENtostr(GEN x)
36
+ void pari_add_hist(GEN z, long t, long r)
37
+ long pari_nb_hist()
38
+
39
+ long timer_delay(pari_timer *T)
40
+ long timer_get(pari_timer *T)
41
+ void timer_start(pari_timer *T)
42
+
43
+ long walltimer_start(pari_timer *T)
44
+ long walltimer_delay(pari_timer *T)
45
+
46
+ char* gp_format_time(long delay)
47
+
48
+ void pari_puts(char*)
49
+ void pari_flush()
50
+
51
+ struct PariOUT:
52
+ void (*putch)(char)
53
+ void (*puts)(const char*)
54
+ void (*flush)()
55
+ PariOUT* pariOut
56
+ PariOUT* pariErr
57
+
58
+ entree* is_entry(char *s)
59
+
60
+ ctypedef struct PARI_plot:
61
+ long width
62
+ long height
63
+ long hunit
64
+ long vunit
65
+ long fwidth
66
+ long fheight
67
+ void (*draw)(PARI_plot *T, GEN w, GEN x, GEN y)
68
+
69
+ void pari_set_plot_engine(void (*T)(PARI_plot *))
70
+
71
+ char* rect2svg(GEN w, GEN x, GEN y, PARI_plot *T)
72
+
73
+
74
+ cdef extern from "pari/paripriv.h" nogil:
75
+ long is_keyword_char(char c)
76
+
77
+ ctypedef struct gp_data:
78
+ int chrono
79
+ pari_timer* T
80
+ pari_timer* Tw
81
+
82
+ gp_data* GP_DATA
83
+
84
+ ctypedef struct pari_rl_interface:
85
+ pass
86
+
87
+ void pari_use_readline(pari_rl_interface)
88
+ char** pari_completion_matches(pari_rl_interface*, char* s, long pos, long* wordpos)
89
+
90
+ void init_graph()
91
+
92
+
93
+ # It is important that this gets included *after* all PARI includes
94
+ cdef extern from "parifix.h":
95
+ pass
PARIKernel/svg.pyx ADDED
@@ -0,0 +1,52 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ #cython: language_level=3
3
+ #
4
+ # Helper module to handle SVG images produced by PARI
5
+ #
6
+ # Copyright (C) 2017 Jeroen Demeyer
7
+ #
8
+ # This program is free software: you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation, either version 3 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ #
21
+
22
+
23
+ from .paridecl cimport *
24
+
25
+ cdef pari_kernel
26
+
27
+
28
+ def init_svg(kernel):
29
+ global pari_kernel
30
+ pari_kernel = kernel
31
+ pari_set_plot_engine(get_plot)
32
+
33
+
34
+ cdef void get_plot(PARI_plot* T) noexcept nogil:
35
+ # Values copied from src/graph/plotsvg.c in PARI sources
36
+ T.width = 480
37
+ T.height = 320
38
+ T.hunit = 3
39
+ T.vunit = 3
40
+ T.fwidth = 9
41
+ T.fheight = 12
42
+
43
+ T.draw = draw
44
+
45
+
46
+ cdef void draw(PARI_plot *T, GEN w, GEN x, GEN y) noexcept nogil:
47
+ global avma
48
+ cdef pari_sp av = avma
49
+ cdef char* svg = rect2svg(w, x, y, T)
50
+ with gil:
51
+ pari_kernel.publish_svg(svg, T.width, T.height)
52
+ avma = av
cypari2/__init__.py ADDED
@@ -0,0 +1,8 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+
3
+ from .pari_instance import Pari
4
+ from .handle_error import PariError
5
+ from .gen import Gen
6
+ from .custom_block import init_custom_block
7
+
8
+ init_custom_block()