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