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,306 @@
1
+ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
2
+ \\ Copyright (C) 2014 Denis Simon
3
+ \\
4
+ \\ Distributed under the terms of the GNU General Public License (GPL)
5
+ \\
6
+ \\ This code is distributed in the hope that it will be useful,
7
+ \\ but WITHOUT ANY WARRANTY; without even the implied warranty of
8
+ \\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9
+ \\ General Public License for more details.
10
+ \\
11
+ \\ The full text of the GPL is available at:
12
+ \\
13
+ \\ http://www.gnu.org/licenses/
14
+ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
15
+
16
+ /*
17
+ Auteur :
18
+ Denis SIMON -> simon@math.unicaen.fr
19
+ adresse du fichier :
20
+ www.math.unicaen.fr/~simon/resultant3.gp
21
+
22
+ *********************************************
23
+ * VERSION 13/01/2014 *
24
+ *********************************************
25
+
26
+ Ce fichier gp contient des fonctions pour calculer
27
+ le resultant de trois polynomes p1, p2, p3 homogenes
28
+ en trois variables (toujours x,y,z), ainsi que
29
+ le discriminant d'un polynome homogene en ces trois variables.
30
+ L'algorithme utilise est celui du sous-resultant.
31
+
32
+
33
+ exemple d'utilisation :
34
+
35
+ ? p1=x^2-3*z^2+y*z;p2=x-y+15*z;p3=y^2*x+z^3-x*y*z+x^2*z;
36
+ ? resultant3([p1,p2,p3])
37
+ %2 = 521784
38
+ ? discriminant3(p3)
39
+ %3 = -63
40
+
41
+ la fonction hom sert a rendre homogene un polynome en x et y:
42
+ ? ell=y^2-y-x^3+x^2;
43
+ ? discriminant3(hom(ell))
44
+ %5 = -11
45
+
46
+ */
47
+
48
+ global(DEBUGLEVEL_res):small;
49
+
50
+ DEBUGLEVEL_res = 0; \\ si DEBUGLEVEL_res = 1 : afficher des resultats intermediaires.
51
+
52
+ \\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
53
+ \\ SCRIPT \\
54
+ \\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
55
+
56
+ {default_res(
57
+ DEBUGLEVEL_res_val:small = 0
58
+ ) =
59
+
60
+ DEBUGLEVEL_res = DEBUGLEVEL_res_val;
61
+ print(" DEBUGLEVEL_res = ",DEBUGLEVEL_res);
62
+ }
63
+ {hom(p) =
64
+ p = substvec(p,['x,'y],['x/'z,'y/'z]);
65
+ p /= 'z^valuation(p,'z);
66
+ return(p);
67
+ }
68
+ {degreetot(p) =
69
+ \\ degre d'un polynome homogene.
70
+ my(auxdeg,auxp);
71
+
72
+ auxdeg = poldegree(p,'x); auxp = pollead(p,'x);
73
+ auxdeg += poldegree(auxp,'y); auxp = pollead(auxp,'y);
74
+ auxdeg += poldegree(auxp,'z); auxp = pollead(auxp,'z);
75
+ return(auxdeg);
76
+ }
77
+ {ex( vec, i, j) =
78
+ my(aux);
79
+ aux = vec[i]; vec[i] = vec[j]; vec[j] = aux;
80
+ return(vec);
81
+ }
82
+ {mycontent(p) =
83
+ my(vz,co,dco);
84
+ vz = valuation(p,'z);
85
+ p = subst(p,'z,1);
86
+ co = content(p);
87
+ dco = poldegree(co,'y);
88
+ if( dco, co = subst(co,'y,'y/'z)*'z^dco);
89
+ return(co*'z^vz);
90
+ }
91
+ {myresultant2( p, q) =
92
+ my(dp,dq,valp,valq,auxr,auxp,auxq,res);
93
+
94
+ if( p==0 || q==0, return(0));
95
+ dp = degreetot(p); valp = valuation(p,'y);
96
+ dq = degreetot(q); valq = valuation(q,'y);
97
+ if( valp && valq, return(0));
98
+ auxr = 1;
99
+ if( valp,
100
+ if(dq%2 && valp%2, auxr = -1);
101
+ auxr *= pollead(q,'x)^valp
102
+ );
103
+ if( valq,
104
+ auxr = pollead(p,'x)^valq
105
+ );
106
+ auxp = subst(p,'y,1);
107
+ auxq = subst(q,'y,1);
108
+ res = auxr*polresultant(auxp,auxq,'x);
109
+ return(res);
110
+ }
111
+ {resultantcomp(vp=['x,'y,'z]) =
112
+ \\ les vp[i] sont des pol homogenes en x,y et z.
113
+ \\ vp[3] ne depend que de y et z.
114
+ my(p,q,rt,dp,dq,drt,vy,vz,lrt,lp,res,aux,res2,dres2);
115
+
116
+ p = vp[1]; q = vp[2]; rt = vp[3];
117
+ if( p==0 || q==0 || rt==0, return(0));
118
+ dp = degreetot(p); dq = degreetot(q); drt = degreetot(rt);
119
+ if( drt == 0, return(rt^(dp*dq)));
120
+ vy = valuation(rt,'y); vz = valuation(rt,'z);
121
+ rt = subst(rt,'y,1); if( vz, rt /= 'z^vz);
122
+ lrt = polcoeff(rt,drt,'z); lp = polcoeff(p,dp,'x);
123
+ res = 1;
124
+ if( lp == 0,
125
+ aux = p; p = q; q = aux;
126
+ aux = dp; dp = dq; dq = aux;
127
+ if( dp%2 && dq%2 && drt%2, res = -res);
128
+ lp = polcoeff(p,dp,'x);
129
+ if( lp == 0, return(0))
130
+ );
131
+ if( vy,
132
+ if( dp%2 && dq%2, res2 = -1, res2 = 1);
133
+ res2 *= myresultant2(subst(subst(p,'y,0),'z,'y),subst(subst(q,'y,0),'z,'y));
134
+ res2 *= myresultant2(subst(subst(p,'y,0),'z,'y),subst(subst(q,'y,0),'z,'y));
135
+ if( res2 == 0, return(0));
136
+ res *= res2^vy
137
+ );
138
+ if( vz,
139
+ res2 = myresultant2(subst(p,'z,0),subst(q,'z,0));
140
+ if( res2 == 0, return(0));
141
+ res *= res2^vz
142
+ );
143
+ drt -= vy+vz;
144
+ if( drt == 0, return(res*rt^(dp*dq)));
145
+ res2 = polresultant(subst(p,'y,1),subst(q,'y,1),'x);
146
+ dres2 = poldegree(res2,'z);
147
+ res2 = polresultant(rt,res2,'z);
148
+ res *= res2;
149
+ if( dq != poldegree(subst(q,'y,1),'x),
150
+ res *= lp^(drt*(dq-poldegree(subst(q,'y,1),'x))));
151
+ if( dres2 != dp*dq,
152
+ res *= pollead(rt,'z)^(dp*dq-dres2));
153
+ return(res);
154
+ }
155
+ {resultant3(vp=['x,'y,'z]) =
156
+ \\ resultant de 3 polynomes homogenes en x,y,z.
157
+ \\ on travaille sur la variable x.
158
+ my(vdt,vdx,prodd,s,denom,nume,lp,p0,q0,r0,dd,cq,rm,res,delta);
159
+
160
+ for( i = 1, 3,
161
+ if( vp[i] == 0, return(0)));
162
+ vdt = vector(3,i,degreetot(vp[i]));
163
+ vdx = vector(3,i,poldegree(vp[i],'x));
164
+ if( vecmin(vdt-vdx), return(0));
165
+ \\ en effet, dans ce cas, les polynomes sont dans l'ideal <y,z>
166
+
167
+ prodd = prod( i = 1, 3, vdt[i]);
168
+ s = 1;
169
+ denom = 1; nume = 1;
170
+
171
+ \\ on echange pour que vdx[1] >= vdx[2] >= vdx[3]
172
+ if(vdx[1]<vdx[2] || (vdx[1]==vdx[2] && vdt[1]<vdt[2]),
173
+ vp = ex(vp,1,2);
174
+ vdx = ex(vdx,1,2);
175
+ vdt = ex(vdt,1,2);
176
+ if( prodd%2, s *= -1)
177
+ );
178
+ if(vdx[1]<vdx[3] || (vdx[1]==vdx[3] && vdt[1]<vdt[3]),
179
+ vp = ex(vp,1,3);
180
+ vdx = ex(vdx,1,3);
181
+ vdt = ex(vdt,1,3);
182
+ if( prodd%2, s *= -1)
183
+ );
184
+ if(vdx[2]<vdx[3] || (vdx[2]==vdx[3] && vdt[2]<vdt[3]),
185
+ vp = ex(vp,2,3);
186
+ vdx = ex(vdx,2,3);
187
+ vdt = ex(vdt,2,3);
188
+ if( prodd%2, s *= -1)
189
+ );
190
+
191
+ \\ cas particulier ou vp[3] est constant
192
+ if( vdt[3]==0,
193
+ return(vp[3]^(vdt[1]*vdt[2])*s));
194
+
195
+ \\ on fait un echange pour que vp[1] contienne le monome x^vdt[1]
196
+ lp = polcoeff(vp[1],vdt[1],'x);
197
+ if( lp == 0,
198
+ lp = polcoeff(vp[2],vdt[2],'x);
199
+ if( lp == 0,
200
+ lp = polcoeff(vp[3],vdt[3],'x);
201
+ if( lp == 0, return(0));
202
+ vp = ex(vp,1,3);
203
+ vdx = ex(vdx,1,3);
204
+ vdt = ex(vdt,1,3);
205
+ if( prodd%2, s *= -1)
206
+ , vp = ex(vp,1,2);
207
+ vdx = ex(vdx,1,2);
208
+ vdt = ex(vdt,1,2);
209
+ if( prodd%2, s *= -1)
210
+ ));
211
+
212
+ \\ on supprime de vp[1] les puissances de x
213
+ p0 = polcoeff(vp[1],0,'x);
214
+ q0 = polcoeff(vp[2],0,'x);
215
+ r0 = polcoeff(vp[3],0,'x);
216
+ while( p0 == 0,
217
+ vp[1] /= 'x;
218
+ vdx[1] -= 1;
219
+ vdt[1] -= 1;
220
+ p0 = polcoeff(vp[1],0,'x);
221
+ nume *= myresultant2(subst(subst(q0,'y,'x),'z,'y),subst(subst(r0,'y,'x),'z,'y))
222
+ );
223
+
224
+ if( nume == 0, return(0));
225
+ dd = vecmax(vdx)+1;
226
+ while( vdx[3],
227
+
228
+ if(DEBUGLEVEL_res, print("vp = "vp));
229
+ if(DEBUGLEVEL_res, print("vdx = "vdx));
230
+ if(DEBUGLEVEL_res, print("vdt = "vdt));
231
+ if(DEBUGLEVEL_res, print([nume,denom]));
232
+
233
+ if( denom == 0, error("denom = 0"));
234
+ if( nume == 0, return(0));
235
+ for( i = 2, 3, if(vp[i] == 0, return(0)));
236
+
237
+ q0 = polcoeff(vp[2],0,'x);
238
+ if( q0 == 0, \\ si vp[2] est divisible par x
239
+ vp[2] /= 'x;
240
+ vdx[2] -= 1;
241
+ vdt[2]-=1;
242
+ nume *= myresultant2(subst(subst(r0,'y,'x),'z,'y),subst(subst(p0,'y,'x),'z,'y));
243
+ next
244
+ );
245
+ r0 = polcoeff(vp[3],0,'x);
246
+ if( r0 == 0, \\ si vp[3] est divisible par x
247
+ vp[3] /= 'x;
248
+ vdx[3] -= 1;
249
+ vdt[3] -= 1;
250
+ nume *= myresultant2(subst(subst(p0,'y,'x),'z,'y),subst(subst(q0,'y,'x),'z,'y));
251
+ next
252
+ );
253
+
254
+ \\ on enleve le contenu
255
+ cq = mycontent(vp[2]);
256
+ if( cq != 1,
257
+ nume *= resultantcomp([vp[3],vp[1],cq]);
258
+ vp[2] /= cq;
259
+ vdt[2] -= poldegree(cq);
260
+ next
261
+ );
262
+ cq = mycontent(vp[3]);
263
+ if( cq != 1,
264
+ nume *= resultantcomp([vp[1],vp[2],cq]);
265
+ vp[3] /= cq;
266
+ vdt[3] -= poldegree(cq);
267
+ next
268
+ );
269
+
270
+ rm = pollead(vp[3],'x); \\ le coefficient dominant de vp[3].
271
+ res = resultantcomp([vp[1],vp[3]-rm*'x^vdx[3],rm]);
272
+ if( res == 0, error("sorry, case not implemented")); \\ ce cas est-il possible ?
273
+ if(vdt[1]%2 && vdt[3]%2 && degreetot(rm)%2, res *= -1);
274
+
275
+ \\ on baisse le degre de vp[2] en retranchant des multiples de vp[3].
276
+ while( vdx[3] <= vdx[2],
277
+ delta = vdx[2]-vdx[3];
278
+ lp = pollead(vp[2],'x);
279
+ vp[2] = simplify(rm*vp[2]-lp*vp[3]*'x^delta);
280
+ vdx[2] = poldegree(vp[2],'x);
281
+ denom *= res
282
+ );
283
+ vdt[2] = degreetot(vp[2]);
284
+
285
+ prodd = prod(i=1,3,vdt[i]);
286
+ vp = ex(vp,2,3);
287
+ vdx = ex(vdx,2,3);
288
+ vdt = ex(vdt,2,3);
289
+ if( prodd%2, s *= -1);
290
+ );
291
+
292
+ vp[3] = polcoeff(vp[3],0,'x);
293
+ nume *= resultantcomp(vp);
294
+ if(DEBUGLEVEL_res, print([nume,denom]));
295
+ return(simplify(s*nume/denom));
296
+ }
297
+ {discriminant3(p)=
298
+ \\ discriminant d'un pol homogene en 3 variables x, y et z.
299
+ my(dp,normal,re);
300
+
301
+ dp = degreetot(p);
302
+ normal = dp^(dp^2-3*dp+3)*(-1)^(dp*(dp-1)/2);
303
+ re = resultant3([deriv(p,'x),deriv(p,'y),deriv(p,'z)]);
304
+ if( re == 'x, return(0));
305
+ return(re/normal);
306
+ }
@@ -0,0 +1,3 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+
3
+ from sage.groups.pari_group import PariGroup
@@ -0,0 +1,175 @@
1
+ # sage_setup: distribution = sagemath-pari
2
+ # sage.doctest: needs sage.groups sage.libs.pari
3
+ r"""
4
+ PARI Groups
5
+
6
+ See :pari:`polgalois` for the PARI documentation of these objects.
7
+ """
8
+
9
+ from sage.libs.pari import pari
10
+ from sage.misc.lazy_import import lazy_import
11
+ from sage.rings.integer import Integer
12
+
13
+ lazy_import('sage.groups.perm_gps.permgroup_named', 'TransitiveGroup')
14
+
15
+
16
+ class PariGroup:
17
+ def __init__(self, x, degree):
18
+ """
19
+ EXAMPLES::
20
+
21
+ sage: PariGroup([6, -1, 2, "S3"], 3)
22
+ PARI group [6, -1, 2, S3] of degree 3
23
+ sage: R.<x> = PolynomialRing(QQ)
24
+ sage: f = x^4 - 17*x^3 - 2*x + 1
25
+ sage: G = f.galois_group(pari_group=True); G
26
+ PARI group [24, -1, 5, "S4"] of degree 4
27
+ """
28
+ self.__x = pari(x)
29
+ self.__degree = Integer(degree)
30
+
31
+ def __repr__(self):
32
+ """
33
+ String representation of this group.
34
+
35
+ EXAMPLES::
36
+
37
+ sage: PariGroup([6, -1, 2, "S3"], 3)
38
+ PARI group [6, -1, 2, S3] of degree 3
39
+ """
40
+ return "PARI group %s of degree %s" % (self.__x, self.__degree)
41
+
42
+ def __eq__(self, other):
43
+ """
44
+ Test equality.
45
+
46
+ EXAMPLES::
47
+
48
+ sage: R.<x> = PolynomialRing(QQ)
49
+ sage: f1 = x^4 - 17*x^3 - 2*x + 1
50
+ sage: f2 = x^3 - x - 1
51
+ sage: G1 = f1.galois_group(pari_group=True)
52
+ sage: G2 = f2.galois_group(pari_group=True)
53
+ sage: G1 == G1
54
+ True
55
+ sage: G1 == G2
56
+ False
57
+ """
58
+ return (isinstance(other, PariGroup) and
59
+ (self.__x, self.__degree) == (other.__x, other.__degree))
60
+
61
+ def __ne__(self, other):
62
+ """
63
+ Test inequality.
64
+
65
+ EXAMPLES::
66
+
67
+ sage: R.<x> = PolynomialRing(QQ)
68
+ sage: f1 = x^4 - 17*x^3 - 2*x + 1
69
+ sage: f2 = x^3 - x - 1
70
+ sage: G1 = f1.galois_group(pari_group=True)
71
+ sage: G2 = f2.galois_group(pari_group=True)
72
+ sage: G1 != G1
73
+ False
74
+ sage: G1 != G2
75
+ True
76
+ """
77
+ return not (self == other)
78
+
79
+ def __pari__(self):
80
+ """
81
+ TESTS::
82
+
83
+ sage: G = PariGroup([6, -1, 2, "S3"], 3)
84
+ sage: pari(G)
85
+ [6, -1, 2, S3]
86
+ """
87
+ return self.__x
88
+
89
+ def degree(self):
90
+ """
91
+ Return the degree of this group.
92
+
93
+ EXAMPLES::
94
+
95
+ sage: R.<x> = PolynomialRing(QQ)
96
+ sage: f1 = x^4 - 17*x^3 - 2*x + 1
97
+ sage: G1 = f1.galois_group(pari_group=True)
98
+ sage: G1.degree()
99
+ 4
100
+ """
101
+ return self.__degree
102
+
103
+ def signature(self):
104
+ """
105
+ Return 1 if contained in the alternating group, -1 otherwise.
106
+
107
+ EXAMPLES::
108
+
109
+ sage: R.<x> = QQ[]
110
+ sage: f1 = x^4 - 17*x^3 - 2*x + 1
111
+ sage: G1 = f1.galois_group(pari_group=True)
112
+ sage: G1.signature()
113
+ -1
114
+ """
115
+ return Integer(self.__x[1])
116
+
117
+ def transitive_number(self):
118
+ """
119
+ If the transitive label is nTk, return `k`.
120
+
121
+ EXAMPLES::
122
+
123
+ sage: R.<x> = QQ[]
124
+ sage: f1 = x^4 - 17*x^3 - 2*x + 1
125
+ sage: G1 = f1.galois_group(pari_group=True)
126
+ sage: G1.transitive_number()
127
+ 5
128
+ """
129
+ return Integer(self.__x[2])
130
+
131
+ def label(self):
132
+ """
133
+ Return the human readable description for this group generated by Pari.
134
+
135
+ EXAMPLES::
136
+
137
+ sage: R.<x> = QQ[]
138
+ sage: f1 = x^4 - 17*x^3 - 2*x + 1
139
+ sage: G1 = f1.galois_group(pari_group=True)
140
+ sage: G1.label()
141
+ 'S4'
142
+ """
143
+ return str(self.__x[3])
144
+
145
+ def order(self):
146
+ """
147
+ Return the order of ``self``.
148
+
149
+ EXAMPLES::
150
+
151
+ sage: R.<x> = PolynomialRing(QQ)
152
+ sage: f1 = x^4 - 17*x^3 - 2*x + 1
153
+ sage: G1 = f1.galois_group(pari_group=True)
154
+ sage: G1.order()
155
+ 24
156
+ """
157
+ return Integer(self.__x[0])
158
+
159
+ cardinality = order
160
+
161
+ def permutation_group(self):
162
+ """
163
+ Return the corresponding GAP transitive group.
164
+
165
+ EXAMPLES::
166
+
167
+ sage: R.<x> = QQ[]
168
+ sage: f = x^8 - x^5 + x^4 - x^3 + 1
169
+ sage: G = f.galois_group(pari_group=True)
170
+ sage: G.permutation_group()
171
+ Transitive group number 44 of degree 8
172
+ """
173
+ return TransitiveGroup(self.__degree, self.__x[2])
174
+
175
+ _permgroup_ = permutation_group
@@ -0,0 +1 @@
1
+ # sage_setup: distribution = sagemath-pari