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,518 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-pari
|
|
2
|
+
r"""
|
|
3
|
+
This file defines the common API for relaxed `p`-adic numbers.
|
|
4
|
+
|
|
5
|
+
Let `K` be a given `p`-adic ring/field with uniformizer `\pi`.
|
|
6
|
+
In the relaxed model, we represent elements of `K` as (Laurent) polynomials over an
|
|
7
|
+
explicit exact subring of `K` (whose evaluation at `\pi` are good approximations
|
|
8
|
+
of the element we want to represent).
|
|
9
|
+
|
|
10
|
+
The coefficients of the aforementioned polynomials are called the *digits*.
|
|
11
|
+
They are intended to be chosen in a fixed set of small representatives of elements
|
|
12
|
+
of the residue field of `K`, but we do not impose this condition because we want
|
|
13
|
+
to keep stability under addition and multiplication.
|
|
14
|
+
On the contrary, we let the digits be arbitrary elements in the exact subring
|
|
15
|
+
but provide functions to reduce digits (i.e. replace them by the representative
|
|
16
|
+
of its reduction modulo `\pi`) and propagate the carry accordingly.
|
|
17
|
+
|
|
18
|
+
Our API is based on two template types (which have to be instantiated in
|
|
19
|
+
implementations):
|
|
20
|
+
|
|
21
|
+
- ``cdigit`` -- the type of a digit
|
|
22
|
+
|
|
23
|
+
- ``celement`` -- the type of an element (which is then a polynomial whose
|
|
24
|
+
coefficients are elements of type ``cdigit``)
|
|
25
|
+
|
|
26
|
+
The remainder of the file gives the function signatures.
|
|
27
|
+
|
|
28
|
+
AUTHOR:
|
|
29
|
+
|
|
30
|
+
- Xavier Caruso (2021-01): initial version
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
# ****************************************************************************
|
|
34
|
+
# Copyright (C) 2021 Xavier Caruso <xavier.caruso@normalesup.org>
|
|
35
|
+
#
|
|
36
|
+
# This program is free software: you can redistribute it and/or modify
|
|
37
|
+
# it under the terms of the GNU General Public License as published by
|
|
38
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
39
|
+
# (at your option) any later version.
|
|
40
|
+
# http://www.gnu.org/licenses/
|
|
41
|
+
# ****************************************************************************
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# Operations on digits
|
|
45
|
+
######################
|
|
46
|
+
|
|
47
|
+
cdef cdigit digit_zero
|
|
48
|
+
digit_init(digit_zero)
|
|
49
|
+
|
|
50
|
+
cdef inline void digit_init(cdigit a):
|
|
51
|
+
r"""
|
|
52
|
+
Initialize a digit and set to it the value `0`.
|
|
53
|
+
|
|
54
|
+
INPUT:
|
|
55
|
+
|
|
56
|
+
- ``a`` -- the ``cdigit`` to initialize
|
|
57
|
+
"""
|
|
58
|
+
pass
|
|
59
|
+
|
|
60
|
+
cdef inline void digit_clear(cdigit a):
|
|
61
|
+
r"""
|
|
62
|
+
Deallocate memory assigned to a digit.
|
|
63
|
+
|
|
64
|
+
INPUT:
|
|
65
|
+
|
|
66
|
+
- ``a`` -- the ``cdigit`` to deallocate
|
|
67
|
+
"""
|
|
68
|
+
pass
|
|
69
|
+
|
|
70
|
+
# get and set
|
|
71
|
+
|
|
72
|
+
cdef inline Element digit_get_sage(cdigit a):
|
|
73
|
+
r"""
|
|
74
|
+
Convert a digit to a Sage element.
|
|
75
|
+
|
|
76
|
+
INPUT:
|
|
77
|
+
|
|
78
|
+
- ``a`` -- a ``cdigit``
|
|
79
|
+
|
|
80
|
+
OUTPUT:
|
|
81
|
+
|
|
82
|
+
A Sage element representing the same digit.
|
|
83
|
+
"""
|
|
84
|
+
pass
|
|
85
|
+
|
|
86
|
+
cdef inline void digit_set(cdigit a, cdigit b):
|
|
87
|
+
r"""
|
|
88
|
+
Set up a digit.
|
|
89
|
+
|
|
90
|
+
INPUT:
|
|
91
|
+
|
|
92
|
+
- ``a`` -- the ``cdigit`` to set up
|
|
93
|
+
- ``b`` -- the ``cdigit`` containing the value to assign
|
|
94
|
+
"""
|
|
95
|
+
pass
|
|
96
|
+
|
|
97
|
+
cdef inline void digit_set_ui(cdigit a, long b):
|
|
98
|
+
r"""
|
|
99
|
+
Set an integral value of a digit.
|
|
100
|
+
|
|
101
|
+
INPUT:
|
|
102
|
+
|
|
103
|
+
- ``a`` -- the ``cdigit`` to set up
|
|
104
|
+
- ``b`` -- integer; the value of assign
|
|
105
|
+
"""
|
|
106
|
+
pass
|
|
107
|
+
|
|
108
|
+
cdef inline void digit_set_sage(cdigit a, Element b):
|
|
109
|
+
r"""
|
|
110
|
+
Set the value of a digit.
|
|
111
|
+
|
|
112
|
+
INPUT:
|
|
113
|
+
|
|
114
|
+
- ``a`` -- the ``cdigit`` to be assigned
|
|
115
|
+
- ``b`` -- a Sage element containing the value to assign
|
|
116
|
+
"""
|
|
117
|
+
pass
|
|
118
|
+
|
|
119
|
+
# comparisons
|
|
120
|
+
|
|
121
|
+
cdef inline bint digit_equal(cdigit a, cdigit b):
|
|
122
|
+
r"""
|
|
123
|
+
Comparison of two digits.
|
|
124
|
+
|
|
125
|
+
INPUT:
|
|
126
|
+
|
|
127
|
+
- ``a`` -- a ``cdigit``
|
|
128
|
+
- ``b`` -- a ``cdigit``
|
|
129
|
+
|
|
130
|
+
OUTPUT:
|
|
131
|
+
|
|
132
|
+
`1` of `a` is equal to `b`, `0` otherwise
|
|
133
|
+
"""
|
|
134
|
+
pass
|
|
135
|
+
|
|
136
|
+
cdef inline bint digit_equal_ui(cdigit a, long b):
|
|
137
|
+
r"""
|
|
138
|
+
Comparison of a digit and an integer.
|
|
139
|
+
|
|
140
|
+
INPUT:
|
|
141
|
+
|
|
142
|
+
- ``a`` -- a ``cdigit``
|
|
143
|
+
- ``b`` -- integer
|
|
144
|
+
|
|
145
|
+
OUTPUT:
|
|
146
|
+
|
|
147
|
+
`1` of `a` is equal to `b`, `0` otherwise
|
|
148
|
+
"""
|
|
149
|
+
pass
|
|
150
|
+
|
|
151
|
+
cdef inline bint digit_is_zero(cdigit a):
|
|
152
|
+
r"""
|
|
153
|
+
Comparison to zero.
|
|
154
|
+
|
|
155
|
+
INPUT:
|
|
156
|
+
|
|
157
|
+
- ``a`` -- a ``cdigit``
|
|
158
|
+
|
|
159
|
+
OUTPUT:
|
|
160
|
+
|
|
161
|
+
`1` of `a` vanishes, `0` otherwise
|
|
162
|
+
"""
|
|
163
|
+
pass
|
|
164
|
+
|
|
165
|
+
cdef inline void digit_random_init(randgen generator, long seed):
|
|
166
|
+
r"""
|
|
167
|
+
Initialize the random generator with a new seed.
|
|
168
|
+
|
|
169
|
+
INPUT:
|
|
170
|
+
|
|
171
|
+
- ``generator`` -- the generator to initialize
|
|
172
|
+
- ``seed`` -- the seed
|
|
173
|
+
"""
|
|
174
|
+
pass
|
|
175
|
+
|
|
176
|
+
cdef inline void digit_random(cdigit res, PowComputer_class prime_pow):
|
|
177
|
+
r"""
|
|
178
|
+
Set a digit to a random value in the distinguished set of representatives.
|
|
179
|
+
|
|
180
|
+
INPUT:
|
|
181
|
+
|
|
182
|
+
- ``res`` -- the ``cdigit`` to be assigned
|
|
183
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
184
|
+
"""
|
|
185
|
+
pass
|
|
186
|
+
|
|
187
|
+
# operations
|
|
188
|
+
|
|
189
|
+
cdef inline void digit_add(cdigit res, cdigit a, cdigit b):
|
|
190
|
+
r"""
|
|
191
|
+
Add two digits.
|
|
192
|
+
|
|
193
|
+
INPUT:
|
|
194
|
+
|
|
195
|
+
- ``res`` -- a ``cdigit`` to store the result
|
|
196
|
+
- ``a`` -- a ``cdigit``, the first summand
|
|
197
|
+
- ``b`` -- a ``cdigit``, the second summand
|
|
198
|
+
"""
|
|
199
|
+
pass
|
|
200
|
+
|
|
201
|
+
cdef inline void digit_sub(cdigit res, cdigit a, cdigit b):
|
|
202
|
+
r"""
|
|
203
|
+
Subtract two digits.
|
|
204
|
+
|
|
205
|
+
INPUT:
|
|
206
|
+
|
|
207
|
+
- ``res`` -- a ``cdigit`` to store the result
|
|
208
|
+
- ``a`` -- a ``cdigit``, the minuend
|
|
209
|
+
- ``b`` -- a ``cdigit``, the subtrahend
|
|
210
|
+
"""
|
|
211
|
+
pass
|
|
212
|
+
|
|
213
|
+
cdef inline void digit_mul(cdigit res, cdigit a, cdigit b):
|
|
214
|
+
r"""
|
|
215
|
+
Multiply two digits.
|
|
216
|
+
|
|
217
|
+
INPUT:
|
|
218
|
+
|
|
219
|
+
- ``res`` -- a ``cdigit`` to store the result
|
|
220
|
+
- ``a`` -- a ``cdigit``, the first factor
|
|
221
|
+
- ``b`` -- a ``cdigit``, the second factor
|
|
222
|
+
"""
|
|
223
|
+
pass
|
|
224
|
+
|
|
225
|
+
cdef inline void digit_mod(cdigit res, cdigit a, PowComputer_class prime_pow):
|
|
226
|
+
r"""
|
|
227
|
+
Reduce a digit modulo the uniformizer.
|
|
228
|
+
|
|
229
|
+
INPUT:
|
|
230
|
+
|
|
231
|
+
- ``res`` -- a ``cdigit`` to store the result
|
|
232
|
+
- ``a`` -- a ``cdigit``, the digit to reduce
|
|
233
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
234
|
+
"""
|
|
235
|
+
pass
|
|
236
|
+
|
|
237
|
+
cdef inline void digit_quorem(cdigit quo, cdigit rem, cdigit a, PowComputer_class prime_pow):
|
|
238
|
+
r"""
|
|
239
|
+
Reduce a digit modulo the uniformizer and keep the carry.
|
|
240
|
+
|
|
241
|
+
INPUT:
|
|
242
|
+
|
|
243
|
+
- ``quo`` -- a ``cdigit`` to store the carry
|
|
244
|
+
- ``rem`` -- a ``cdigit`` to store the reduction
|
|
245
|
+
- ``a`` -- a ``cdigit``, the digit to reduce
|
|
246
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
247
|
+
"""
|
|
248
|
+
pass
|
|
249
|
+
|
|
250
|
+
cdef inline void digit_smallest(cdigit res, cdigit carry, cdigit a, PowComputer_class prime_pow):
|
|
251
|
+
r"""
|
|
252
|
+
Compute the smallest representative of a digit.
|
|
253
|
+
|
|
254
|
+
INPUT:
|
|
255
|
+
|
|
256
|
+
- ``res`` -- a ``cdigit`` to store the smallest representative
|
|
257
|
+
- ``carry`` -- a ``cdigit`` to store the carry
|
|
258
|
+
- ``a`` -- a ``cdigit``, the digit to reduce
|
|
259
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
260
|
+
"""
|
|
261
|
+
pass
|
|
262
|
+
|
|
263
|
+
cdef inline void digit_inv(cdigit res, cdigit a, PowComputer_class prime_pow):
|
|
264
|
+
r"""
|
|
265
|
+
Compute the multiplicative inverse of a digit modulo the uniformizer.
|
|
266
|
+
|
|
267
|
+
INPUT:
|
|
268
|
+
|
|
269
|
+
- ``res`` -- a ``cdigit`` to store the result
|
|
270
|
+
- ``a`` -- a ``cdigit``, the digit to invert
|
|
271
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
272
|
+
"""
|
|
273
|
+
pass
|
|
274
|
+
|
|
275
|
+
cdef bint digit_sqrt(cdigit ans, cdigit x, PowComputer_class prime_pow):
|
|
276
|
+
r"""
|
|
277
|
+
Compute the square root of a digit modulo the uniformizer.
|
|
278
|
+
|
|
279
|
+
INPUT:
|
|
280
|
+
|
|
281
|
+
- ``res`` -- a ``cdigit`` to store the result
|
|
282
|
+
- ``a`` -- a ``cdigit``, the digit to square root
|
|
283
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
284
|
+
"""
|
|
285
|
+
pass
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
# Operations on elements
|
|
289
|
+
########################
|
|
290
|
+
|
|
291
|
+
cdef inline void element_init(celement x):
|
|
292
|
+
r"""
|
|
293
|
+
Initialize an element.
|
|
294
|
+
|
|
295
|
+
INPUT:
|
|
296
|
+
|
|
297
|
+
- ``x`` -- the ``celement`` to initialize
|
|
298
|
+
"""
|
|
299
|
+
pass
|
|
300
|
+
|
|
301
|
+
cdef inline void element_clear(celement x):
|
|
302
|
+
r"""
|
|
303
|
+
Deallocate memory assigned to an element.
|
|
304
|
+
|
|
305
|
+
INPUT:
|
|
306
|
+
|
|
307
|
+
- ``x`` -- the ``celement`` to deallocate
|
|
308
|
+
"""
|
|
309
|
+
pass
|
|
310
|
+
|
|
311
|
+
# get and set
|
|
312
|
+
|
|
313
|
+
cdef inline Element element_get_sage(celement x, PowComputer_class prime_pow):
|
|
314
|
+
r"""
|
|
315
|
+
Convert a digit to a Sage element.
|
|
316
|
+
|
|
317
|
+
INPUT:
|
|
318
|
+
|
|
319
|
+
- ``x`` -- a ``celement``
|
|
320
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
321
|
+
|
|
322
|
+
OUTPUT:
|
|
323
|
+
|
|
324
|
+
A Sage `p`-adic representing the same element.
|
|
325
|
+
"""
|
|
326
|
+
pass
|
|
327
|
+
|
|
328
|
+
cdef inline void element_set(celement x, celement y):
|
|
329
|
+
r"""
|
|
330
|
+
Set an element.
|
|
331
|
+
|
|
332
|
+
INPUT:
|
|
333
|
+
|
|
334
|
+
- ``x`` -- the ``celement`` to be assigned
|
|
335
|
+
- ``y`` -- the ``celement`` containing the value to assign
|
|
336
|
+
"""
|
|
337
|
+
pass
|
|
338
|
+
|
|
339
|
+
# get and set digits
|
|
340
|
+
|
|
341
|
+
cdef inline cdigit element_get_digit(celement x, long i):
|
|
342
|
+
r"""
|
|
343
|
+
Return the `i`-th coefficient of `x`.
|
|
344
|
+
|
|
345
|
+
INPUT:
|
|
346
|
+
|
|
347
|
+
- ``x`` -- a ``celement``
|
|
348
|
+
- ``i`` -- integer
|
|
349
|
+
"""
|
|
350
|
+
pass
|
|
351
|
+
|
|
352
|
+
cdef inline void element_get_slice(celement res, celement x, long start, long length):
|
|
353
|
+
r"""
|
|
354
|
+
Select a slice of an element.
|
|
355
|
+
|
|
356
|
+
INPUT:
|
|
357
|
+
|
|
358
|
+
- ``res`` -- a ``celement`` to store the slice
|
|
359
|
+
- ``x`` -- a ``celement``, the element from which the slice is extracted
|
|
360
|
+
- ``start`` -- integer; the start position of the slice
|
|
361
|
+
- ``length`` -- integer; the length of the slice
|
|
362
|
+
|
|
363
|
+
.. NOTE::
|
|
364
|
+
|
|
365
|
+
This function only sets up a pointer to the requested slice
|
|
366
|
+
(the slice is not copied). Hence any future modification
|
|
367
|
+
of the slice ``res`` will affect the container ``x``.
|
|
368
|
+
"""
|
|
369
|
+
pass
|
|
370
|
+
|
|
371
|
+
cdef inline void element_set_digit(celement x, cdigit a, long i):
|
|
372
|
+
r"""
|
|
373
|
+
Set `i`-th coefficient of `x` to the value `a`.
|
|
374
|
+
|
|
375
|
+
INPUT:
|
|
376
|
+
|
|
377
|
+
- ``x`` -- a ``celement``
|
|
378
|
+
- ``a`` -- a ``cdigit``
|
|
379
|
+
- ``i`` -- integer
|
|
380
|
+
"""
|
|
381
|
+
pass
|
|
382
|
+
|
|
383
|
+
cdef inline void element_set_digit_ui(celement x, long a, long i):
|
|
384
|
+
r"""
|
|
385
|
+
Set `i`-th coefficient of `x` to the value `a`.
|
|
386
|
+
|
|
387
|
+
INPUT:
|
|
388
|
+
|
|
389
|
+
- ``x`` -- a ``celement``
|
|
390
|
+
- ``a`` -- integer
|
|
391
|
+
- ``i`` -- integer
|
|
392
|
+
"""
|
|
393
|
+
pass
|
|
394
|
+
|
|
395
|
+
cdef inline void element_set_digit_sage(celement x, Element a, long i):
|
|
396
|
+
r"""
|
|
397
|
+
Set `i`-th coefficient of `x` to the value `a`.
|
|
398
|
+
|
|
399
|
+
INPUT:
|
|
400
|
+
|
|
401
|
+
- ``x`` -- a ``celement``
|
|
402
|
+
- ``a`` -- a Sage element
|
|
403
|
+
- ``i`` -- integer
|
|
404
|
+
"""
|
|
405
|
+
pass
|
|
406
|
+
|
|
407
|
+
# operations
|
|
408
|
+
|
|
409
|
+
cdef inline void element_iadd_digit(celement x, cdigit a, long i):
|
|
410
|
+
r"""
|
|
411
|
+
Inplace addition:
|
|
412
|
+
add `a` to the `i`-th coefficient of `x`.
|
|
413
|
+
|
|
414
|
+
INPUT:
|
|
415
|
+
|
|
416
|
+
- ``x`` -- a ``celement``
|
|
417
|
+
- ``a`` -- a ``cdigit``
|
|
418
|
+
- ``i`` -- integer
|
|
419
|
+
"""
|
|
420
|
+
pass
|
|
421
|
+
|
|
422
|
+
cdef inline void element_isub_digit(celement x, cdigit a, long i):
|
|
423
|
+
r"""
|
|
424
|
+
Inplace subtraction:
|
|
425
|
+
subtract `a` to the `i`-th coefficient of `x`.
|
|
426
|
+
|
|
427
|
+
INPUT:
|
|
428
|
+
|
|
429
|
+
- ``x`` -- a ``celement``
|
|
430
|
+
- ``a`` -- a ``cdigit``
|
|
431
|
+
- ``i`` -- integer
|
|
432
|
+
"""
|
|
433
|
+
pass
|
|
434
|
+
|
|
435
|
+
cdef inline void element_iadd_slice(celement x, celement slice, long start):
|
|
436
|
+
r"""
|
|
437
|
+
Inplace addition:
|
|
438
|
+
add a slice to an element
|
|
439
|
+
|
|
440
|
+
INPUT:
|
|
441
|
+
|
|
442
|
+
- ``x`` -- a ``celement``, the element to update
|
|
443
|
+
- ``slice`` -- a ``celement``, the slice to be added
|
|
444
|
+
- ``start`` -- the position from which the slice will be added
|
|
445
|
+
"""
|
|
446
|
+
pass
|
|
447
|
+
|
|
448
|
+
cdef inline void element_scalarmul(celement res, celement x, cdigit a):
|
|
449
|
+
r"""
|
|
450
|
+
Scalar multiplication.
|
|
451
|
+
|
|
452
|
+
INPUT:
|
|
453
|
+
|
|
454
|
+
- ``res`` -- a ``celement``, the element to store the result
|
|
455
|
+
- ``x`` -- a ``celement``, the multiplicand
|
|
456
|
+
- ``a`` -- a ``cdigit``, the multiplier
|
|
457
|
+
"""
|
|
458
|
+
pass
|
|
459
|
+
|
|
460
|
+
cdef inline void element_mul(celement res, celement x, celement y):
|
|
461
|
+
r"""
|
|
462
|
+
Multiplication.
|
|
463
|
+
|
|
464
|
+
INPUT:
|
|
465
|
+
|
|
466
|
+
- ``res`` -- a ``celement``, the element to store the result
|
|
467
|
+
- ``x`` -- a ``celement``, the first factor
|
|
468
|
+
- ``y`` -- a ``celement``, the second factor
|
|
469
|
+
"""
|
|
470
|
+
pass
|
|
471
|
+
|
|
472
|
+
cdef inline void element_reduce_digit(celement x, long i, PowComputer_class prime_pow):
|
|
473
|
+
r"""
|
|
474
|
+
Reduce the `i`-th digit of `x` and propagate carry.
|
|
475
|
+
|
|
476
|
+
INPUT:
|
|
477
|
+
|
|
478
|
+
- ``x`` -- a ``celement``, the element to update
|
|
479
|
+
- ``i`` -- integer
|
|
480
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
481
|
+
"""
|
|
482
|
+
pass
|
|
483
|
+
|
|
484
|
+
cdef inline void element_reducesmall_digit(fmpz_poly_t x, long i, PowComputer_flint prime_pow):
|
|
485
|
+
r"""
|
|
486
|
+
Reduce the `i`-th digit of `x` and propagate carry,
|
|
487
|
+
assuming that `x` is between `0` and `2*p - 1`.
|
|
488
|
+
|
|
489
|
+
INPUT:
|
|
490
|
+
|
|
491
|
+
- ``x`` -- a ``celement``, the element to update
|
|
492
|
+
- ``i`` -- integer
|
|
493
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
494
|
+
"""
|
|
495
|
+
pass
|
|
496
|
+
|
|
497
|
+
cdef inline void element_reduceneg_digit(fmpz_poly_t x, long i, PowComputer_flint prime_pow):
|
|
498
|
+
r"""
|
|
499
|
+
Reduce the `i`-th digit of `x` and propagate carry,
|
|
500
|
+
assuming that `x` is between `-p` and `p-1`.
|
|
501
|
+
|
|
502
|
+
INPUT:
|
|
503
|
+
|
|
504
|
+
- ``x`` -- a ``celement``, the element to update
|
|
505
|
+
- ``i`` -- integer
|
|
506
|
+
- ``prime_pow`` -- the PowComputer for the ring
|
|
507
|
+
"""
|
|
508
|
+
pass
|
|
509
|
+
|
|
510
|
+
cdef inline void element_shift_right(celement x):
|
|
511
|
+
r"""
|
|
512
|
+
Remove the first digit of ``x``.
|
|
513
|
+
|
|
514
|
+
INPUT:
|
|
515
|
+
|
|
516
|
+
- ``x`` -- a ``celement``
|
|
517
|
+
"""
|
|
518
|
+
pass
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-pari
|