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,323 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.libs.pari sage.modules
3
+ r"""
4
+ Routines for computing special values of `L`-functions
5
+
6
+ - :func:`gamma__exact` -- exact values of the `\Gamma` function at integers and half-integers
7
+ - :func:`zeta__exact` -- exact values of the Riemann `\zeta` function at critical values
8
+ - :func:`quadratic_L_function__exact` -- exact values of the Dirichlet `L`-functions of quadratic characters at critical values
9
+ - :func:`quadratic_L_function__numerical` -- numerical values of the Dirichlet `L`-functions of quadratic characters in the domain of convergence
10
+ """
11
+
12
+ import sage.rings.abc
13
+
14
+ from sage.arith.misc import (bernoulli,
15
+ factorial,
16
+ fundamental_discriminant,
17
+ kronecker as kronecker_symbol)
18
+ from sage.misc.functional import denominator
19
+ from sage.rings.infinity import infinity
20
+ from sage.rings.integer_ring import ZZ
21
+ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
22
+ from sage.rings.rational_field import QQ
23
+
24
+
25
+ # ---------------- The Gamma Function ------------------
26
+
27
+ def gamma__exact(n):
28
+ r"""
29
+ Evaluates the exact value of the `\Gamma` function at an integer or
30
+ half-integer argument.
31
+
32
+ EXAMPLES::
33
+
34
+ sage: gamma__exact(4)
35
+ 6
36
+ sage: gamma__exact(3)
37
+ 2
38
+ sage: gamma__exact(2)
39
+ 1
40
+ sage: gamma__exact(1)
41
+ 1
42
+
43
+ sage: # needs sage.symbolic
44
+ sage: gamma__exact(1/2)
45
+ sqrt(pi)
46
+ sage: gamma__exact(3/2)
47
+ 1/2*sqrt(pi)
48
+ sage: gamma__exact(5/2)
49
+ 3/4*sqrt(pi)
50
+ sage: gamma__exact(7/2)
51
+ 15/8*sqrt(pi)
52
+
53
+ sage: # needs sage.symbolic
54
+ sage: gamma__exact(-1/2)
55
+ -2*sqrt(pi)
56
+ sage: gamma__exact(-3/2)
57
+ 4/3*sqrt(pi)
58
+ sage: gamma__exact(-5/2)
59
+ -8/15*sqrt(pi)
60
+ sage: gamma__exact(-7/2)
61
+ 16/105*sqrt(pi)
62
+
63
+ TESTS::
64
+
65
+ sage: gamma__exact(1/3)
66
+ Traceback (most recent call last):
67
+ ...
68
+ TypeError: you must give an integer or half-integer argument
69
+ """
70
+ n = QQ(n)
71
+
72
+ if denominator(n) == 1:
73
+ if n <= 0:
74
+ return infinity
75
+ return factorial(n - 1)
76
+
77
+ if denominator(n) == 2:
78
+ # now n = 1/2 + an integer
79
+ from sage.misc.functional import sqrt
80
+ from sage.symbolic.constants import pi
81
+
82
+ ans = QQ.one()
83
+ while n != QQ((1, 2)):
84
+ if n < 0:
85
+ ans /= n
86
+ n += 1
87
+ else:
88
+ n += -1
89
+ ans *= n
90
+
91
+ ans *= sqrt(pi)
92
+ return ans
93
+
94
+ raise TypeError("you must give an integer or half-integer argument")
95
+
96
+
97
+ # ------------- The Riemann Zeta Function --------------
98
+
99
+ def zeta__exact(n):
100
+ r"""
101
+ Return the exact value of the Riemann Zeta function.
102
+
103
+ The argument must be a critical value, namely either positive even
104
+ or negative odd.
105
+
106
+ See for example [Iwa1972]_, p13, Special value of `\zeta(2k)`
107
+
108
+ EXAMPLES:
109
+
110
+ Let us test the accuracy for negative special values::
111
+
112
+ sage: RR = RealField(100)
113
+ sage: for i in range(1,10): # needs sage.symbolic
114
+ ....: print("zeta({}): {}".format(1 - 2*i,
115
+ ....: RR(zeta__exact(1-2*i)) - zeta(RR(1-2*i))))
116
+ zeta(-1): 0.00000000000000000000000000000
117
+ zeta(-3): 0.00000000000000000000000000000
118
+ zeta(-5): 0.00000000000000000000000000000
119
+ zeta(-7): 0.00000000000000000000000000000
120
+ zeta(-9): 0.00000000000000000000000000000
121
+ zeta(-11): 0.00000000000000000000000000000
122
+ zeta(-13): 0.00000000000000000000000000000
123
+ zeta(-15): 0.00000000000000000000000000000
124
+ zeta(-17): 0.00000000000000000000000000000
125
+
126
+ Let us test the accuracy for positive special values::
127
+
128
+ sage: all(abs(RR(zeta__exact(2*i)) - zeta(RR(2*i))) < 10**(-28) # needs sage.symbolic
129
+ ....: for i in range(1,10))
130
+ True
131
+
132
+ TESTS::
133
+
134
+ sage: zeta__exact(4) # needs sage.symbolic
135
+ 1/90*pi^4
136
+ sage: zeta__exact(-3) # needs sage.sage.libs.flint
137
+ 1/120
138
+ sage: zeta__exact(0) # needs sage.sage.libs.flint
139
+ -1/2
140
+ sage: zeta__exact(5)
141
+ Traceback (most recent call last):
142
+ ...
143
+ TypeError: n must be a critical value (i.e. even > 0 or odd < 0)
144
+
145
+ REFERENCES:
146
+
147
+ - [Iwa1972]_
148
+ - [IR1990]_
149
+ - [Was1997]_
150
+ """
151
+ if n < 0:
152
+ return bernoulli(1-n)/(n-1)
153
+ elif n > 1:
154
+ if (n % 2 == 0):
155
+ from sage.symbolic.constants import pi
156
+
157
+ return ZZ(-1)**(n//2 + 1) * ZZ(2)**(n-1) * pi**n * bernoulli(n) / factorial(n)
158
+ else:
159
+ raise TypeError("n must be a critical value (i.e. even > 0 or odd < 0)")
160
+ elif n == 1:
161
+ return infinity
162
+ elif n == 0:
163
+ return QQ((-1, 2))
164
+
165
+
166
+ # ---------- Dirichlet L-functions with quadratic characters ----------
167
+
168
+ def QuadraticBernoulliNumber(k, d):
169
+ r"""
170
+ Compute `k`-th Bernoulli number for the primitive
171
+ quadratic character associated to `\chi(x) = \left(\frac{d}{x}\right)`.
172
+
173
+ EXAMPLES:
174
+
175
+ Let us create a list of some odd negative fundamental discriminants::
176
+
177
+ sage: test_set = [d for d in srange(-163, -3, 4) # needs sage.libs.pari
178
+ ....: if d.is_fundamental_discriminant()]
179
+
180
+ In general, we have `B_{1, \chi_d} = -2 h/w` for odd negative fundamental
181
+ discriminants::
182
+
183
+ sage: all(QuadraticBernoulliNumber(1, d) # needs sage.libs.pari
184
+ ....: == -len(BinaryQF_reduced_representatives(d))
185
+ ....: for d in test_set)
186
+ True
187
+
188
+ REFERENCES:
189
+
190
+ - [Iwa1972]_, pp 7-16.
191
+ """
192
+ from sage.combinat.combinat import bernoulli_polynomial
193
+
194
+ # Ensure the character is primitive
195
+ d1 = fundamental_discriminant(d)
196
+ f = abs(d1)
197
+
198
+ # Make the (usual) k-th Bernoulli polynomial
199
+ x = PolynomialRing(QQ, 'x').gen()
200
+ bp = bernoulli_polynomial(x, k)
201
+
202
+ # Make the k-th quadratic Bernoulli number
203
+ total = sum([kronecker_symbol(d1, i) * bp(i / f) for i in range(f)])
204
+ total *= f**(k - 1)
205
+
206
+ return total
207
+
208
+
209
+ def quadratic_L_function__exact(n, d):
210
+ r"""
211
+ Return the exact value of a quadratic twist of the Riemann Zeta function
212
+ by `\chi_d(x) = \left(\frac{d}{x}\right)`.
213
+
214
+ The input `n` must be a critical value.
215
+
216
+ EXAMPLES::
217
+
218
+ sage: quadratic_L_function__exact(1, -4) # needs sage.libs.pari sage.symbolic
219
+ 1/4*pi
220
+ sage: quadratic_L_function__exact(-4, -4) # needs sage.libs.flint sage.libs.pari
221
+ 5/2
222
+ sage: quadratic_L_function__exact(2, 1) # needs sage.libs.pari sage.symbolic
223
+ 1/6*pi^2
224
+
225
+ TESTS::
226
+
227
+ sage: quadratic_L_function__exact(2, -4) # needs sage.libs.pari
228
+ Traceback (most recent call last):
229
+ ...
230
+ TypeError: n must be a critical value (i.e. odd > 0 or even <= 0)
231
+
232
+ REFERENCES:
233
+
234
+ - [Iwa1972]_, pp 16-17, Special values of `L(1-n, \chi)` and `L(n, \chi)`
235
+ - [IR1990]_
236
+ - [Was1997]_
237
+ """
238
+ if n <= 0:
239
+ return QuadraticBernoulliNumber(1-n, d)/(n-1)
240
+ elif n >= 1:
241
+ # Compute the kind of critical values (p10)
242
+ if kronecker_symbol(fundamental_discriminant(d), -1) == 1:
243
+ delta = 0
244
+ else:
245
+ delta = 1
246
+
247
+ # Compute the positive special values (p17)
248
+ if ((n - delta) % 2 == 0):
249
+ from sage.misc.functional import sqrt
250
+ from sage.symbolic.constants import I, pi
251
+ from sage.symbolic.ring import SR
252
+
253
+ f = abs(fundamental_discriminant(d))
254
+ if delta == 0:
255
+ GS = sqrt(f)
256
+ else:
257
+ GS = I * sqrt(f)
258
+ ans = SR(ZZ(-1)**(1+(n-delta)/2))
259
+ ans *= (2*pi/f)**n
260
+ ans *= GS # Evaluate the Gauss sum here! =0
261
+ ans *= QQ.one()/(2 * I**delta)
262
+ ans *= QuadraticBernoulliNumber(n, d)/factorial(n)
263
+ return ans
264
+ else:
265
+ if delta == 0:
266
+ raise TypeError("n must be a critical value (i.e. even > 0 or odd < 0)")
267
+ if delta == 1:
268
+ raise TypeError("n must be a critical value (i.e. odd > 0 or even <= 0)")
269
+
270
+
271
+ def quadratic_L_function__numerical(n, d, num_terms=1000):
272
+ """
273
+ Evaluate the Dirichlet `L`-function (for quadratic character) numerically
274
+ (in a very naive way).
275
+
276
+ EXAMPLES:
277
+
278
+ First, let us test several values for a given character::
279
+
280
+ sage: RR = RealField(100)
281
+ sage: for i in range(5): # needs sage.symbolic
282
+ ....: print("L({}, (-4/.)): {}".format(1+2*i,
283
+ ....: RR(quadratic_L_function__exact(1+2*i, -4))
284
+ ....: - quadratic_L_function__numerical(RR(1+2*i), -4, 10000)))
285
+ L(1, (-4/.)): 0.000049999999500000024999996962707
286
+ L(3, (-4/.)): 4.99999970000003...e-13
287
+ L(5, (-4/.)): 4.99999922759382...e-21
288
+ L(7, (-4/.)): ...e-29
289
+ L(9, (-4/.)): ...e-29
290
+
291
+ This procedure fails for negative special values, as the Dirichlet
292
+ series does not converge here::
293
+
294
+ sage: quadratic_L_function__numerical(-3, -4, 10000)
295
+ Traceback (most recent call last):
296
+ ...
297
+ ValueError: the Dirichlet series does not converge here
298
+
299
+ Test for several characters that the result agrees with the exact
300
+ value, to a given accuracy ::
301
+
302
+ sage: for d in range(-20,0): # long time (2s on sage.math 2014), needs sage.symbolic
303
+ ....: if abs(RR(quadratic_L_function__numerical(1, d, 10000)
304
+ ....: - quadratic_L_function__exact(1, d))) > 0.001:
305
+ ....: print("We have a problem at d = {}: exact = {}, numerical = {}".format(d,
306
+ ....: RR(quadratic_L_function__exact(1, d)),
307
+ ....: RR(quadratic_L_function__numerical(1, d))))
308
+ """
309
+ # Set the correct precision if it is given (for n).
310
+ if isinstance(n.parent(), sage.rings.abc.RealField):
311
+ R = n.parent()
312
+ else:
313
+ from sage.rings.real_mpfr import RealField
314
+ R = RealField()
315
+
316
+ if n < 0:
317
+ raise ValueError('the Dirichlet series does not converge here')
318
+
319
+ d1 = fundamental_discriminant(d)
320
+ ans = R.zero()
321
+ for i in range(1, num_terms):
322
+ ans += R(kronecker_symbol(d1, i) / R(i)**n)
323
+ return ans
@@ -0,0 +1,15 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+
3
+ from sage.rings.number_field.all__sagemath_pari import *
4
+
5
+ # Pseudo-ring of PARI objects.
6
+ from sage.rings.pari_ring import PariRing, Pari
7
+
8
+ # p-adic field
9
+ from sage.rings.padics.all__sagemath_pari import *
10
+
11
+ # valuations
12
+ from sage.rings.valuation.all import *
13
+
14
+ # Tate algebras
15
+ from sage.rings.tate_algebra import TateAlgebra
@@ -0,0 +1,80 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.libs.pari
3
+ r"""
4
+ Integer factorization using PARI
5
+
6
+ AUTHORS:
7
+
8
+ - Jeroen Demeyer (2015)
9
+ """
10
+
11
+ #*****************************************************************************
12
+ # Copyright (C) 2015 Jeroen Demeyer
13
+ #
14
+ # Distributed under the terms of the GNU General Public License (GPL)
15
+ # as published by the Free Software Foundation; either version 2 of
16
+ # the License, or (at your option) any later version.
17
+ # http://www.gnu.org/licenses/
18
+ #*****************************************************************************
19
+
20
+ from sage.libs.pari import pari
21
+ from sage.rings.integer cimport Integer
22
+
23
+
24
+ def factor_using_pari(n, int_=False, debug_level=0, proof=None):
25
+ r"""
26
+ Factor this integer using PARI.
27
+
28
+ This function returns a list of pairs, not a :class:`Factorization`
29
+ object. The first element of each pair is the factor, of type
30
+ ``Integer`` if ``int_`` is ``False`` or ``int`` otherwise,
31
+ the second element is the positive exponent, of type ``int``.
32
+
33
+ INPUT:
34
+
35
+ - ``int_`` -- (default: ``False``), whether the factors are
36
+ of type ``int`` instead of ``Integer``
37
+
38
+ - ``debug_level`` -- (default: 0), debug level of the call
39
+ to PARI
40
+
41
+ - ``proof`` -- (default: ``None``), whether the factors are
42
+ required to be proven prime; if ``None``, the global default
43
+ is used
44
+
45
+ OUTPUT: list of pairs
46
+
47
+ EXAMPLES::
48
+
49
+ sage: factor(-2**72 + 3, algorithm='pari') # indirect doctest
50
+ -1 * 83 * 131 * 294971519 * 1472414939
51
+
52
+ Check that PARI's debug level is properly reset (:issue:`18792`)::
53
+
54
+ sage: from sage.doctest.util import ensure_interruptible_after
55
+ sage: with ensure_interruptible_after(0.5): factor(2^1000 - 1, verbose=5)
56
+ ...
57
+ doctest:warning...
58
+ RuntimeWarning: cypari2 leaked ... bytes on the PARI stack
59
+ sage: pari.get_debug_level()
60
+ 0
61
+ """
62
+ if proof is None:
63
+ from sage.structure.proof.proof import get_flag
64
+ proof = get_flag(proof, "arithmetic")
65
+
66
+ prev = pari.get_debug_level()
67
+
68
+ cdef Py_ssize_t i
69
+ try:
70
+ if prev != debug_level:
71
+ pari.set_debug_level(debug_level)
72
+
73
+ p, e = n.__pari__().factor(proof=proof)
74
+ if int_:
75
+ return [(int(p[i]), int(e[i])) for i in range(len(p))]
76
+ else:
77
+ return [(Integer(p[i]), int(e[i])) for i in range(len(p))]
78
+ finally:
79
+ if prev != debug_level:
80
+ pari.set_debug_level(prev)
@@ -0,0 +1 @@
1
+ # sage_setup: distribution = sagemath-pari
@@ -0,0 +1,91 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # distutils: extra_compile_args = GIVARO_CFLAGS -std=c++17
3
+ # distutils: include_dirs = GIVARO_INCDIR
4
+
5
+ from libcpp.vector cimport vector
6
+ ctypedef vector[int] intvec
7
+
8
+ from libc.stdint cimport int64_t
9
+
10
+ from sage.rings.finite_rings.element_base cimport FinitePolyExtElement, Cache_base
11
+ from sage.structure.parent cimport Parent
12
+
13
+
14
+ cdef extern from "givaro/givconfig.h":
15
+ pass
16
+
17
+ cdef extern from "givaro/givrandom.h":
18
+ ctypedef struct GivRandom "Givaro::GivRandom":
19
+ pass
20
+
21
+ GivRandom GivRandomSeeded "Givaro::GivRandom"(unsigned long seed)
22
+
23
+ cdef extern from "givaro/gfq.h":
24
+ cdef cppclass GivaroGfq "Givaro::GFqDom<int>":
25
+ # attributes
26
+ unsigned int one
27
+ unsigned int zero
28
+
29
+ # methods
30
+ int mul(int r, int a, int b)
31
+ int add(int r, int a, int b)
32
+ int sub(int r, int a, int b)
33
+ int div(int r, int a, int b)
34
+ int inv(int r, int x)
35
+ int neg(int r, int x)
36
+ int mulin(int a, int b)
37
+ unsigned int characteristic()
38
+ unsigned int cardinality()
39
+ int exponent()
40
+ int random(GivRandom gen, int res)
41
+ int initi "init"(int& res, int64_t e)
42
+ int initd "init"(int& res, double e)
43
+ int indeterminate()
44
+ int64_t convert(int64_t& r, int p)
45
+ int read(int& r, int p)
46
+ int axpyin(int r, int a, int x)
47
+ int axpy(int r, int a, int b, int c)
48
+ int axmy(int r, int a, int b, int c)
49
+ int maxpy(int r, int a, int b, int c)
50
+ bint isZero(int e)
51
+ bint isOne(int e)
52
+ bint isunit(int e)
53
+
54
+ GivaroGfq *gfq_factorypk "new Givaro::GFqDom<int>" (unsigned int p, unsigned int k)
55
+ GivaroGfq *gfq_factorypkp "new Givaro::GFqDom<int>" (unsigned int p, unsigned int k, intvec poly)
56
+ GivaroGfq *gfq_factorycopy "new Givaro::GFqDom<int>"(GivaroGfq orig)
57
+ GivaroGfq gfq_deref "*"(GivaroGfq *orig)
58
+ void delete "delete "(void *o)
59
+ int gfq_element_factory "Givaro::GFqDom<int>::Element"()
60
+
61
+
62
+ cdef class FiniteField_givaroElement(FinitePolyExtElement):
63
+ cdef int element
64
+ cdef Cache_givaro _cache
65
+ cdef object _multiplicative_order
66
+ cdef FiniteField_givaroElement _new_c(self, int value)
67
+
68
+ cdef class Cache_givaro(Cache_base):
69
+ cdef GivaroGfq *objectptr # C++ object
70
+ cdef public object _array
71
+ cdef FiniteField_givaroElement _zero_element
72
+ cdef FiniteField_givaroElement _one_element
73
+ cdef public int repr
74
+ cdef bint _has_array
75
+ cdef bint _is_conway
76
+ cdef Parent parent
77
+ cdef gen_array(self)
78
+ cpdef int exponent(self) noexcept
79
+ cpdef int order_c(self) noexcept
80
+ cpdef int characteristic(self) noexcept
81
+ cpdef FiniteField_givaroElement gen(self)
82
+ cpdef FiniteField_givaroElement element_from_data(self, e)
83
+ cdef FiniteField_givaroElement _new_c(self, int value)
84
+ cpdef int int_to_log(self, int i) except -1
85
+ cpdef int log_to_int(self, int i) except -1
86
+
87
+ cdef class FiniteField_givaro_iterator:
88
+ cdef int iterator
89
+ cdef Cache_givaro _cache
90
+
91
+ cdef FiniteField_givaroElement make_FiniteField_givaroElement(Cache_givaro cache, int x)