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,43 @@
1
+ /*** EXAMPLE: Birch-Swinnerton-Dyer for an elliptic curve over Q ***/
2
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
3
+ /*** ***/
4
+ /*** type \rex-bsw or read("ex-bsw") at pari prompt to run this ***/
5
+
6
+ elleq = [0,0,1,-7,6]; \\ L-function of this elliptic curve over Q
7
+ points = [[1,-1],[2,-1],[0,-3]]; \\ basis of Mordell-Weil modulo torsion
8
+ \\ May change this to any other E/Q
9
+
10
+ read("computel"); \\ read the ComputeL package
11
+ \\ and set the default values
12
+ default(realprecision,20); \\ set working precision; used throughout
13
+
14
+ ellorig = ellinit(elleq);
15
+ gred = ellglobalred(ellorig);
16
+ ell = ellchangecurve(ellorig,gred[2]); \\ global minimal model
17
+
18
+ \\ initialize L-function parameters
19
+ conductor = gred[1]; \\ conductor for the exponential factor
20
+ gammaV = [0,1]; \\ list of gamma-factors
21
+ weight = 2; \\ L(s)=sgn*L(weight-s)
22
+ sgn = ellrootno(ell); \\ sign in the functional equation
23
+ a(k) = ellak(ell,k); \\ L-series coefficients a(k)
24
+
25
+ initLdata("a(k)",1); \\ initialize the vector of coefficients
26
+ \\ we won't call checkfeq(cutoff) or L(s,cutoff)
27
+ \\ so set cutoff=1, saves some coefficients
28
+
29
+ print("EXAMPLE: Birch-Swinnerton-Dyer on an elliptic curve over Q");
30
+ print(" with ",default(realprecision)," digits precision");
31
+ print("Elliptic curve : ", elleq);
32
+ print("Points : ", points);
33
+ print("Conductor = ", conductor);
34
+ print("Root number = ", sgn);
35
+ print("Mord.-Weil rnk = ", rnk = length(points));
36
+ print("Lead.term L(1) = ", lval = L(1,,rnk)/rnk!); \\ leading (order rnk)
37
+ \\ term of L(s) at s=1
38
+ print("Real period = ", om = ell.omega[1]*((ell.disc>0)+1));
39
+ print("Regulator = ", reg = matdet(ellheightmatrix(ellorig,points)));
40
+ print("Product(c_p) = ", cp = ellglobalred(ell)[3]);
41
+ print("Torsion size = ", tors = elltors(ell)[1]);
42
+ print("Analytic #Sha = ", sha = lval/om/reg/cp*tors^2);
43
+ print(" = ", round(sha),", error=",errprint(sha-round(sha)));
@@ -0,0 +1,48 @@
1
+ /*** EXAMPLE: Dirichlet L-function of a general character modulo odd P ***/
2
+ /*** (illustration of functional equations with 2 different L-functions) ***/
3
+ /*** ***/
4
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
5
+ /*** type \rex-chgen or read("ex-chgen") at pari prompt to run this ***/
6
+
7
+ read("computel"); \\ read the ComputeL package
8
+ \\ and set the default values
9
+ default(realprecision,28); \\ set working precision; used throughout
10
+
11
+ P = 37; \\ May change this to any odd prime
12
+
13
+ \\ Take the character defined by the following modulo P (has order P-1)
14
+ \\ (primitive root) -> e^(2 Pi I/(P-1))
15
+ \\ a(n) = if(n%P,exp(2*Pi*I/(P-1)*znlog(n,prim)),0);
16
+ \\ znlog needs pari 2.1, the following works with earlier versions
17
+
18
+ prim = znprimroot(P);
19
+ avec = vector(P,k,0);
20
+ for (k=0,P-1,avec[lift(prim^k)+1]=exp(2*Pi*I*k/(P-1)));
21
+ a(n) = avec[n%P+1];
22
+
23
+ \\ initialize L-function parameters
24
+ conductor = P; \\ exponential factor
25
+ gammaV = [1]; \\ [0] for even, [1] for odd
26
+ weight = 1; \\ L(s)=sgn*L(weight-s)
27
+ sgn = X; \\ unknown, to be solved from functional equation
28
+
29
+ initLdata("a(k)",,"conj(a(k))"); \\ initialize L-series coefficients a(k)
30
+ \\ and the ones of the dual motive
31
+
32
+ sgneq = Vec(checkfeq()); \\ checkfeq() returns c1+X*c2, should be 0
33
+ sgn = -sgneq[2]/sgneq[1]; \\ hence solve for the sign
34
+
35
+ print("EXAMPLE: L(s)=L(Chi,s), Chi=character of order P-1 modulo P");
36
+ print(" with ",default(realprecision)," digits precision");
37
+ print(" take P=",P);
38
+ print("Chi(",lift(prim),") = exp(2*Pi*I/",P-1,\
39
+ ") defines the character (mod ",P,")");
40
+ print("Parity = ", if(gammaV[1],"odd","even"));
41
+ print("Sign we will try to solve from the functional equation");
42
+ print(" = ", sgn);
43
+ print("|sign| = ", abs(sgn));
44
+ print("Verifying functional equation. Error: ",errprint(checkfeq(1.1)));
45
+ print("L(Chi,2) = ",L(2));
46
+ print(" (check) = ",L(2,1.1));
47
+ print("L(Chi,I) = ",L(I));
48
+ print(" (check) = ",L(I,1.1));
@@ -0,0 +1,37 @@
1
+ /*** EXAMPLE: Dirichlet L-function of a quadratic character modulo odd P ***/
2
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
3
+ /*** ***/
4
+ /*** type \rex-chqua or read("ex-chqua") at pari prompt to run this ***/
5
+
6
+ read("computel"); \\ read the ComputeL package
7
+ \\ and set the default values
8
+ default(realprecision,28); \\ set working precision; used throughout
9
+
10
+ P = 37; \\ May change this to any other odd prime
11
+ \\ Chi = Legendre character modulo this P
12
+
13
+ \\ initialize L-function parameters
14
+ conductor = P; \\ exponential factor
15
+ gammaV = [P%4==3]; \\ [0] if P=1 mod 4 (even), [1] if 3 mod 4 (odd)
16
+ weight = 1; \\ L(s)=sgn*L(weight-s)
17
+ sgn = 1; \\ sign in the functional equation
18
+
19
+ a(n) = if(n%P,(-1)^((P-1)/znorder(Mod(n,P))),0);
20
+ \\ coefficients: 1 for n square mod P, -1 for non-square, 0 for n=0 mod P
21
+
22
+ initLdata("a(k)"); \\ initialize L-function parameters
23
+
24
+ zinit = zetakinit(nfinit(quadpoly(quaddisc(if(P%4==3,-P,P)))));
25
+ LPari(x) = zetak(zinit,x)/zeta(x);
26
+ \\ alternatively the same L-function is the Dedekind zeta function of
27
+ \\ the maximal order of Q(sqrt(P)) (p=1 mod 4) or Q(sqrt(-P)) (p=3 mod 4)
28
+ \\ divided by the Riemann zeta function
29
+
30
+ print("EXAMPLE: L(s)=L(Chi(P),s), Chi(P)=(Legendre) quadratic character modulo P");
31
+ print(" with ",default(realprecision)," digits precision");
32
+ print(" take P=",P);
33
+ print("Verifying functional equation. Error: ",errprint(checkfeq()));
34
+ print("L(Chi(P),2) = ",L(2));
35
+ print(" (pari) = ",LPari(2));
36
+ print("L(Chi(P),I) = ",L(I));
37
+ print(" (pari) = ",LPari(I));
@@ -0,0 +1,35 @@
1
+ /*** EXAMPLE: Modular form Delta ***/
2
+ /*** (illustration of unusual coefficient growth) ***/
3
+ /*** ***/
4
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
5
+ /*** type \rex-delta or read("ex-delta") at pari prompt to run this ***/
6
+
7
+ read("computel"); \\ read the ComputeL package
8
+ \\ and set the default values
9
+ default(realprecision,40); \\ set working precision; used throughout
10
+
11
+ \\ * Coefficients are given by Ramanujan's tau function
12
+ \\ * Re-define the default bound on the coefficients:
13
+ \\ Deligne's estimate on tau(n) is better than the default
14
+ \\ coefgrow(n)=(4n)^(11/2) (by a factor 1024),
15
+ \\ so re-defining coefgrow() improves efficiency (slightly faster)
16
+
17
+ coefgrow(n) = 2*n^(11/2);
18
+ tau(n) = (5*sigma(n,3)+7*sigma(n,5))*n/12\
19
+ -35*sum(k=1,n-1,(6*k-4*(n-k))*sigma(k,3)*sigma(n-k,5));
20
+
21
+ \\ initialize L-function parameters
22
+ conductor = 1; \\ exponential factor
23
+ gammaV = [0,1]; \\ list of gamma-factors
24
+ weight = 12; \\ L(s)=sgn*L(weight-s)
25
+ sgn = 1; \\ sign in the functional equation
26
+
27
+
28
+ initLdata("tau(k)"); \\ L-series coefficients a(k)
29
+
30
+ print("EXAMPLE: L-function associated to the modular form Delta of weight 12");
31
+ print(" coefficients = Ramanujan's tau function");
32
+ print(" with ",default(realprecision)," digits precision");
33
+ print("Verifying functional equation. Error: ",errprint(checkfeq()));
34
+ print("L(1) = ",lval = L(1));
35
+ print(" (check) = ",lval2 = L(1,1.1)," (err=",errprint(lval-lval2),")");
@@ -0,0 +1,30 @@
1
+ /*** EXAMPLE: Eisenstein series G_k, k>2 even ***/
2
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
3
+ /*** ***/
4
+ /*** type \rex-eisen or read("ex-eisen") at gp prompt to run this ***/
5
+
6
+ read("computel"); \\ read the ComputeL package
7
+ \\ and set the default values
8
+ default(realprecision,40); \\ set working precision; used throughout
9
+
10
+ K = 16; \\ Our modular form is G_K with this K
11
+ \\ may change this to any even K
12
+
13
+ conductor = 1; \\ exponential factor
14
+ gammaV = [0,1]; \\ list of gamma-factors
15
+ weight = K; \\ L(s)=sgn*L(weight-s)
16
+ sgn = (-1)^(K/2); \\ sign in the functional equation
17
+
18
+ \\ It has a simple pole in s=K
19
+ Lpoles = [K];
20
+ Lresidues = [(-1)^(K/2)*sqrt(Pi)*bernfrac(K)/K];
21
+
22
+ initLdata("sigma(k,K-1)"); \\ initialize L-series
23
+ \\ Coefficients given by the divisor function
24
+
25
+ print("EXAMPLE: L-function associated to the modular form G_",K," of weight ",K);
26
+ print(" coefficients = divisor function sigma(n,",K-1,")");
27
+ print(" with ",default(realprecision)," digits precision");
28
+ print("Verifying functional equation. Error: ",errprint(checkfeq()));
29
+ print("L(1) = ",lval = L(1));
30
+ print(" (check) = ",lval2 = L(1,1.1)," (err=",errprint(lval-lval2),")");
@@ -0,0 +1,38 @@
1
+ /*** EXAMPLE: L-function of a genus 2 curve over Q ***/
2
+ /*** v1.3, December 2013, questions to tim.dokchitser@bristol.ac.uk ***/
3
+ /*** ***/
4
+ /*** type \rex-gen2 or read("ex-gen2") at pari prompt to run this ***/
5
+
6
+
7
+ read("computel"); \\ read the ComputeL package
8
+ \\ and set the default values
9
+ default(realprecision,14); \\ set working precision; used throughout
10
+ \\ larger precision needs more coefficients
11
+
12
+ /*********** C: y^2+(x^3+x+1)y=x^5+x^4 (genus2, hyperelliptic) **********/
13
+ cond = 169; \\ conductor
14
+ sgn = 1; \\ sign in the functional equation
15
+ \\ Vector of coefficients
16
+ coef = [1,-3,-2,4,0,6,0,-3,3,0,0,-8,-5,0,0,3,3,-9,-6,0,0,0,6,6,7,15,-10,0,\
17
+ -3,0,0,-6,0,-9,0,12,15,18,10,0,-9,0,-8,0,0,-18,0,-6,-7,-21,-6,-20,-6,30,\
18
+ 0,0,12,9,12,0,-1,0,0,5,0,0,6,12,-12,0,6,-9,0,-45,-14,-24,0,-30,8,0,20,27,\
19
+ 0,0,0,24,6,0,-12,0,0,24,0,0,0,12,12,21,0,28,3,18,-20,15,0,18,-6,-40,0,0,\
20
+ -30,0,15,-36,0,-12,-15,-36,0,0,-11,3,18,0,0,0,2,9,16,0,36,0,0,-18,0,-9,\
21
+ -27,36,4,0,0,-18,0,9,0,0];
22
+ /*************************************************************************/
23
+
24
+ \\ initialize L-function parameters
25
+ conductor = cond; \\ exponential factor
26
+ gammaV = [0,0,1,1]; \\ list of gamma-factors
27
+ weight = 2; \\ L(s)=sgn*L(weight-s)
28
+ initLdata("coef[k]",-146); \\ initialize the L-series data
29
+
30
+ print("EXAMPLE: L-function of a genus 2 curve over Q");
31
+ print(" with 14 digits precision");
32
+ print("C: y^2+(x^3+x+1)y=x^5+x^4 (hyperelliptic)");
33
+ print("Conductor = ", conductor);
34
+ print("Functional eq. = ", errprint(checkfeq()));
35
+ print("L(1) = ", L(1));
36
+ print(" (check) = ", L(1,1.1));
37
+ print("L(2) = ", L(2));
38
+ print(" (check) = ", L(2,1.1));
@@ -0,0 +1,49 @@
1
+ /*** EXAMPLE: L-function of a genus 3 curve over Q ***/
2
+ /*** (illustration of precision issues when not enough coefficients) ***/
3
+ /*** ***/
4
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
5
+ /*** type \rex-gen3 or read("ex-gen3") at pari prompt to run this ***/
6
+
7
+
8
+ read("computel"); \\ read the ComputeL package
9
+ \\ and set the default values
10
+ default(realprecision,20); \\ set working precision; used throughout
11
+ \\ actually need more coefficients for this
12
+
13
+ /*** C: y^2+(x^3+x^2+x+1)y=x^7+2*x^6+2*x^5+x^4 (genus 3, hyperelliptic) ***/
14
+ conductor = 13555; \\ conductor
15
+ sgn = 1; \\ sign in the functional equation
16
+ \\ Vector of 300 coefficients
17
+ coef = [1,-1,-2,-1,-1,2,-2,1,4,1,-3,2,0,2,2,-1,8,-4,-3,1,4,3,4,-2,-3,0,-4,2,\
18
+ 2,-2,-4,1,6,-8,2,-4,3,3,0,-1,-8,-4,-4,3,-4,-4,-5,2,1,3,-16,0,13,4,3,-2,6,\
19
+ -2,7,-2,0,4,-8,-1,0,-6,6,-8,-8,-2,-7,4,-9,-3,6,3,6,0,-10,1,0,8,-2,-4,-8,4,\
20
+ -4,-3,5,4,0,-4,8,5,3,-2,2,-1,-12,3,4,16,11,0,-4,-13,-9,4,2,-3,-6,2,7,-6,\
21
+ -4,-2,0,-7,-16,2,-14,0,16,4,3,8,13,9,8,0,8,-6,6,-6,4,8,-8,8,15,-2,10,7,0,\
22
+ -4,-2,9,-2,-3,4,-6,2,-3,32,-6,4,0,-20,10,-26,-1,-8,0,10,8,-6,2,14,4,-4,8,\
23
+ -12,4,-2,4,6,3,-14,-5,5,4,-9,0,0,4,-3,-8,-24,5,8,-3,6,2,7,-2,0,-1,-13,12,\
24
+ -9,-3,-12,-4,-4,16,8,-11,16,0,9,4,-11,-13,14,9,4,-4,8,-2,18,-3,0,6,-5,-2,\
25
+ -12,-7,13,-6,0,4,-12,2,17,0,5,-7,20,16,26,-2,-6,14,-2,0,-1,-16,0,-4,4,-3,\
26
+ -1,8,-12,-13,16,-1,16,-8,-6,0,8,-8,13,6,-13,-6,-10,-6,7,-4,-2,-8,0,8,9,8,\
27
+ 8,-15,-16,2,-10,-10,16,7,-6,0,16,4,24,2,-4,9,-17,2,-7,3,12,-4,0,-6\
28
+ ];
29
+ /*************************************************************************/
30
+
31
+ \\ initialize other L-function parameters
32
+ gammaV = [0,0,0,1,1,1]; \\ list of gamma-factors
33
+ weight = 2; \\ L(s)=sgn*L(weight-s)
34
+ initLdata("coef[k]",-300); \\ initialize the L-series data
35
+
36
+ print("EXAMPLE: L-function of a genus 3 curve over Q");
37
+ print(" with ",default(realprecision)," digits precision");
38
+ print("C: y^2+(x^3+x^2+x+1)y=x^7+2*x^6+2*x^5+x^4 (hyperelliptic)");
39
+
40
+ print("Actually need ",cflength()," coefficients to properly verify functional equation");
41
+ print(" and ",cflength(1)," coefficients to compute L(s)");
42
+ print(" given ",length(coef)," coefficients only, but let's try anyway:");
43
+ print("Functional eq. = ", errprint(checkfeq(1.1))," <- indication of actual precision");
44
+ print("Conductor = ", conductor);
45
+ print("Sign = ", sgn);
46
+ print("L(1) = ", L(1));
47
+ print(" (check) = ", L(1,1.1));
48
+ print("L(2) = ", L(2));
49
+ print(" (check) = ", L(2,1.1));
@@ -0,0 +1,54 @@
1
+ /*** EXAMPLE: L-function of a genus 4 curve over Q ***/
2
+ /*** (illustration of precision issues when not enough coefficients) ***/
3
+ /*** ***/
4
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
5
+ /*** type \rex-gen4 or read("ex-gen4") at pari prompt to run this ***/
6
+
7
+
8
+ read("computel"); \\ read the ComputeL package
9
+ \\ and set the default values
10
+ default(realprecision,20); \\ set working precision; used throughout
11
+ \\ actually need more coefficients for this
12
+
13
+ /*** C: y^2+(x^5+x+1)y=x^7-x^6+x^4 (genus 4, hyperelliptic) ***/
14
+ conductor = 3*23*7333; \\ conductor
15
+ sgn = 1; \\ sign in the functional equation
16
+ \\ Vector of 450 coefficients
17
+ coef=[1,-1,-3,-1,0,3,-1,0,2,0,2,3,1,1,0,0,-1,-2,-6,0,3,-2,2,0,0,-1,3,1,5,0,6,\
18
+ 2,-6,1,0,-2,-2,6,-3,0,-1,-3,-3,-2,0,-2,3,0,6,0,3,-1,2,-3,0,0,18,-5,9,0,\
19
+ -3,-6,-2,1,0,6,-4,1,-6,0,-4,0,-5,2,0,6,-2,3,-11,0,-9,1,17,-3,0,3,-15,0,\
20
+ 0,0,-1,-2,-18,-3,0,-6,-5,-6,4,0,-4,-3,-4,0,0,-2,-3,-3,-20,0,6,0,8,-18,0,\
21
+ -5,2,-9,1,0,4,3,3,-6,0,2,-12,1,9,0,-3,6,6,4,0,0,13,6,-22,0,-9,4,2,0,0,5,\
22
+ -18,2,5,0,2,0,-2,2,0,3,7,11,-6,0,-2,9,4,1,0,-17,-15,0,7,0,-12,3,1,15,0,0,\
23
+ -27,0,-10,0,-14,1,9,0,0,18,-2,-3,-3,0,5,-3,2,5,0,-6,3,-4,19,0,12,4,-5,-3,\
24
+ 0,4,4,0,-12,0,14,-2,12,3,0,0,-6,20,15,0,-1,-6,21,-2,0,-8,-11,-18,19,0,6,\
25
+ 0,16,-2,0,-9,33,-1,-6,0,3,-4,15,3,0,-3,-6,0,-51,0,20,2,4,12,0,-9,24,-9,2,\
26
+ 0,10,3,-25,0,0,-6,0,4,-29,0,-11,0,3,-13,0,6,15,22,12,0,-12,9,22,4,0,-2,1,\
27
+ 4,9,0,15,5,1,18,0,0,6,-5,2,0,3,-2,12,0,0,2,-11,2,12,0,-12,0,3,-7,0,11,19,\
28
+ 6,10,0,9,2,6,9,0,-4,60,0,-3,0,-4,-17,-4,15,0,0,27,-7,-24,0,12,12,-18,0,0,\
29
+ -1,-24,15,16,0,3,4,27,27,0,0,-3,10,5,0,-2,14,-12,1,0,-9,-20,0,-2,0,-2,18,\
30
+ 43,2,0,0,5,3,-23,0,36,-5,3,-3,0,-2,-6,5,7,0,-2,0,9,-3,0,-4,-3,-19,-18,0,\
31
+ 0,-12,6,4,0,5,-4,0,-2,0,-39,4,-9,-4,0,2,66,12,-17,0,10,-14,6,0,0,-12,3,3,\
32
+ -6,0,12,0,-14,6,0,20,-12,-15,6,0,12,1,-29,-6,0,-21,-15,-1,46,0\
33
+ ];
34
+ /*************************************************************************/
35
+
36
+ \\ initialize other L-function parameters
37
+ gammaV = [0,0,0,0,1,1,1,1]; \\ list of gamma-factors
38
+ weight = 2; \\ L(s)=sgn*L(weight-s)
39
+ initLdata("coef[k]",-450); \\ initialize the L-series data
40
+
41
+ print("EXAMPLE: L-function of a genus 4 curve over Q");
42
+ print(" with ",default(realprecision)," digits precision");
43
+ print("C: y^2+(x^5+x+1)y=x^7-x^6+x^4 (genus 4, hyperelliptic)");
44
+
45
+ print("Actually need ",cflength()," coefficients to properly verify functional equation");
46
+ print(" and ",cflength(1)," coefficients to compute L(s)");
47
+ print(" given ",length(coef)," coefficients only, but let's try anyway:");
48
+ print("Functional eq. = ", errprint(checkfeq(1.1))," <- indication of actual precision");
49
+ print("Conductor = ", conductor);
50
+ print("Sign = ", sgn);
51
+ print("L(1) = ", L(1));
52
+ print(" (check) = ", L(1,1.1));
53
+ print("L(2) = ", L(2));
54
+ print(" (check) = ", L(2,1.1));
@@ -0,0 +1,48 @@
1
+ /*** Dedekind zeta-function of a number field F/Q ***/
2
+ /*** v1.3, December 2013, questions to tim.dokchitser@bristol.ac.uk ***/
3
+ /*** ***/
4
+ /*** type \rex-nf or read("ex-nf") at pari prompt to run this ***/
5
+
6
+ fpol = x^4-x^2-1; \\ polynomial which defines F/Q
7
+ \\ may change this to any other polynomial
8
+
9
+ read("computel"); \\ read the ComputeL package
10
+ \\ and set the default values
11
+ default(realprecision,20); \\ set working precision; used throughout
12
+
13
+ nf = nfinit(fpol); \\ initialize the number field F/Q
14
+ zinit = zetakinit(nf); \\ and the built-in Dedekind zeta-function
15
+ LPari(x) = zetak(zinit,x);
16
+
17
+ print("EXAMPLE: Dedekind zeta-function L(s)=zeta_F(s) of number field F");
18
+ print(" with ",default(realprecision)," digits precision");
19
+ print("F = Q(root of ",fpol,")");
20
+ print("[F:Q] = ",Fdegree = poldegree(fpol));
21
+ print("Discriminant = ",disc = nf.disc);
22
+ print("r1 (real emb.) = ",r1 = nf.sign[1]);
23
+ print("r2 (complex emb.) = ",r2 = nf.sign[2]);
24
+ print("Gamma factor = ",gammaV = concat(vector(r1+r2,X,0),vector(r2,X,1)));
25
+
26
+ conductor = abs(disc); \\ exponential factor
27
+ weight = 1; \\ L(s)=sgn*L(weight-s)
28
+ sgn = 1; \\ sign in the functional equation
29
+ Lpoles = [1]; \\ pole at s=1, Lresidues=automatic
30
+ dzk = dirzetak(nf,cflength()); \\ coefficients a(k) in L(s)
31
+
32
+ initLdata("dzk[k]"); \\ initialize L-series
33
+
34
+ \\ Determine residue at s=1 and check the functional equation
35
+ print("Error in func. eq. = ",errprint(checkfeq()));
36
+
37
+ \\ Compare L(2) and built-in LPari(2)
38
+ print("L(2) = ",L(2));
39
+ print(" (or using pari) = ",LPari(2));
40
+
41
+ \\ Compare residue at 1 and the one given by class number formula
42
+ print("Residue at s=1");
43
+ print(" (automatically determined) = ",Lresidues[1]);
44
+
45
+ \\ Determine the residue at s=1 using the class number formula
46
+ bnf = bnfinit(fpol);
47
+ residue = - 2^(r1+r2) * Pi^(r2/2) * bnf.reg * bnf.clgp.no / bnf.tu[1];
48
+ print(" (class number formula) = ",residue);
@@ -0,0 +1,50 @@
1
+ /*** EXAMPLE: Shintani's zeta-function ***/
2
+ /*** v1.3, December 2013, questions to tim.dokchitser@bristol.ac.uk ***/
3
+ /*** ***/
4
+ /*** type \rex-shin or read("ex-shin") at pari prompt to run this ***/
5
+
6
+ read("computel"); \\ read the ComputeL package
7
+ \\ and set the default values
8
+ default(realprecision,19); \\ set working precision; used throughout
9
+ \\ larger precision needs more coefficients
10
+
11
+ \\ initialize L-function parameters
12
+ GlobalC = 1/2/sqrt(Pi); \\ Global coefficient in front of L(s)
13
+ conductor = 432; \\ exponential factor
14
+ gammaV = [0,1,-1/6,1/6]; \\ list of gamma-factors
15
+ weight = 1; \\ L(s)=sgn*L(weight-s)
16
+ sgn = 1; \\ sign in the functional equation
17
+ Lpoles = [1/6,1]; \\ ``half'' of the poles of L(s)
18
+ {Lresidues = \\ and residues in there
19
+ [zeta(2/3)*2^(3/2)*3^(-1/4)*Pi^(-1/3)*gamma(1/3)/GlobalC, \\ in s=1/6
20
+ gamma(1/12)*gamma(-1/12)/sqrt(3)/12/GlobalC];} \\ in s=1
21
+ \\ note: can also set Lresidues=automatic, checkfeq()
22
+ \\ will then determine them to decent precision
23
+
24
+ \\ First 400 Coefficients
25
+
26
+ {c1=[1/3,1,1,1,1,1,1,4/3,1,1,1,1,1,1,1,2,1,3,1,1,1,1,1,2,5/3,1,1,1,1,1,1,2,1,3,
27
+ 1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,3,1,1,1,2,1,2,1,1,3,1,1,1,2,2,1,3,1,1,1,1,1,
28
+ 4,1,3,1,1,1,1,1,2,1,3,1,1,5/3,1,1,2,1,1,1,1,1,1,2,2,1,3,1,1,1,1,1,2,1,1,1,
29
+ 2,1,1,1,2,3,3,3,1,1,1,1,2,1,1,1,1,1,3,1,10/3,3,3,1,1,1,1,1,4,1,1,1,1,1,1,
30
+ 1,2,1,3,1,1,2,1,1,2,1,1,1,1,1,3,1,4,3,4,1,1,1,1,3,2,1,1,1,1,1,1,1,2,1,3,1,
31
+ 3,5/3,1,1,2,1,1,1,1,1,1,1,2,1,3,1,3,1,1,1,4];
32
+ c2=[1,1,1,1,1,1,1,2,1,1,3,1,2,3,3,2,1,1,1,1,1,3,1,2,1,1,1,1,3,3,1,2,1,1,1,3,1,
33
+ 3,1,2,3,1,3,1,1,3,1,2,3,3,1,3,3,4,1,4,1,3,1,1,1,3,1,2,1,1,4,1,3,3,1,2,3,1,
34
+ 1,3,1,3,1,2,1,1,1,1,1,3,3,4,1,3,1,1,1,3,1,4,1,1,3,3,1,3,3,2,3,3,1,4,1,3,1,
35
+ 2,1,1,3,1,1,3,3,4,4,3,3,1,1,3,3,4,1,1,1,1,1,3,1,2,3,1,3,1,3,3,1,6,1,1,1,1,
36
+ 1,3,1,4,3,1,1,1,3,3,1,2,1,4,3,1,3,3,3,2,3,1,2,1,1,3,4,2,1,3,1,1,1,3,3,6,1,
37
+ 1,2,1,3,3,1,2,1,1,1,1,1,3,1,6];}
38
+ a(n) = if(n%4>2,c2[n\2]/sqrt(3),if(n%4>1,0,if(n%4>0,c1[n\2+1],c1[n/2]+c2[n/2]/sqrt(3))));
39
+ coefgrow(n) = n^(1/3); \\ approx. growth of the coefficients in general
40
+
41
+ initLdata("a(k)"); \\ Initialized L-series with coefficients a(k)
42
+ \\ actually uses cflength()=352 coeffs
43
+
44
+ print("EXAMPLE: L(s)=Shintani's zeta function");
45
+ print(" with ",default(realprecision)," digits precision");
46
+ print("Verifying functional equation. Error: ",errprint(checkfeq()));
47
+ print("L(2) = ",L(2));
48
+ print(" (check) = ",L(2,1.1));
49
+ print("L(3) = ",L(3));
50
+ print(" (check) = ",L(3,1.1));
@@ -0,0 +1,30 @@
1
+ read("computel"); /* for Steve Finch */
2
+ default(realprecision,40);
3
+
4
+ coefgrow(n) = 2*n^20;
5
+ tau(n) = (5*sigma(n,3)+7*sigma(n,5))*n/12\
6
+ -35*sum(k=1,n-1,(6*k-4*(n-k))*sigma(k,3)*sigma(n-k,5));
7
+ tau2(n) = tau(n)^2;
8
+
9
+ conductor = 1;
10
+ gammaV = [0,1,-10];
11
+ weight = 23;
12
+ Lpoles = [];
13
+ Lresidues = automatic;
14
+
15
+ len=cflength();
16
+ v1=vector(len,n,tau2(n));
17
+ v2=vector(len,n,n^11);
18
+ v3=vector(len,n,if(issquare(n),n^11,0));
19
+ cfs=concat(dirdiv(dirmul(v1,v3),v2),vector(1000,k,0));
20
+
21
+ initLdata("cfs[k]");
22
+
23
+ {
24
+ forstep(s0=12.5,22.0,0.5,
25
+ s0=round(2*s0)/2;
26
+ print(" L = ",lval = L(s0));
27
+ print(" (check) = ",lval2 = L(s0,1.1)," (err=",errprint(lval-lval2),")");
28
+ print("f(",s0,") = ",lval/zeta(2*s0-22)*zeta(s0-11));
29
+ );
30
+ }
@@ -0,0 +1,27 @@
1
+ /*** EXAMPLE: Riemann's zeta-function ***/
2
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
3
+ /*** ***/
4
+ /*** type \rex-zeta or read("ex-zeta") at pari prompt to run this ***/
5
+
6
+ read("computel"); \\ read the ComputeL package
7
+ \\ and set the default values
8
+ default(realprecision,28); \\ set working precision; used throughout
9
+
10
+ \\ initialize L-function parameters
11
+ conductor = 1; \\ exponential factor = 1/sqrt(Pi)
12
+ gammaV = [0]; \\ list of gamma-factors
13
+ weight = 1; \\ L(s)=sgn*L(weight-s)
14
+ sgn = 1; \\ sign in the functional equation
15
+ Lpoles = [1]; \\ poles of zeta(s) with Re(s)>0.5
16
+ Lresidues = [-1]; \\ and residues in there
17
+
18
+ initLdata("1"); \\ initialize the package; all coeffs equal to 1
19
+
20
+
21
+ print("EXAMPLE: L(s)=zeta(s), Riemann zeta function");
22
+ print(" with ",default(realprecision)," digits precision");
23
+ print("Verifying functional equation. Error: ",errprint(checkfeq()));
24
+ print("zeta(2) = ",L(2), " using the package");
25
+ print(" = ",L(2,1.1), " using a different cutoff point");
26
+ print(" = ",zeta(2), " built-in pari zeta(s) function");
27
+ print(" = ",Pi^2/6, " Pi^2/6");
@@ -0,0 +1,47 @@
1
+ /*** EXAMPLE: Riemann's zeta-function for large imaginary s ***/
2
+ /*** (illustration of precision issues when Im(s) is large) ***/
3
+ /*** ***/
4
+ /*** v1.2, July 2013, questions to tim.dokchitser@bristol.ac.uk ***/
5
+ /*** type \rex-zeta2 or read("ex-zeta2") at pari prompt to run this ***/
6
+
7
+ read("computel"); \\ read the ComputeL package
8
+ \\ and set the default values
9
+ default(realprecision,20); \\ set working precision; used throughout
10
+
11
+ \\ initialize L-function parameters
12
+ conductor = 1; \\ exponential factor
13
+ gammaV = [0]; \\ list of gamma-factors
14
+ weight = 1; \\ L(s)=sgn*L(weight-s)
15
+ sgn = 1; \\ sign in the functional equation
16
+ Lpoles = [1]; \\ poles of zeta(s) with Re(s)>0.5
17
+ Lresidues = [-1]; \\ and residues in there
18
+
19
+ initLdata("1"); \\ initialize the package; all coeffs equal to 1
20
+
21
+ print("EXAMPLE: L(s)=zeta(s), Riemann zeta function");
22
+ print(" for s with large imaginary part");
23
+ print(" with ",default(realprecision)," digits precision");
24
+ print("Verifying functional equation. Error: ",errprint(checkfeq()));
25
+ print("For large imaginary s there is precision loss and a warning is printed");
26
+ print("");
27
+ print("zeta(1/2+40 I) = ",L(1/2+40*I));
28
+ print(" (pari) = ",zeta(1/2+40*I));
29
+ print("");
30
+
31
+ print("Changing MaxImaginaryPart to 40 and re-calculating");
32
+
33
+ MaxImaginaryPart=40;
34
+ initLdata("1"); \\ re-initialize the package
35
+ \\ MaxImaginaryPart changed -> more coeffs necessary
36
+
37
+ print("zeta(1/2+40 I) = ",L(1/2+40*I));
38
+ print(" (pari) = ",zeta(1/2+40*I));
39
+ print("");
40
+
41
+ print("Locating a nearby zero of zeta(s) using Newton-Raphson (5 iterations)");
42
+ z0=1/2+40*I;
43
+ for(k=1,5,z0=1/2+I*imag(z0-L(z0)/L(z0,,1)));
44
+
45
+ header = concatstr("|zeta(",z0,"| = ");
46
+ print(header,errprint(abs(L(z0))));
47
+ print(StrTab(" (pari)",length(header)-3)," = ",errprint(abs(zeta(z0))));
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env bash
2
+ echo "\\r ex-bsw" | sage -gp
3
+ echo "\\r ex-chgen" | sage -gp
4
+ echo "\\r ex-chqua" | sage -gp
5
+ echo "\\r ex-delta" | sage -gp
6
+ echo "\\r ex-eisen" | sage -gp
7
+ echo "\\r ex-gen2" | sage -gp
8
+ echo "\\r ex-gen3" | sage -gp
9
+ echo "\\r ex-gen4" | sage -gp
10
+ echo "\\r ex-nf" | sage -gp
11
+ echo "\\r ex-shin" | sage -gp
12
+ echo "\\r ex-zeta" | sage -gp
13
+ echo "\\r ex-zeta2" | sage -gp