passagemath-flint 10.6.1rc10__cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_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.
- passagemath_flint-10.6.1rc10.dist-info/METADATA +122 -0
- passagemath_flint-10.6.1rc10.dist-info/RECORD +361 -0
- passagemath_flint-10.6.1rc10.dist-info/WHEEL +6 -0
- passagemath_flint-10.6.1rc10.dist-info/top_level.txt +2 -0
- passagemath_flint.libs/libflint-aecb9cc5.so.21.0.0 +0 -0
- passagemath_flint.libs/libgf2x-a4cdec90.so.3.0.0 +0 -0
- passagemath_flint.libs/libgfortran-8f1e9814.so.5.0.0 +0 -0
- passagemath_flint.libs/libgmp-6e109695.so.10.5.0 +0 -0
- passagemath_flint.libs/libgsl-cda90e79.so.28.0.0 +0 -0
- passagemath_flint.libs/libmpfi-e3c25853.so.0.0.0 +0 -0
- passagemath_flint.libs/libmpfr-82690d50.so.6.2.1 +0 -0
- passagemath_flint.libs/libntl-74e7d9a3.so.44.0.1 +0 -0
- passagemath_flint.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
- passagemath_flint.libs/libquadmath-828275a7.so.0.0.0 +0 -0
- sage/all__sagemath_flint.py +29 -0
- sage/combinat/all__sagemath_flint.py +1 -0
- sage/combinat/posets/all__sagemath_flint.py +1 -0
- sage/combinat/posets/hasse_cython_flint.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/combinat/posets/hasse_cython_flint.pyx +194 -0
- sage/data_structures/all__sagemath_flint.py +1 -0
- sage/data_structures/bounded_integer_sequences.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/data_structures/bounded_integer_sequences.pxd +62 -0
- sage/data_structures/bounded_integer_sequences.pyx +1418 -0
- sage/graphs/all__sagemath_flint.py +1 -0
- sage/graphs/chrompoly.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/graphs/chrompoly.pyx +555 -0
- sage/graphs/matchpoly.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/graphs/matchpoly.pyx +412 -0
- sage/libs/all__sagemath_flint.py +17 -0
- sage/libs/arb/__init__.py +1 -0
- sage/libs/arb/acb.pxd +154 -0
- sage/libs/arb/acb_calc.pxd +9 -0
- sage/libs/arb/acb_elliptic.pxd +25 -0
- sage/libs/arb/acb_hypgeom.pxd +74 -0
- sage/libs/arb/acb_mat.pxd +62 -0
- sage/libs/arb/acb_modular.pxd +17 -0
- sage/libs/arb/acb_poly.pxd +216 -0
- sage/libs/arb/arb.pxd +240 -0
- sage/libs/arb/arb_fmpz_poly.pxd +21 -0
- sage/libs/arb/arb_hypgeom.pxd +83 -0
- sage/libs/arb/arb_wrap.h +34 -0
- sage/libs/arb/arf.pxd +131 -0
- sage/libs/arb/arith.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/arb/arith.pyx +87 -0
- sage/libs/arb/bernoulli.pxd +6 -0
- sage/libs/arb/mag.pxd +77 -0
- sage/libs/arb/types.pxd +37 -0
- sage/libs/flint/__init__.py +1 -0
- sage/libs/flint/acb.pxd +270 -0
- sage/libs/flint/acb_calc.pxd +22 -0
- sage/libs/flint/acb_dft.pxd +51 -0
- sage/libs/flint/acb_dirichlet.pxd +112 -0
- sage/libs/flint/acb_elliptic.pxd +42 -0
- sage/libs/flint/acb_hypgeom.pxd +169 -0
- sage/libs/flint/acb_macros.pxd +9 -0
- sage/libs/flint/acb_mat.pxd +136 -0
- sage/libs/flint/acb_mat_macros.pxd +10 -0
- sage/libs/flint/acb_modular.pxd +62 -0
- sage/libs/flint/acb_poly.pxd +251 -0
- sage/libs/flint/acb_poly_macros.pxd +8 -0
- sage/libs/flint/acb_theta.pxd +124 -0
- sage/libs/flint/acf.pxd +32 -0
- sage/libs/flint/aprcl.pxd +84 -0
- sage/libs/flint/arb.pxd +382 -0
- sage/libs/flint/arb_calc.pxd +31 -0
- sage/libs/flint/arb_fmpz_poly.pxd +34 -0
- sage/libs/flint/arb_fpwrap.pxd +215 -0
- sage/libs/flint/arb_hypgeom.pxd +147 -0
- sage/libs/flint/arb_macros.pxd +9 -0
- sage/libs/flint/arb_mat.pxd +140 -0
- sage/libs/flint/arb_mat_macros.pxd +10 -0
- sage/libs/flint/arb_poly.pxd +237 -0
- sage/libs/flint/arf.pxd +167 -0
- sage/libs/flint/arith.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/arith.pxd +76 -0
- sage/libs/flint/arith.pyx +77 -0
- sage/libs/flint/arith_sage.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/arith_sage.pyx +308 -0
- sage/libs/flint/bernoulli.pxd +28 -0
- sage/libs/flint/bool_mat.pxd +52 -0
- sage/libs/flint/ca.pxd +203 -0
- sage/libs/flint/ca_ext.pxd +34 -0
- sage/libs/flint/ca_field.pxd +32 -0
- sage/libs/flint/ca_mat.pxd +117 -0
- sage/libs/flint/ca_poly.pxd +104 -0
- sage/libs/flint/ca_vec.pxd +46 -0
- sage/libs/flint/calcium.pxd +27 -0
- sage/libs/flint/d_mat.pxd +39 -0
- sage/libs/flint/d_vec.pxd +32 -0
- sage/libs/flint/dirichlet.pxd +57 -0
- sage/libs/flint/dlog.pxd +53 -0
- sage/libs/flint/double_extras.pxd +24 -0
- sage/libs/flint/double_interval.pxd +36 -0
- sage/libs/flint/fexpr.pxd +104 -0
- sage/libs/flint/fexpr_builtin.pxd +20 -0
- sage/libs/flint/fft.pxd +66 -0
- sage/libs/flint/flint.pxd +36 -0
- sage/libs/flint/flint_ntl_wrap.h +35 -0
- sage/libs/flint/flint_sage.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/flint_sage.pyx +163 -0
- sage/libs/flint/flint_wrap.h +190 -0
- sage/libs/flint/fmpq.pxd +137 -0
- sage/libs/flint/fmpq_mat.pxd +105 -0
- sage/libs/flint/fmpq_mat_macros.pxd +10 -0
- sage/libs/flint/fmpq_mpoly.pxd +165 -0
- sage/libs/flint/fmpq_mpoly_factor.pxd +30 -0
- sage/libs/flint/fmpq_poly.pxd +241 -0
- sage/libs/flint/fmpq_poly_macros.pxd +9 -0
- sage/libs/flint/fmpq_poly_sage.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/fmpq_poly_sage.pxd +31 -0
- sage/libs/flint/fmpq_poly_sage.pyx +48 -0
- sage/libs/flint/fmpq_vec.pxd +27 -0
- sage/libs/flint/fmpz.pxd +256 -0
- sage/libs/flint/fmpz_extras.pxd +32 -0
- sage/libs/flint/fmpz_factor.pxd +42 -0
- sage/libs/flint/fmpz_factor_sage.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/fmpz_factor_sage.pxd +4 -0
- sage/libs/flint/fmpz_factor_sage.pyx +29 -0
- sage/libs/flint/fmpz_lll.pxd +49 -0
- sage/libs/flint/fmpz_macros.pxd +8 -0
- sage/libs/flint/fmpz_mat.pxd +184 -0
- sage/libs/flint/fmpz_mat_macros.pxd +10 -0
- sage/libs/flint/fmpz_mod.pxd +46 -0
- sage/libs/flint/fmpz_mod_mat.pxd +71 -0
- sage/libs/flint/fmpz_mod_mpoly.pxd +161 -0
- sage/libs/flint/fmpz_mod_mpoly_factor.pxd +28 -0
- sage/libs/flint/fmpz_mod_poly.pxd +249 -0
- sage/libs/flint/fmpz_mod_poly_factor.pxd +46 -0
- sage/libs/flint/fmpz_mod_vec.pxd +27 -0
- sage/libs/flint/fmpz_mpoly.pxd +224 -0
- sage/libs/flint/fmpz_mpoly_factor.pxd +29 -0
- sage/libs/flint/fmpz_mpoly_q.pxd +57 -0
- sage/libs/flint/fmpz_poly.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/fmpz_poly.pxd +407 -0
- sage/libs/flint/fmpz_poly.pyx +19 -0
- sage/libs/flint/fmpz_poly_factor.pxd +33 -0
- sage/libs/flint/fmpz_poly_macros.pxd +8 -0
- sage/libs/flint/fmpz_poly_mat.pxd +71 -0
- sage/libs/flint/fmpz_poly_q.pxd +55 -0
- sage/libs/flint/fmpz_poly_sage.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/fmpz_poly_sage.pxd +20 -0
- sage/libs/flint/fmpz_poly_sage.pyx +500 -0
- sage/libs/flint/fmpz_vec.pxd +80 -0
- sage/libs/flint/fmpzi.pxd +52 -0
- sage/libs/flint/fq.pxd +97 -0
- sage/libs/flint/fq_default.pxd +84 -0
- sage/libs/flint/fq_default_mat.pxd +70 -0
- sage/libs/flint/fq_default_poly.pxd +97 -0
- sage/libs/flint/fq_default_poly_factor.pxd +39 -0
- sage/libs/flint/fq_embed.pxd +28 -0
- sage/libs/flint/fq_mat.pxd +83 -0
- sage/libs/flint/fq_nmod.pxd +95 -0
- sage/libs/flint/fq_nmod_embed.pxd +28 -0
- sage/libs/flint/fq_nmod_mat.pxd +83 -0
- sage/libs/flint/fq_nmod_mpoly.pxd +130 -0
- sage/libs/flint/fq_nmod_mpoly_factor.pxd +28 -0
- sage/libs/flint/fq_nmod_poly.pxd +202 -0
- sage/libs/flint/fq_nmod_poly_factor.pxd +47 -0
- sage/libs/flint/fq_nmod_vec.pxd +33 -0
- sage/libs/flint/fq_poly.pxd +204 -0
- sage/libs/flint/fq_poly_factor.pxd +47 -0
- sage/libs/flint/fq_vec.pxd +33 -0
- sage/libs/flint/fq_zech.pxd +99 -0
- sage/libs/flint/fq_zech_embed.pxd +28 -0
- sage/libs/flint/fq_zech_mat.pxd +78 -0
- sage/libs/flint/fq_zech_poly.pxd +198 -0
- sage/libs/flint/fq_zech_poly_factor.pxd +47 -0
- sage/libs/flint/fq_zech_vec.pxd +33 -0
- sage/libs/flint/gr.pxd +174 -0
- sage/libs/flint/gr_generic.pxd +215 -0
- sage/libs/flint/gr_mat.pxd +161 -0
- sage/libs/flint/gr_mpoly.pxd +68 -0
- sage/libs/flint/gr_poly.pxd +276 -0
- sage/libs/flint/gr_special.pxd +237 -0
- sage/libs/flint/gr_vec.pxd +120 -0
- sage/libs/flint/hypgeom.pxd +24 -0
- sage/libs/flint/long_extras.pxd +23 -0
- sage/libs/flint/mag.pxd +131 -0
- sage/libs/flint/mag_macros.pxd +8 -0
- sage/libs/flint/mpf_mat.pxd +36 -0
- sage/libs/flint/mpf_vec.pxd +34 -0
- sage/libs/flint/mpfr_mat.pxd +27 -0
- sage/libs/flint/mpfr_vec.pxd +25 -0
- sage/libs/flint/mpn_extras.pxd +41 -0
- sage/libs/flint/mpoly.pxd +72 -0
- sage/libs/flint/nf.pxd +19 -0
- sage/libs/flint/nf_elem.pxd +74 -0
- sage/libs/flint/nmod.pxd +35 -0
- sage/libs/flint/nmod_mat.pxd +104 -0
- sage/libs/flint/nmod_mpoly.pxd +144 -0
- sage/libs/flint/nmod_mpoly_factor.pxd +28 -0
- sage/libs/flint/nmod_poly.pxd +339 -0
- sage/libs/flint/nmod_poly_factor.pxd +44 -0
- sage/libs/flint/nmod_poly_linkage.pxi +710 -0
- sage/libs/flint/nmod_poly_mat.pxd +76 -0
- sage/libs/flint/nmod_vec.pxd +40 -0
- sage/libs/flint/ntl_interface.pxd +17 -0
- sage/libs/flint/padic.pxd +93 -0
- sage/libs/flint/padic_mat.pxd +64 -0
- sage/libs/flint/padic_poly.pxd +88 -0
- sage/libs/flint/partitions.pxd +23 -0
- sage/libs/flint/perm.pxd +26 -0
- sage/libs/flint/profiler.pxd +24 -0
- sage/libs/flint/qadic.pxd +77 -0
- sage/libs/flint/qfb.pxd +44 -0
- sage/libs/flint/qqbar.pxd +172 -0
- sage/libs/flint/qsieve.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/qsieve.pxd +41 -0
- sage/libs/flint/qsieve.pyx +21 -0
- sage/libs/flint/qsieve_sage.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/qsieve_sage.pyx +67 -0
- sage/libs/flint/thread_pool.pxd +25 -0
- sage/libs/flint/types.pxd +2076 -0
- sage/libs/flint/ulong_extras.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/ulong_extras.pxd +141 -0
- sage/libs/flint/ulong_extras.pyx +21 -0
- sage/libs/flint/ulong_extras_sage.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/libs/flint/ulong_extras_sage.pyx +21 -0
- sage/matrix/all__sagemath_flint.py +1 -0
- sage/matrix/change_ring.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/change_ring.pyx +43 -0
- sage/matrix/matrix_complex_ball_dense.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_complex_ball_dense.pxd +14 -0
- sage/matrix/matrix_complex_ball_dense.pyx +973 -0
- sage/matrix/matrix_cyclo_dense.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_cyclo_dense.pxd +16 -0
- sage/matrix/matrix_cyclo_dense.pyx +1761 -0
- sage/matrix/matrix_integer_dense.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_integer_dense.pxd +32 -0
- sage/matrix/matrix_integer_dense.pyx +5801 -0
- sage/matrix/matrix_integer_dense_hnf.py +1294 -0
- sage/matrix/matrix_integer_dense_saturation.py +346 -0
- sage/matrix/matrix_integer_sparse.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_integer_sparse.pxd +9 -0
- sage/matrix/matrix_integer_sparse.pyx +1090 -0
- sage/matrix/matrix_rational_dense.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_rational_dense.pxd +23 -0
- sage/matrix/matrix_rational_dense.pyx +2995 -0
- sage/matrix/matrix_rational_sparse.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_rational_sparse.pxd +11 -0
- sage/matrix/matrix_rational_sparse.pyx +789 -0
- sage/matrix/misc_flint.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/matrix/misc_flint.pyx +109 -0
- sage/modular/all__sagemath_flint.py +1 -0
- sage/modular/modform/all__sagemath_flint.py +1 -0
- sage/modular/modform/eis_series_cython.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/modular/modform/eis_series_cython.pyx +226 -0
- sage/modular/modsym/all__sagemath_flint.py +1 -0
- sage/modular/modsym/apply.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/modular/modsym/apply.pxd +6 -0
- sage/modular/modsym/apply.pyx +113 -0
- sage/modular/modsym/heilbronn.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/modular/modsym/heilbronn.pyx +966 -0
- sage/modular/pollack_stevens/all__sagemath_flint.py +1 -0
- sage/modular/pollack_stevens/dist.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/modular/pollack_stevens/dist.pxd +38 -0
- sage/modular/pollack_stevens/dist.pyx +1439 -0
- sage/quivers/algebra.py +691 -0
- sage/quivers/algebra_elements.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/quivers/algebra_elements.pxd +97 -0
- sage/quivers/algebra_elements.pxi +1324 -0
- sage/quivers/algebra_elements.pyx +1424 -0
- sage/quivers/all.py +1 -0
- sage/quivers/ar_quiver.py +917 -0
- sage/quivers/homspace.py +640 -0
- sage/quivers/morphism.py +1282 -0
- sage/quivers/path_semigroup.py +1155 -0
- sage/quivers/paths.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/quivers/paths.pxd +13 -0
- sage/quivers/paths.pyx +809 -0
- sage/quivers/representation.py +2975 -0
- sage/rings/all__sagemath_flint.py +37 -0
- sage/rings/cif.py +4 -0
- sage/rings/complex_arb.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/complex_arb.pxd +29 -0
- sage/rings/complex_arb.pyx +5176 -0
- sage/rings/complex_interval.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/complex_interval.pxd +30 -0
- sage/rings/complex_interval.pyx +2475 -0
- sage/rings/complex_interval_field.py +711 -0
- sage/rings/convert/all.py +1 -0
- sage/rings/convert/mpfi.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/convert/mpfi.pxd +6 -0
- sage/rings/convert/mpfi.pyx +576 -0
- sage/rings/factorint_flint.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/factorint_flint.pyx +99 -0
- sage/rings/fraction_field_FpT.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/fraction_field_FpT.pxd +28 -0
- sage/rings/fraction_field_FpT.pyx +2043 -0
- sage/rings/imaginary_unit.py +5 -0
- sage/rings/monomials.py +73 -0
- sage/rings/number_field/S_unit_solver.py +2870 -0
- sage/rings/number_field/all__sagemath_flint.py +7 -0
- sage/rings/number_field/bdd_height.py +664 -0
- sage/rings/number_field/class_group.py +762 -0
- sage/rings/number_field/galois_group.py +1307 -0
- sage/rings/number_field/homset.py +612 -0
- sage/rings/number_field/maps.py +687 -0
- sage/rings/number_field/morphism.py +272 -0
- sage/rings/number_field/number_field.py +12820 -0
- sage/rings/number_field/number_field_element.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/number_field/number_field_element.pxd +59 -0
- sage/rings/number_field/number_field_element.pyx +5735 -0
- sage/rings/number_field/number_field_element_quadratic.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/number_field/number_field_element_quadratic.pxd +34 -0
- sage/rings/number_field/number_field_element_quadratic.pyx +3185 -0
- sage/rings/number_field/number_field_ideal_rel.py +925 -0
- sage/rings/number_field/number_field_morphisms.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/number_field/number_field_morphisms.pyx +781 -0
- sage/rings/number_field/number_field_rel.py +2734 -0
- sage/rings/number_field/order.py +2981 -0
- sage/rings/number_field/order_ideal.py +804 -0
- sage/rings/number_field/selmer_group.py +715 -0
- sage/rings/number_field/small_primes_of_degree_one.py +242 -0
- sage/rings/number_field/splitting_field.py +606 -0
- sage/rings/number_field/structure.py +380 -0
- sage/rings/number_field/unit_group.py +721 -0
- sage/rings/padics/all__sagemath_flint.py +3 -0
- sage/rings/polynomial/all__sagemath_flint.py +1 -0
- sage/rings/polynomial/complex_roots.py +312 -0
- sage/rings/polynomial/evaluation_flint.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/evaluation_flint.pxd +7 -0
- sage/rings/polynomial/evaluation_flint.pyx +68 -0
- sage/rings/polynomial/hilbert.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/hilbert.pyx +602 -0
- sage/rings/polynomial/polynomial_complex_arb.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_complex_arb.pxd +7 -0
- sage/rings/polynomial/polynomial_complex_arb.pyx +963 -0
- sage/rings/polynomial/polynomial_integer_dense_flint.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_integer_dense_flint.pxd +13 -0
- sage/rings/polynomial/polynomial_integer_dense_flint.pyx +1881 -0
- sage/rings/polynomial/polynomial_number_field.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_number_field.pyx +345 -0
- sage/rings/polynomial/polynomial_rational_flint.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_rational_flint.pxd +20 -0
- sage/rings/polynomial/polynomial_rational_flint.pyx +2598 -0
- sage/rings/polynomial/polynomial_zmod_flint.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_zmod_flint.pxd +20 -0
- sage/rings/polynomial/polynomial_zmod_flint.pyx +1063 -0
- sage/rings/polynomial/real_roots.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/real_roots.pxd +81 -0
- sage/rings/polynomial/real_roots.pyx +4704 -0
- sage/rings/polynomial/refine_root.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/refine_root.pyx +142 -0
- sage/rings/polynomial/weil/all.py +4 -0
- sage/rings/polynomial/weil/power_sums.h +46 -0
- sage/rings/polynomial/weil/weil_polynomials.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/weil/weil_polynomials.pyx +596 -0
- sage/rings/qqbar.py +9025 -0
- sage/rings/real_arb.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/real_arb.pxd +21 -0
- sage/rings/real_arb.pyx +4065 -0
- sage/rings/real_interval_absolute.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/real_interval_absolute.pyx +1073 -0
- sage/rings/real_mpfi.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/rings/real_mpfi.pyx +5428 -0
- sage/schemes/all__sagemath_flint.py +1 -0
- sage/schemes/elliptic_curves/all__sagemath_flint.py +1 -0
- sage/schemes/elliptic_curves/descent_two_isogeny.cpython-313-x86_64-linux-gnu.so +0 -0
- sage/schemes/elliptic_curves/descent_two_isogeny.pyx +1387 -0
- sage/schemes/elliptic_curves/descent_two_isogeny_pari.pxd +5 -0
Binary file
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# sage.doctest: needs sage.libs.linbox
|
3
|
+
r"""
|
4
|
+
Misc matrix algorithms using FLINT
|
5
|
+
"""
|
6
|
+
|
7
|
+
from cysignals.signals cimport sig_check
|
8
|
+
|
9
|
+
from sage.arith.rational_reconstruction cimport mpq_rational_reconstruction
|
10
|
+
from sage.libs.gmp.mpq cimport *
|
11
|
+
from sage.libs.gmp.mpz cimport *
|
12
|
+
from sage.libs.flint.fmpq cimport fmpq_set_mpq, fmpq_canonicalise
|
13
|
+
from sage.libs.flint.fmpq_mat cimport fmpq_mat_entry_num, fmpq_mat_entry_den, fmpq_mat_entry
|
14
|
+
from sage.libs.flint.fmpz cimport fmpz_set_mpz, fmpz_one
|
15
|
+
from sage.rings.integer cimport Integer
|
16
|
+
from sage.rings.rational_field import QQ
|
17
|
+
|
18
|
+
from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense
|
19
|
+
from sage.matrix.matrix_rational_dense cimport Matrix_rational_dense
|
20
|
+
|
21
|
+
|
22
|
+
def matrix_integer_dense_rational_reconstruction(Matrix_integer_dense A, Integer N):
|
23
|
+
r"""
|
24
|
+
Given a matrix over the integers and an integer modulus, do
|
25
|
+
rational reconstruction on all entries of the matrix, viewed as
|
26
|
+
numbers mod `N`. This is done efficiently by assuming there is a
|
27
|
+
large common factor dividing the denominators.
|
28
|
+
|
29
|
+
INPUT:
|
30
|
+
|
31
|
+
- ``A`` -- matrix
|
32
|
+
- ``N`` -- integer
|
33
|
+
|
34
|
+
EXAMPLES::
|
35
|
+
|
36
|
+
sage: B = ((matrix(ZZ, 3,4, [1,2,3,-4,7,2,18,3,4,3,4,5])/3)%500).change_ring(ZZ)
|
37
|
+
sage: from sage.matrix.misc_flint import matrix_integer_dense_rational_reconstruction
|
38
|
+
sage: matrix_integer_dense_rational_reconstruction(B, 500)
|
39
|
+
[ 1/3 2/3 1 -4/3]
|
40
|
+
[ 7/3 2/3 6 1]
|
41
|
+
[ 4/3 1 4/3 5/3]
|
42
|
+
|
43
|
+
TESTS:
|
44
|
+
|
45
|
+
Check that :issue:`9345` is fixed::
|
46
|
+
|
47
|
+
sage: A = random_matrix(ZZ, 3)
|
48
|
+
sage: matrix_integer_dense_rational_reconstruction(A, 0)
|
49
|
+
Traceback (most recent call last):
|
50
|
+
...
|
51
|
+
ZeroDivisionError: The modulus cannot be zero
|
52
|
+
"""
|
53
|
+
if not N:
|
54
|
+
raise ZeroDivisionError("The modulus cannot be zero")
|
55
|
+
cdef Matrix_rational_dense R
|
56
|
+
R = Matrix_rational_dense.__new__(Matrix_rational_dense,
|
57
|
+
A.parent().change_ring(QQ), 0,0,0)
|
58
|
+
|
59
|
+
cdef mpz_t a, bnd, other_bnd, denom, tmp
|
60
|
+
cdef mpq_t qtmp
|
61
|
+
cdef Integer _bnd
|
62
|
+
cdef Py_ssize_t i, j
|
63
|
+
cdef int do_it
|
64
|
+
|
65
|
+
mpz_init_set_si(denom, 1)
|
66
|
+
mpz_init(a)
|
67
|
+
mpz_init(tmp)
|
68
|
+
mpz_init(other_bnd)
|
69
|
+
mpq_init(qtmp)
|
70
|
+
|
71
|
+
_bnd = (N//2).isqrt()
|
72
|
+
mpz_init_set(bnd, _bnd.value)
|
73
|
+
mpz_sub(other_bnd, N.value, bnd)
|
74
|
+
|
75
|
+
for i in range(A._nrows):
|
76
|
+
for j in range(A._ncols):
|
77
|
+
sig_check()
|
78
|
+
A.get_unsafe_mpz(i, j, a)
|
79
|
+
if mpz_cmp_ui(denom, 1) != 0:
|
80
|
+
mpz_mul(a, a, denom)
|
81
|
+
mpz_fdiv_r(a, a, N.value)
|
82
|
+
do_it = 0
|
83
|
+
if mpz_cmp(a, bnd) <= 0:
|
84
|
+
do_it = 1
|
85
|
+
elif mpz_cmp(a, other_bnd) >= 0:
|
86
|
+
mpz_sub(a, a, N.value)
|
87
|
+
do_it = 1
|
88
|
+
if do_it:
|
89
|
+
fmpz_set_mpz(fmpq_mat_entry_num(R._matrix, i, j), a)
|
90
|
+
if mpz_cmp_ui(denom, 1) != 0:
|
91
|
+
fmpz_set_mpz(fmpq_mat_entry_den(R._matrix, i, j), denom)
|
92
|
+
fmpq_canonicalise(fmpq_mat_entry(R._matrix, i, j))
|
93
|
+
else:
|
94
|
+
fmpz_one(fmpq_mat_entry_den(R._matrix, i, j))
|
95
|
+
else:
|
96
|
+
# Otherwise have to do it the hard way
|
97
|
+
A.get_unsafe_mpz(i, j, tmp)
|
98
|
+
mpq_rational_reconstruction(qtmp, tmp, N.value)
|
99
|
+
mpz_lcm(denom, denom, mpq_denref(qtmp))
|
100
|
+
fmpq_set_mpq(fmpq_mat_entry(R._matrix, i, j), qtmp)
|
101
|
+
|
102
|
+
mpz_clear(denom)
|
103
|
+
mpz_clear(a)
|
104
|
+
mpz_clear(tmp)
|
105
|
+
mpz_clear(other_bnd)
|
106
|
+
mpz_clear(bnd)
|
107
|
+
mpq_clear(qtmp)
|
108
|
+
|
109
|
+
return R
|
@@ -0,0 +1 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
@@ -0,0 +1 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
Binary file
|
@@ -0,0 +1,226 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# sage.doctest: needs sage.libs.pari
|
3
|
+
"""
|
4
|
+
Eisenstein series, optimized
|
5
|
+
"""
|
6
|
+
|
7
|
+
from cysignals.memory cimport check_allocarray, sig_free
|
8
|
+
from cysignals.signals cimport sig_check
|
9
|
+
|
10
|
+
from sage.arith.misc import primes, bernoulli
|
11
|
+
from sage.rings.integer cimport Integer
|
12
|
+
from sage.rings.fast_arith cimport prime_range
|
13
|
+
|
14
|
+
from cpython.list cimport PyList_GET_ITEM
|
15
|
+
from sage.libs.flint.fmpz_poly cimport *
|
16
|
+
from sage.libs.gmp.mpz cimport *
|
17
|
+
from sage.libs.flint.fmpz_poly_sage cimport Fmpz_poly, fmpz_poly_set_coeff_mpz, fmpz_poly_scalar_mul_mpz
|
18
|
+
|
19
|
+
cpdef Ek_ZZ(int k, int prec=10):
|
20
|
+
"""
|
21
|
+
Return list of prec integer coefficients of the weight k
|
22
|
+
Eisenstein series of level 1, normalized so the coefficient of q
|
23
|
+
is 1, except that the 0th coefficient is set to 1 instead of its
|
24
|
+
actual value.
|
25
|
+
|
26
|
+
INPUT:
|
27
|
+
|
28
|
+
- ``k`` -- integer
|
29
|
+
- ``prec`` -- integer
|
30
|
+
|
31
|
+
OUTPUT: list of integers
|
32
|
+
|
33
|
+
EXAMPLES::
|
34
|
+
|
35
|
+
sage: from sage.modular.modform.eis_series_cython import Ek_ZZ
|
36
|
+
sage: Ek_ZZ(4,10)
|
37
|
+
[1, 1, 9, 28, 73, 126, 252, 344, 585, 757]
|
38
|
+
sage: [sigma(n,3) for n in [1..9]]
|
39
|
+
[1, 9, 28, 73, 126, 252, 344, 585, 757]
|
40
|
+
sage: Ek_ZZ(10,10^3) == [1] + [sigma(n,9) for n in range(1,10^3)]
|
41
|
+
True
|
42
|
+
"""
|
43
|
+
cdef Integer pp
|
44
|
+
cdef mpz_t q, current_sum, q_plus_one
|
45
|
+
|
46
|
+
cdef unsigned long p
|
47
|
+
cdef Py_ssize_t i, ind
|
48
|
+
cdef bint continue_flag
|
49
|
+
|
50
|
+
cdef list power_sum_ls
|
51
|
+
|
52
|
+
cdef unsigned long max_power_sum, temp_index
|
53
|
+
cdef unsigned long remainder, prev_index
|
54
|
+
cdef unsigned long additional_p_powers
|
55
|
+
|
56
|
+
mpz_init(q)
|
57
|
+
mpz_init(current_sum)
|
58
|
+
mpz_init(q_plus_one)
|
59
|
+
|
60
|
+
# allocate the list for the result
|
61
|
+
cdef list val = []
|
62
|
+
for i in range(prec):
|
63
|
+
pp = Integer.__new__(Integer)
|
64
|
+
mpz_set_si(pp.value, 1)
|
65
|
+
val.append(pp)
|
66
|
+
|
67
|
+
# no need to reallocate this list every time -- just reuse the
|
68
|
+
# Integers in it
|
69
|
+
power_sum_ls = []
|
70
|
+
max_power_sum = prec
|
71
|
+
while max_power_sum:
|
72
|
+
max_power_sum >>= 1
|
73
|
+
pp = Integer.__new__(Integer)
|
74
|
+
mpz_set_si(pp.value, 1)
|
75
|
+
power_sum_ls.append(pp)
|
76
|
+
|
77
|
+
for pp in prime_range(prec):
|
78
|
+
p = mpz_get_ui((<Integer>pp).value)
|
79
|
+
mpz_ui_pow_ui(q, p, k - 1)
|
80
|
+
mpz_add_ui(q_plus_one, q, 1)
|
81
|
+
mpz_set(current_sum, q_plus_one)
|
82
|
+
|
83
|
+
# NOTE: I (wstein) did benchmarks, and the use of
|
84
|
+
# PyList_GET_ITEM in the code below is worth it since it leads
|
85
|
+
# to a significant speedup by not doing bounds checking.
|
86
|
+
|
87
|
+
# set power_sum_ls[1] = q+1
|
88
|
+
mpz_set((<Integer>(PyList_GET_ITEM(power_sum_ls, 1))).value,
|
89
|
+
current_sum)
|
90
|
+
max_power_sum = 1
|
91
|
+
|
92
|
+
ind = 0
|
93
|
+
while True:
|
94
|
+
continue_flag = 0
|
95
|
+
# do the first p-1
|
96
|
+
for i in range(1, p):
|
97
|
+
ind += p
|
98
|
+
if (ind >= prec):
|
99
|
+
continue_flag = 1
|
100
|
+
break
|
101
|
+
mpz_mul((<Integer>(PyList_GET_ITEM(val, ind))).value,
|
102
|
+
(<Integer>(PyList_GET_ITEM(val, ind))).value,
|
103
|
+
q_plus_one)
|
104
|
+
ind += p
|
105
|
+
if (ind >= prec or continue_flag):
|
106
|
+
break
|
107
|
+
|
108
|
+
# now do the pth one, which is harder.
|
109
|
+
|
110
|
+
# compute the valuation of n at p
|
111
|
+
additional_p_powers = 0
|
112
|
+
temp_index = ind // p
|
113
|
+
remainder = 0
|
114
|
+
while not remainder:
|
115
|
+
additional_p_powers += 1
|
116
|
+
prev_index = temp_index
|
117
|
+
temp_index = temp_index // p
|
118
|
+
remainder = prev_index - p*temp_index
|
119
|
+
|
120
|
+
# if we need a new sum, it has to be the next uncomputed one.
|
121
|
+
if (additional_p_powers > max_power_sum):
|
122
|
+
mpz_mul(current_sum, current_sum, q)
|
123
|
+
mpz_add_ui(current_sum, current_sum, 1)
|
124
|
+
max_power_sum += 1
|
125
|
+
|
126
|
+
mpz_set((<Integer>(PyList_GET_ITEM(power_sum_ls,
|
127
|
+
max_power_sum))).value,
|
128
|
+
current_sum)
|
129
|
+
|
130
|
+
# finally, set the coefficient
|
131
|
+
mpz_mul((<Integer>(PyList_GET_ITEM(val, ind))).value,
|
132
|
+
(<Integer>(PyList_GET_ITEM(val, ind))).value,
|
133
|
+
(<Integer>(PyList_GET_ITEM(power_sum_ls,
|
134
|
+
additional_p_powers))).value)
|
135
|
+
|
136
|
+
mpz_clear(q)
|
137
|
+
mpz_clear(current_sum)
|
138
|
+
mpz_clear(q_plus_one)
|
139
|
+
|
140
|
+
return val
|
141
|
+
|
142
|
+
|
143
|
+
cpdef eisenstein_series_poly(int k, int prec=10):
|
144
|
+
r"""
|
145
|
+
Return the `q`-expansion up to precision ``prec`` of the weight `k`
|
146
|
+
Eisenstein series, as a FLINT :class:`~sage.libs.flint.fmpz_poly.Fmpz_poly`
|
147
|
+
object, normalised so the coefficients are integers with no common factor.
|
148
|
+
|
149
|
+
Used internally by the functions
|
150
|
+
:func:`~sage.modular.modform.eis_series.eisenstein_series_qexp` and
|
151
|
+
:func:`~sage.modular.modform.vm_basis.victor_miller_basis`; see the
|
152
|
+
docstring of the former for further details.
|
153
|
+
|
154
|
+
EXAMPLES::
|
155
|
+
|
156
|
+
sage: from sage.modular.modform.eis_series_cython import eisenstein_series_poly
|
157
|
+
sage: eisenstein_series_poly(12, prec=5)
|
158
|
+
5 691 65520 134250480 11606736960 274945048560
|
159
|
+
"""
|
160
|
+
cdef mpz_t *val = <mpz_t *>check_allocarray(prec, sizeof(mpz_t))
|
161
|
+
cdef mpz_t one, mult, term, last, term_m1, last_m1
|
162
|
+
cdef long ind
|
163
|
+
cdef int i
|
164
|
+
cdef Fmpz_poly res = Fmpz_poly.__new__(Fmpz_poly)
|
165
|
+
|
166
|
+
if k % 2 or k < 2:
|
167
|
+
raise ValueError("k (=%s) must be an even positive integer" % k)
|
168
|
+
if prec < 0:
|
169
|
+
raise ValueError("prec (=%s) must be an even nonnegative integer" % prec)
|
170
|
+
if (prec == 0):
|
171
|
+
return Fmpz_poly.__new__(Fmpz_poly)
|
172
|
+
|
173
|
+
mpz_init(one)
|
174
|
+
mpz_init(term)
|
175
|
+
mpz_init(last)
|
176
|
+
mpz_init(mult)
|
177
|
+
mpz_init(term_m1)
|
178
|
+
mpz_init(last_m1)
|
179
|
+
|
180
|
+
for i in range(prec):
|
181
|
+
mpz_init_set_si(val[i], 1)
|
182
|
+
|
183
|
+
mpz_set_si(one, 1)
|
184
|
+
|
185
|
+
cdef unsigned long expt = k - 1
|
186
|
+
a0 = -bernoulli(k) / (2*k)
|
187
|
+
|
188
|
+
cdef long p, ppow
|
189
|
+
for p in primes(1, prec):
|
190
|
+
ppow = p
|
191
|
+
|
192
|
+
mpz_set_si(mult, p)
|
193
|
+
mpz_pow_ui(mult, mult, expt)
|
194
|
+
mpz_mul(term, mult, mult)
|
195
|
+
mpz_set(last, mult)
|
196
|
+
|
197
|
+
while ppow < prec:
|
198
|
+
sig_check()
|
199
|
+
ind = ppow
|
200
|
+
mpz_sub(term_m1, term, one)
|
201
|
+
mpz_sub(last_m1, last, one)
|
202
|
+
while ind < prec:
|
203
|
+
mpz_mul(val[ind], val[ind], term_m1)
|
204
|
+
mpz_fdiv_q(val[ind], val[ind], last_m1)
|
205
|
+
ind += ppow
|
206
|
+
ppow *= p
|
207
|
+
mpz_set(last, term)
|
208
|
+
mpz_mul(term, term, mult)
|
209
|
+
|
210
|
+
mpz_clear(one)
|
211
|
+
mpz_clear(term)
|
212
|
+
mpz_clear(last)
|
213
|
+
mpz_clear(mult)
|
214
|
+
mpz_clear(term_m1)
|
215
|
+
mpz_clear(last_m1)
|
216
|
+
|
217
|
+
fmpz_poly_set_coeff_mpz(res.poly, prec-1, val[prec-1])
|
218
|
+
for i in range(1, prec - 1):
|
219
|
+
fmpz_poly_set_coeff_mpz(res.poly, i, val[i])
|
220
|
+
|
221
|
+
fmpz_poly_scalar_mul_mpz(res.poly, res.poly, (<Integer>(a0.denominator())).value)
|
222
|
+
fmpz_poly_set_coeff_mpz(res.poly, 0, (<Integer>(a0.numerator())).value)
|
223
|
+
|
224
|
+
sig_free(val)
|
225
|
+
|
226
|
+
return res
|
@@ -0,0 +1 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
Binary file
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# distutils: extra_compile_args = -D_XPG6
|
3
|
+
"""
|
4
|
+
Monomial expansion of `(aX + bY)^i (cX + dY)^{j-i}`
|
5
|
+
"""
|
6
|
+
|
7
|
+
##########################################################################
|
8
|
+
#
|
9
|
+
# Copyright (C) 2008 William Stein <wstein@gmail.com>
|
10
|
+
#
|
11
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
12
|
+
#
|
13
|
+
# https://www.gnu.org/licenses/
|
14
|
+
#
|
15
|
+
##########################################################################
|
16
|
+
|
17
|
+
from sage.ext.stdsage cimport PY_NEW
|
18
|
+
|
19
|
+
from sage.libs.flint.fmpz_poly cimport *
|
20
|
+
from sage.libs.flint.fmpz_poly_sage cimport *
|
21
|
+
from sage.rings.integer cimport Integer
|
22
|
+
|
23
|
+
cdef class Apply:
|
24
|
+
def __cinit__(self):
|
25
|
+
"""
|
26
|
+
EXAMPLES::
|
27
|
+
|
28
|
+
sage: import sage.modular.modsym.apply
|
29
|
+
sage: sage.modular.modsym.apply.Apply()
|
30
|
+
<sage.modular.modsym.apply.Apply object at ...>
|
31
|
+
"""
|
32
|
+
fmpz_poly_init(self.f)
|
33
|
+
fmpz_poly_init(self.g)
|
34
|
+
fmpz_poly_init(self.ff)
|
35
|
+
fmpz_poly_init(self.gg)
|
36
|
+
|
37
|
+
def __dealloc__(self):
|
38
|
+
# clear flint polys
|
39
|
+
fmpz_poly_clear(self.f)
|
40
|
+
fmpz_poly_clear(self.g)
|
41
|
+
fmpz_poly_clear(self.ff)
|
42
|
+
fmpz_poly_clear(self.gg)
|
43
|
+
|
44
|
+
cdef int apply_to_monomial_flint(self, fmpz_poly_t ans, int i, int j,
|
45
|
+
int a, int b, int c, int d) except -1:
|
46
|
+
if i < 0 or j - i < 0:
|
47
|
+
raise ValueError("i (=%s) and j-i (=%s) must both be nonnegative." % (i, j - i))
|
48
|
+
|
49
|
+
# f = b+a*x, g = d+c*x
|
50
|
+
fmpz_poly_set_coeff_si(self.f, 0, b)
|
51
|
+
fmpz_poly_set_coeff_si(self.f, 1, a)
|
52
|
+
fmpz_poly_set_coeff_si(self.g, 0, d)
|
53
|
+
fmpz_poly_set_coeff_si(self.g, 1, c)
|
54
|
+
|
55
|
+
# h = (f**i)*(g**(j-i))
|
56
|
+
fmpz_poly_pow(self.ff, self.f, i)
|
57
|
+
fmpz_poly_pow(self.gg, self.g, j - i)
|
58
|
+
fmpz_poly_mul(ans, self.ff, self.gg)
|
59
|
+
|
60
|
+
return 0
|
61
|
+
|
62
|
+
|
63
|
+
cdef Apply A = Apply()
|
64
|
+
|
65
|
+
|
66
|
+
def apply_to_monomial(int i, int j, int a, int b, int c, int d):
|
67
|
+
r"""
|
68
|
+
Return a list of the coefficients of
|
69
|
+
|
70
|
+
.. MATH::
|
71
|
+
|
72
|
+
(aX + bY)^i (cX + dY)^{j-i},
|
73
|
+
|
74
|
+
where `0 \leq i \leq j`, and `a`, `b`, `c`, `d` are integers.
|
75
|
+
|
76
|
+
One should think of `j` as being `k-2` for the application to
|
77
|
+
modular symbols.
|
78
|
+
|
79
|
+
INPUT:
|
80
|
+
|
81
|
+
- i, j, a, b, c, d -- all ints
|
82
|
+
|
83
|
+
OUTPUT:
|
84
|
+
|
85
|
+
list of ints, which are the coefficients
|
86
|
+
of `Y^j, Y^{j-1}X, \ldots, X^j`, respectively.
|
87
|
+
|
88
|
+
EXAMPLES:
|
89
|
+
|
90
|
+
We compute that `(X+Y)^2(X-Y) = X^3 + X^2Y - XY^2 - Y^3`::
|
91
|
+
|
92
|
+
sage: from sage.modular.modsym.apply import apply_to_monomial
|
93
|
+
sage: apply_to_monomial(2, 3, 1,1,1,-1)
|
94
|
+
[-1, -1, 1, 1]
|
95
|
+
sage: apply_to_monomial(5, 8, 1,2,3,4)
|
96
|
+
[2048, 9728, 20096, 23584, 17200, 7984, 2304, 378, 27]
|
97
|
+
sage: apply_to_monomial(6,12, 1,1,1,-1)
|
98
|
+
[1, 0, -6, 0, 15, 0, -20, 0, 15, 0, -6, 0, 1]
|
99
|
+
"""
|
100
|
+
cdef fmpz_poly_t pr
|
101
|
+
fmpz_poly_init(pr)
|
102
|
+
|
103
|
+
A.apply_to_monomial_flint(pr, i, j, a, b, c, d)
|
104
|
+
|
105
|
+
cdef Integer res
|
106
|
+
v = []
|
107
|
+
for k in range(j + 1):
|
108
|
+
res = <Integer>PY_NEW(Integer)
|
109
|
+
fmpz_poly_get_coeff_mpz(res.value, pr, k)
|
110
|
+
v.append(int(res))
|
111
|
+
|
112
|
+
fmpz_poly_clear(pr)
|
113
|
+
return v
|
Binary file
|