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.
- PARIKernel/__init__.py +2 -0
- PARIKernel/__main__.py +5 -0
- PARIKernel/io.cpython-314-x86_64-linux-musl.so +0 -0
- PARIKernel/io.pxd +7 -0
- PARIKernel/io.pyx +84 -0
- PARIKernel/kernel.cpython-314-x86_64-linux-musl.so +0 -0
- PARIKernel/kernel.pyx +260 -0
- PARIKernel/paridecl.pxd +95 -0
- PARIKernel/svg.cpython-314-x86_64-linux-musl.so +0 -0
- PARIKernel/svg.pyx +52 -0
- cypari2/__init__.py +8 -0
- cypari2/auto_paridecl.pxd +1070 -0
- cypari2/closure.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/closure.pxd +5 -0
- cypari2/closure.pyx +246 -0
- cypari2/convert.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/convert.pxd +80 -0
- cypari2/convert.pyx +613 -0
- cypari2/custom_block.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/custom_block.pyx +30 -0
- cypari2/cypari.h +13 -0
- cypari2/gen.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/gen.pxd +69 -0
- cypari2/gen.pyx +4819 -0
- cypari2/handle_error.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/handle_error.pxd +7 -0
- cypari2/handle_error.pyx +232 -0
- cypari2/pari_instance.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/pari_instance.pxd +27 -0
- cypari2/pari_instance.pyx +1438 -0
- cypari2/paridecl.pxd +5353 -0
- cypari2/paripriv.pxd +34 -0
- cypari2/pycore_long.h +98 -0
- cypari2/pycore_long.pxd +9 -0
- cypari2/stack.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/stack.pxd +27 -0
- cypari2/stack.pyx +278 -0
- cypari2/string_utils.cpython-314-x86_64-linux-musl.so +0 -0
- cypari2/string_utils.pxd +29 -0
- cypari2/string_utils.pyx +65 -0
- cypari2/types.pxd +147 -0
- passagemath_pari-10.6.32.data/data/etc/jupyter/nbconfig/notebook.d/gp-mode.json +5 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/kernels/pari_jupyter/kernel.js +28 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/kernels/pari_jupyter/kernel.json +6 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/kernels/pari_jupyter/logo-64x64.png +0 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/kernel.json +13 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/logo-32x32.png +0 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/logo-64x64.png +0 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/kernels/xeus-gp/logo-svg.svg +75 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/nbextensions/gp-mode/gp.js +284 -0
- passagemath_pari-10.6.32.data/data/share/jupyter/nbextensions/gp-mode/main.js +15 -0
- passagemath_pari-10.6.32.dist-info/METADATA +209 -0
- passagemath_pari-10.6.32.dist-info/RECORD +331 -0
- passagemath_pari-10.6.32.dist-info/WHEEL +5 -0
- passagemath_pari-10.6.32.dist-info/top_level.txt +4 -0
- passagemath_pari.libs/libcrypto-f04afe95.so.3 +0 -0
- passagemath_pari.libs/libflint-fd6f12fc.so.21.0.0 +0 -0
- passagemath_pari.libs/libgcc_s-0cd532bd.so.1 +0 -0
- passagemath_pari.libs/libgf2x-9e30c3e3.so.3.0.0 +0 -0
- passagemath_pari.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
- passagemath_pari.libs/libgivaro-9a94c711.so.9.2.1 +0 -0
- passagemath_pari.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
- passagemath_pari.libs/libgmpxx-9e08595c.so.4.7.0 +0 -0
- passagemath_pari.libs/libgsl-42cda06f.so.28.0.0 +0 -0
- passagemath_pari.libs/libmpfr-aaecbfc0.so.6.2.1 +0 -0
- passagemath_pari.libs/libncursesw-9c9e32c3.so.6.5 +0 -0
- passagemath_pari.libs/libntl-26885ca2.so.44.0.1 +0 -0
- passagemath_pari.libs/libopenblasp-r0-905cb27d.3.29.so +0 -0
- passagemath_pari.libs/libpari-gmp-tls-f31f908f.so.2.17.2 +0 -0
- passagemath_pari.libs/libquadmath-bb76a5fc.so.0.0.0 +0 -0
- passagemath_pari.libs/libreadline-06542304.so.8.2 +0 -0
- passagemath_pari.libs/libstdc++-5d72f927.so.6.0.33 +0 -0
- passagemath_pari.libs/libuuid-f3770415.so.1.3.0 +0 -0
- passagemath_pari.libs/libxeus-735780ff.so.13.1.0 +0 -0
- passagemath_pari.libs/libxeus-zmq-c68577b4.so.6.0.1 +0 -0
- passagemath_pari.libs/libzmq-1ba9a3da.so.5.2.5 +0 -0
- sage/all__sagemath_pari.py +26 -0
- sage/databases/all__sagemath_pari.py +7 -0
- sage/databases/conway.py +274 -0
- sage/ext/all__sagemath_pari.py +1 -0
- sage/ext/memory.cpython-314-x86_64-linux-musl.so +0 -0
- sage/ext/memory.pyx +98 -0
- sage/ext_data/pari/buzzard/DimensionSk.g +286 -0
- sage/ext_data/pari/buzzard/Tpprog.g +179 -0
- sage/ext_data/pari/buzzard/genusn.g +129 -0
- sage/ext_data/pari/dokchitser/computel.gp +740 -0
- sage/ext_data/pari/dokchitser/computel.gp.template +740 -0
- sage/ext_data/pari/dokchitser/ex-bsw +43 -0
- sage/ext_data/pari/dokchitser/ex-chgen +48 -0
- sage/ext_data/pari/dokchitser/ex-chqua +37 -0
- sage/ext_data/pari/dokchitser/ex-delta +35 -0
- sage/ext_data/pari/dokchitser/ex-eisen +30 -0
- sage/ext_data/pari/dokchitser/ex-gen2 +38 -0
- sage/ext_data/pari/dokchitser/ex-gen3 +49 -0
- sage/ext_data/pari/dokchitser/ex-gen4 +54 -0
- sage/ext_data/pari/dokchitser/ex-nf +48 -0
- sage/ext_data/pari/dokchitser/ex-shin +50 -0
- sage/ext_data/pari/dokchitser/ex-tau2 +30 -0
- sage/ext_data/pari/dokchitser/ex-zeta +27 -0
- sage/ext_data/pari/dokchitser/ex-zeta2 +47 -0
- sage/ext_data/pari/dokchitser/testall +13 -0
- sage/ext_data/pari/simon/ell.gp +2129 -0
- sage/ext_data/pari/simon/ellQ.gp +2151 -0
- sage/ext_data/pari/simon/ellcommon.gp +126 -0
- sage/ext_data/pari/simon/qfsolve.gp +722 -0
- sage/ext_data/pari/simon/resultant3.gp +306 -0
- sage/groups/all__sagemath_pari.py +3 -0
- sage/groups/pari_group.py +175 -0
- sage/interfaces/all__sagemath_pari.py +1 -0
- sage/interfaces/genus2reduction.py +464 -0
- sage/interfaces/gp.py +1114 -0
- sage/libs/all__sagemath_pari.py +2 -0
- sage/libs/linkages/__init__.py +1 -0
- sage/libs/linkages/padics/API.pxi +617 -0
- sage/libs/linkages/padics/Polynomial_ram.pxi +388 -0
- sage/libs/linkages/padics/Polynomial_shared.pxi +554 -0
- sage/libs/linkages/padics/__init__.py +1 -0
- sage/libs/linkages/padics/fmpz_poly_unram.pxi +869 -0
- sage/libs/linkages/padics/mpz.pxi +691 -0
- sage/libs/linkages/padics/relaxed/API.pxi +518 -0
- sage/libs/linkages/padics/relaxed/__init__.py +1 -0
- sage/libs/linkages/padics/relaxed/flint.pxi +543 -0
- sage/libs/linkages/padics/unram_shared.pxi +247 -0
- sage/libs/pari/__init__.py +210 -0
- sage/libs/pari/all.py +5 -0
- sage/libs/pari/convert_flint.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/convert_flint.pxd +14 -0
- sage/libs/pari/convert_flint.pyx +159 -0
- sage/libs/pari/convert_gmp.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/convert_gmp.pxd +14 -0
- sage/libs/pari/convert_gmp.pyx +210 -0
- sage/libs/pari/convert_sage.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/convert_sage.pxd +16 -0
- sage/libs/pari/convert_sage.pyx +588 -0
- sage/libs/pari/convert_sage_complex_double.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/convert_sage_complex_double.pxd +14 -0
- sage/libs/pari/convert_sage_complex_double.pyx +132 -0
- sage/libs/pari/convert_sage_matrix.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/convert_sage_matrix.pyx +106 -0
- sage/libs/pari/convert_sage_real_double.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/convert_sage_real_double.pxd +5 -0
- sage/libs/pari/convert_sage_real_double.pyx +14 -0
- sage/libs/pari/convert_sage_real_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/convert_sage_real_mpfr.pxd +7 -0
- sage/libs/pari/convert_sage_real_mpfr.pyx +108 -0
- sage/libs/pari/misc.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/pari/misc.pxd +4 -0
- sage/libs/pari/misc.pyx +26 -0
- sage/libs/pari/tests.py +1848 -0
- sage/matrix/all__sagemath_pari.py +1 -0
- sage/matrix/matrix_integer_pari.cpython-314-x86_64-linux-musl.so +0 -0
- sage/matrix/matrix_integer_pari.pyx +187 -0
- sage/matrix/matrix_rational_pari.cpython-314-x86_64-linux-musl.so +0 -0
- sage/matrix/matrix_rational_pari.pyx +160 -0
- sage/quadratic_forms/all__sagemath_pari.py +10 -0
- sage/quadratic_forms/genera/all.py +9 -0
- sage/quadratic_forms/genera/genus.py +3506 -0
- sage/quadratic_forms/genera/normal_form.py +1519 -0
- sage/quadratic_forms/genera/spinor_genus.py +243 -0
- sage/quadratic_forms/qfsolve.py +255 -0
- sage/quadratic_forms/quadratic_form__automorphisms.py +427 -0
- sage/quadratic_forms/quadratic_form__genus.py +141 -0
- sage/quadratic_forms/quadratic_form__local_density_interfaces.py +140 -0
- sage/quadratic_forms/quadratic_form__local_normal_form.py +421 -0
- sage/quadratic_forms/quadratic_form__local_representation_conditions.py +889 -0
- sage/quadratic_forms/quadratic_form__mass.py +69 -0
- sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py +663 -0
- sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py +373 -0
- sage/quadratic_forms/quadratic_form__siegel_product.py +198 -0
- sage/quadratic_forms/special_values.py +323 -0
- sage/rings/all__sagemath_pari.py +15 -0
- sage/rings/factorint_pari.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/factorint_pari.pyx +80 -0
- sage/rings/finite_rings/all__sagemath_pari.py +1 -0
- sage/rings/finite_rings/element_givaro.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/finite_rings/element_givaro.pxd +91 -0
- sage/rings/finite_rings/element_givaro.pyx +1769 -0
- sage/rings/finite_rings/element_ntl_gf2e.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/finite_rings/element_ntl_gf2e.pxd +22 -0
- sage/rings/finite_rings/element_ntl_gf2e.pyx +1333 -0
- sage/rings/finite_rings/element_pari_ffelt.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/finite_rings/element_pari_ffelt.pxd +13 -0
- sage/rings/finite_rings/element_pari_ffelt.pyx +1441 -0
- sage/rings/finite_rings/finite_field_givaro.py +612 -0
- sage/rings/finite_rings/finite_field_pari_ffelt.py +238 -0
- sage/rings/finite_rings/hom_finite_field_givaro.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/finite_rings/hom_finite_field_givaro.pxd +28 -0
- sage/rings/finite_rings/hom_finite_field_givaro.pyx +280 -0
- sage/rings/finite_rings/residue_field_givaro.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/finite_rings/residue_field_givaro.pyx +133 -0
- sage/rings/finite_rings/residue_field_pari_ffelt.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/finite_rings/residue_field_pari_ffelt.pyx +128 -0
- sage/rings/function_field/all__sagemath_pari.py +1 -0
- sage/rings/function_field/valuation.py +1450 -0
- sage/rings/function_field/valuation_ring.py +212 -0
- sage/rings/number_field/all__sagemath_pari.py +14 -0
- sage/rings/number_field/totallyreal.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/number_field/totallyreal.pyx +509 -0
- sage/rings/number_field/totallyreal_data.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/number_field/totallyreal_data.pxd +26 -0
- sage/rings/number_field/totallyreal_data.pyx +928 -0
- sage/rings/number_field/totallyreal_phc.py +144 -0
- sage/rings/number_field/totallyreal_rel.py +1018 -0
- sage/rings/padics/CA_template.pxi +1847 -0
- sage/rings/padics/CA_template_header.pxi +50 -0
- sage/rings/padics/CR_template.pxi +2563 -0
- sage/rings/padics/CR_template_header.pxi +57 -0
- sage/rings/padics/FM_template.pxi +1575 -0
- sage/rings/padics/FM_template_header.pxi +50 -0
- sage/rings/padics/FP_template.pxi +2176 -0
- sage/rings/padics/FP_template_header.pxi +57 -0
- sage/rings/padics/all.py +3 -0
- sage/rings/padics/all__sagemath_pari.py +11 -0
- sage/rings/padics/common_conversion.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/common_conversion.pxd +15 -0
- sage/rings/padics/common_conversion.pyx +508 -0
- sage/rings/padics/eisenstein_extension_generic.py +232 -0
- sage/rings/padics/factory.py +3623 -0
- sage/rings/padics/generic_nodes.py +1615 -0
- sage/rings/padics/lattice_precision.py +2889 -0
- sage/rings/padics/morphism.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/morphism.pxd +11 -0
- sage/rings/padics/morphism.pyx +366 -0
- sage/rings/padics/padic_base_generic.py +467 -0
- sage/rings/padics/padic_base_leaves.py +1235 -0
- sage/rings/padics/padic_capped_absolute_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_capped_absolute_element.pxd +15 -0
- sage/rings/padics/padic_capped_absolute_element.pyx +520 -0
- sage/rings/padics/padic_capped_relative_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_capped_relative_element.pxd +14 -0
- sage/rings/padics/padic_capped_relative_element.pyx +614 -0
- sage/rings/padics/padic_extension_generic.py +990 -0
- sage/rings/padics/padic_extension_leaves.py +738 -0
- sage/rings/padics/padic_fixed_mod_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_fixed_mod_element.pxd +15 -0
- sage/rings/padics/padic_fixed_mod_element.pyx +584 -0
- sage/rings/padics/padic_floating_point_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_floating_point_element.pxd +14 -0
- sage/rings/padics/padic_floating_point_element.pyx +447 -0
- sage/rings/padics/padic_generic_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_generic_element.pxd +48 -0
- sage/rings/padics/padic_generic_element.pyx +4642 -0
- sage/rings/padics/padic_lattice_element.py +1342 -0
- sage/rings/padics/padic_printing.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_printing.pxd +38 -0
- sage/rings/padics/padic_printing.pyx +1505 -0
- sage/rings/padics/padic_relaxed_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_relaxed_element.pxd +56 -0
- sage/rings/padics/padic_relaxed_element.pyx +18 -0
- sage/rings/padics/padic_relaxed_errors.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/padic_relaxed_errors.pxd +11 -0
- sage/rings/padics/padic_relaxed_errors.pyx +71 -0
- sage/rings/padics/padic_template_element.pxi +1212 -0
- sage/rings/padics/padic_template_element_header.pxi +50 -0
- sage/rings/padics/padic_valuation.py +1423 -0
- sage/rings/padics/pow_computer_flint.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/pow_computer_flint.pxd +38 -0
- sage/rings/padics/pow_computer_flint.pyx +641 -0
- sage/rings/padics/pow_computer_relative.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/pow_computer_relative.pxd +29 -0
- sage/rings/padics/pow_computer_relative.pyx +415 -0
- sage/rings/padics/qadic_flint_CA.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/qadic_flint_CA.pxd +21 -0
- sage/rings/padics/qadic_flint_CA.pyx +130 -0
- sage/rings/padics/qadic_flint_CR.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/qadic_flint_CR.pxd +13 -0
- sage/rings/padics/qadic_flint_CR.pyx +172 -0
- sage/rings/padics/qadic_flint_FM.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/qadic_flint_FM.pxd +14 -0
- sage/rings/padics/qadic_flint_FM.pyx +111 -0
- sage/rings/padics/qadic_flint_FP.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/qadic_flint_FP.pxd +12 -0
- sage/rings/padics/qadic_flint_FP.pyx +165 -0
- sage/rings/padics/relative_extension_leaves.py +429 -0
- sage/rings/padics/relative_ramified_CA.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/relative_ramified_CA.pxd +9 -0
- sage/rings/padics/relative_ramified_CA.pyx +33 -0
- sage/rings/padics/relative_ramified_CR.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/relative_ramified_CR.pxd +8 -0
- sage/rings/padics/relative_ramified_CR.pyx +33 -0
- sage/rings/padics/relative_ramified_FM.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/relative_ramified_FM.pxd +9 -0
- sage/rings/padics/relative_ramified_FM.pyx +33 -0
- sage/rings/padics/relative_ramified_FP.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/padics/relative_ramified_FP.pxd +8 -0
- sage/rings/padics/relative_ramified_FP.pyx +33 -0
- sage/rings/padics/relaxed_template.pxi +4229 -0
- sage/rings/padics/relaxed_template_header.pxi +160 -0
- sage/rings/padics/tests.py +35 -0
- sage/rings/padics/tutorial.py +341 -0
- sage/rings/padics/unramified_extension_generic.py +335 -0
- sage/rings/padics/witt_vector.py +917 -0
- sage/rings/padics/witt_vector_ring.py +934 -0
- sage/rings/pari_ring.py +235 -0
- sage/rings/polynomial/all__sagemath_pari.py +1 -0
- sage/rings/polynomial/padics/all.py +1 -0
- sage/rings/polynomial/padics/polynomial_padic.py +360 -0
- sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py +1324 -0
- sage/rings/polynomial/padics/polynomial_padic_flat.py +72 -0
- sage/rings/power_series_pari.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/power_series_pari.pxd +6 -0
- sage/rings/power_series_pari.pyx +934 -0
- sage/rings/tate_algebra.py +1282 -0
- sage/rings/tate_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/tate_algebra_element.pxd +49 -0
- sage/rings/tate_algebra_element.pyx +3464 -0
- sage/rings/tate_algebra_ideal.cpython-314-x86_64-linux-musl.so +0 -0
- sage/rings/tate_algebra_ideal.pxd +7 -0
- sage/rings/tate_algebra_ideal.pyx +1307 -0
- sage/rings/valuation/all.py +7 -0
- sage/rings/valuation/augmented_valuation.py +2118 -0
- sage/rings/valuation/developing_valuation.py +362 -0
- sage/rings/valuation/gauss_valuation.py +812 -0
- sage/rings/valuation/inductive_valuation.py +1686 -0
- sage/rings/valuation/limit_valuation.py +946 -0
- sage/rings/valuation/mapped_valuation.py +656 -0
- sage/rings/valuation/scaled_valuation.py +322 -0
- sage/rings/valuation/trivial_valuation.py +382 -0
- sage/rings/valuation/valuation.py +1119 -0
- sage/rings/valuation/valuation_space.py +1615 -0
- sage/rings/valuation/valuations_catalog.py +10 -0
- sage/rings/valuation/value_group.py +697 -0
- sage/schemes/all__sagemath_pari.py +1 -0
- sage/schemes/elliptic_curves/all__sagemath_pari.py +1 -0
- sage/schemes/elliptic_curves/descent_two_isogeny_pari.cpython-314-x86_64-linux-musl.so +0 -0
- sage/schemes/elliptic_curves/descent_two_isogeny_pari.pyx +46 -0
- sage_wheels/bin/gp +0 -0
- sage_wheels/bin/gp2c +0 -0
- sage_wheels/bin/gp2c-run +57 -0
- sage_wheels/bin/xeus-gp +0 -0
- 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
|