passagemath-flint 10.6.1rc10__cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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 +360 -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-3701249d.so.21.0.0 +0 -0
- passagemath_flint.libs/libgf2x-fbd36f80.so.3.0.0 +0 -0
- passagemath_flint.libs/libgfortran-8a9a71bc.so.5.0.0 +0 -0
- passagemath_flint.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
- passagemath_flint.libs/libgsl-e3525837.so.28.0.0 +0 -0
- passagemath_flint.libs/libmpfi-ad12a86d.so.0.0.0 +0 -0
- passagemath_flint.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
- passagemath_flint.libs/libntl-1004113e.so.44.0.1 +0 -0
- passagemath_flint.libs/libopenblasp-r0-4c5b64b1.3.29.so +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-312-aarch64-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-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/graphs/chrompoly.pyx +555 -0
- sage/graphs/matchpoly.cpython-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/matrix/change_ring.pyx +43 -0
- sage/matrix/matrix_complex_ball_dense.cpython-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/modular/modsym/apply.pxd +6 -0
- sage/modular/modsym/apply.pyx +113 -0
- sage/modular/modsym/heilbronn.cpython-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/rings/complex_arb.pxd +29 -0
- sage/rings/complex_arb.pyx +5176 -0
- sage/rings/complex_interval.cpython-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/rings/convert/mpfi.pxd +6 -0
- sage/rings/convert/mpfi.pyx +576 -0
- sage/rings/factorint_flint.cpython-312-aarch64-linux-gnu.so +0 -0
- sage/rings/factorint_flint.pyx +99 -0
- sage/rings/fraction_field_FpT.cpython-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/hilbert.pyx +602 -0
- sage/rings/polynomial/polynomial_complex_arb.cpython-312-aarch64-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-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_number_field.pyx +345 -0
- sage/rings/polynomial/polynomial_rational_flint.cpython-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-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-312-aarch64-linux-gnu.so +0 -0
- sage/rings/real_interval_absolute.pyx +1073 -0
- sage/rings/real_mpfi.cpython-312-aarch64-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-312-aarch64-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
@@ -0,0 +1,194 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# cython: binding=True
|
3
|
+
# sage.doctest: needs sage.libs.flint sage.graphs sage.modules
|
4
|
+
r"""
|
5
|
+
Some fast computations for finite posets using FLINT matrices
|
6
|
+
"""
|
7
|
+
# ****************************************************************************
|
8
|
+
# Copyright (C) 2020 Frédéric Chapoton <chapoton@unistra.fr>
|
9
|
+
#
|
10
|
+
# This program is free software: you can redistribute it and/or modify
|
11
|
+
# it under the terms of the GNU General Public License as published by
|
12
|
+
# the Free Software Foundation, either version 2 of the License, or
|
13
|
+
# (at your option) any later version.
|
14
|
+
# https://www.gnu.org/licenses/
|
15
|
+
# ****************************************************************************
|
16
|
+
from cysignals.signals cimport sig_check
|
17
|
+
from cysignals.memory cimport sig_malloc, sig_free
|
18
|
+
|
19
|
+
from sage.libs.flint.fmpz cimport *
|
20
|
+
from sage.libs.flint.fmpz_mat cimport *
|
21
|
+
from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense
|
22
|
+
from sage.matrix.matrix_space import MatrixSpace
|
23
|
+
from sage.rings.integer_ring import ZZ
|
24
|
+
from sage.libs.flint.fmpz_poly_sage cimport Fmpz_poly
|
25
|
+
|
26
|
+
|
27
|
+
cpdef Fmpz_poly chain_poly(list positions):
|
28
|
+
r"""
|
29
|
+
Return the chain polynomial of a poset.
|
30
|
+
|
31
|
+
INPUT:
|
32
|
+
|
33
|
+
- ``positions`` -- a list of sets of integers describing the poset, as
|
34
|
+
given by the lazy attribute ``_leq_storage`` of Hasse diagrams
|
35
|
+
|
36
|
+
OUTPUT: a Flint polynomial in one variable over `\ZZ`.
|
37
|
+
|
38
|
+
EXAMPLES::
|
39
|
+
|
40
|
+
sage: from sage.combinat.posets.hasse_cython_flint import chain_poly
|
41
|
+
sage: D = [{0, 1}, {1}]
|
42
|
+
sage: chain_poly(D)
|
43
|
+
3 1 2 1
|
44
|
+
sage: P = posets.TamariLattice(5)
|
45
|
+
sage: H = P._hasse_diagram
|
46
|
+
sage: D = H._leq_storage
|
47
|
+
sage: chain_poly(D)
|
48
|
+
12 1 42 357 1385 3133 4635 4758 3468 1778 612 127 12
|
49
|
+
"""
|
50
|
+
cdef Py_ssize_t n = len(positions)
|
51
|
+
cdef Py_ssize_t i, j
|
52
|
+
|
53
|
+
q = Fmpz_poly([0, 1])
|
54
|
+
zero = Fmpz_poly(0)
|
55
|
+
one = Fmpz_poly(1)
|
56
|
+
|
57
|
+
cdef list chain_polys = [zero] * n
|
58
|
+
|
59
|
+
# chain_polys[i] will be the generating function for the
|
60
|
+
# chains with lowest vertex i (in the labelling of the
|
61
|
+
# Hasse diagram).
|
62
|
+
for i in range(n - 1, -1, -1):
|
63
|
+
cpi = q
|
64
|
+
for j in positions[i]:
|
65
|
+
cpi += q * chain_polys[j]
|
66
|
+
chain_polys[i] = cpi
|
67
|
+
total = one
|
68
|
+
for i in range(n):
|
69
|
+
total += chain_polys[i]
|
70
|
+
return total
|
71
|
+
|
72
|
+
|
73
|
+
cpdef Matrix_integer_dense moebius_matrix_fast(list positions):
|
74
|
+
"""
|
75
|
+
Compute the Möbius matrix of a poset by a specific triangular inversion.
|
76
|
+
|
77
|
+
INPUT:
|
78
|
+
|
79
|
+
- ``positions`` -- a list of sets of integers describing the poset, as
|
80
|
+
given by the lazy attribute ``_leq_storage`` of Hasse diagrams
|
81
|
+
|
82
|
+
OUTPUT: a dense matrix
|
83
|
+
|
84
|
+
EXAMPLES::
|
85
|
+
|
86
|
+
sage: from sage.combinat.posets.hasse_cython_flint import moebius_matrix_fast
|
87
|
+
sage: D = [{0,1},{1}]
|
88
|
+
sage: moebius_matrix_fast(D)
|
89
|
+
[ 1 -1]
|
90
|
+
[ 0 1]
|
91
|
+
sage: P = posets.TamariLattice(5)
|
92
|
+
sage: H = P._hasse_diagram
|
93
|
+
sage: D = H._leq_storage
|
94
|
+
sage: moebius_matrix_fast(D)
|
95
|
+
42 x 42 dense matrix over Integer Ring (...)
|
96
|
+
"""
|
97
|
+
cdef Matrix_integer_dense A
|
98
|
+
cdef Py_ssize_t n = len(positions)
|
99
|
+
cdef Py_ssize_t i
|
100
|
+
cdef int j, k
|
101
|
+
A = Matrix_integer_dense.__new__(Matrix_integer_dense,
|
102
|
+
MatrixSpace(ZZ, n, n), None, None, None)
|
103
|
+
fmpz_mat_one(A._matrix)
|
104
|
+
cdef Py_ssize_t *pos_lens = <Py_ssize_t*> sig_malloc(n*sizeof(Py_ssize_t))
|
105
|
+
cdef int **pos_array = <int**> sig_malloc(n*sizeof(int*))
|
106
|
+
cdef Py_ssize_t jind, kind
|
107
|
+
for i in range(n):
|
108
|
+
pos_lens[i] = len(positions[i])
|
109
|
+
pos_array[i] = <int*> sig_malloc(pos_lens[i]*sizeof(int))
|
110
|
+
for jind, j in enumerate(positions[i]):
|
111
|
+
pos_array[i][jind] = j
|
112
|
+
|
113
|
+
for i in range(n - 1, -1, -1):
|
114
|
+
sig_check()
|
115
|
+
for jind in range(pos_lens[i]):
|
116
|
+
j = pos_array[i][jind]
|
117
|
+
if j != i:
|
118
|
+
for kind in range(pos_lens[j]):
|
119
|
+
k = pos_array[j][kind]
|
120
|
+
fmpz_sub(fmpz_mat_entry(A._matrix, i, k),
|
121
|
+
fmpz_mat_entry(A._matrix, i, k),
|
122
|
+
fmpz_mat_entry(A._matrix, j, k))
|
123
|
+
for i in range(n):
|
124
|
+
sig_free(pos_array[i])
|
125
|
+
sig_free(pos_array)
|
126
|
+
sig_free(pos_lens)
|
127
|
+
return A
|
128
|
+
|
129
|
+
|
130
|
+
cpdef Matrix_integer_dense coxeter_matrix_fast(list positions):
|
131
|
+
"""
|
132
|
+
Compute the Coxeter matrix of a poset by a specific algorithm.
|
133
|
+
|
134
|
+
INPUT:
|
135
|
+
|
136
|
+
- ``positions`` -- a list of sets of integers describing the poset, as
|
137
|
+
given by the lazy attribute ``_leq_storage`` of Hasse diagrams
|
138
|
+
|
139
|
+
OUTPUT: a dense matrix
|
140
|
+
|
141
|
+
EXAMPLES::
|
142
|
+
|
143
|
+
sage: from sage.combinat.posets.hasse_cython_flint import coxeter_matrix_fast
|
144
|
+
sage: D = [{0,1},{1}]
|
145
|
+
sage: coxeter_matrix_fast(D)
|
146
|
+
[ 0 -1]
|
147
|
+
[ 1 -1]
|
148
|
+
sage: P = posets.TamariLattice(5)
|
149
|
+
sage: H = P._hasse_diagram
|
150
|
+
sage: D = H._leq_storage
|
151
|
+
sage: coxeter_matrix_fast(D)
|
152
|
+
42 x 42 dense matrix over Integer Ring (...)
|
153
|
+
"""
|
154
|
+
cdef Matrix_integer_dense A
|
155
|
+
cdef Py_ssize_t n = len(positions)
|
156
|
+
cdef Py_ssize_t i
|
157
|
+
cdef int j, k
|
158
|
+
A = Matrix_integer_dense.__new__(Matrix_integer_dense,
|
159
|
+
MatrixSpace(ZZ, n, n), None, None, None)
|
160
|
+
fmpz_mat_one(A._matrix)
|
161
|
+
cdef Py_ssize_t *pos_lens = <Py_ssize_t*> sig_malloc(n*sizeof(Py_ssize_t))
|
162
|
+
cdef int **pos_array = <int**> sig_malloc(n*sizeof(int*))
|
163
|
+
cdef Py_ssize_t jind, kind
|
164
|
+
for i in range(n):
|
165
|
+
pos_lens[i] = len(positions[i])
|
166
|
+
pos_array[i] = <int*> sig_malloc(pos_lens[i]*sizeof(int))
|
167
|
+
for jind, j in enumerate(positions[i]):
|
168
|
+
pos_array[i][jind] = j
|
169
|
+
|
170
|
+
for i in range(n - 1, -1, -1):
|
171
|
+
sig_check()
|
172
|
+
for jind in range(pos_lens[i]):
|
173
|
+
j = pos_array[i][jind]
|
174
|
+
if j != i:
|
175
|
+
for kind in range(pos_lens[j]):
|
176
|
+
k = pos_array[j][kind]
|
177
|
+
fmpz_sub(fmpz_mat_entry(A._matrix, k, i),
|
178
|
+
fmpz_mat_entry(A._matrix, k, i),
|
179
|
+
fmpz_mat_entry(A._matrix, k, j))
|
180
|
+
for i in range(n):
|
181
|
+
sig_check()
|
182
|
+
for jind in range(pos_lens[i]):
|
183
|
+
j = pos_array[i][jind]
|
184
|
+
if j != i:
|
185
|
+
for k in range(n):
|
186
|
+
fmpz_add(fmpz_mat_entry(A._matrix, i, k),
|
187
|
+
fmpz_mat_entry(A._matrix, i, k),
|
188
|
+
fmpz_mat_entry(A._matrix, j, k))
|
189
|
+
for i in range(n):
|
190
|
+
sig_free(pos_array[i])
|
191
|
+
sig_free(pos_array)
|
192
|
+
sig_free(pos_lens)
|
193
|
+
fmpz_mat_scalar_mul_si(A._matrix, A._matrix, -1)
|
194
|
+
return A
|
@@ -0,0 +1 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
from sage.libs.gmp.types cimport *
|
3
|
+
from sage.data_structures.bitset cimport *
|
4
|
+
|
5
|
+
# A biseq (bounded integer sequence) is a sequence of nonnegative
|
6
|
+
# integers, each fitting in "itembitsize" bits. We store the sequence
|
7
|
+
# in a bitset of length at least length*itembitsize.
|
8
|
+
ctypedef struct biseq_s:
|
9
|
+
# A bitset comprising at least length*itembitsize bits is used to
|
10
|
+
# store the items of this sequence. Note that bitset_t stores the
|
11
|
+
# data in a field mp_limb_t *bits, where mp_limb_t is defined in
|
12
|
+
# sage.libs.gmp.types.
|
13
|
+
#
|
14
|
+
# Normally, the "at least" in the first sentence above will be
|
15
|
+
# an equality, but we need the "at least" for the special case
|
16
|
+
# where the length is zero: then we will use a bitset of length 1.
|
17
|
+
# All extra bits (not in the first length*itembitsize) should be
|
18
|
+
# zero.
|
19
|
+
bitset_t data
|
20
|
+
|
21
|
+
# Number of items in this sequence.
|
22
|
+
mp_size_t length
|
23
|
+
|
24
|
+
# Bitsize (ranging from 1 to GMP_LIMB_BITS) of one item of this
|
25
|
+
# sequence. Note: Each item is a nonnegative integer, and all
|
26
|
+
# items of this sequence satisfy an upper bound. We do not store
|
27
|
+
# the exact bound for the items of this sequence, but store the
|
28
|
+
# bitsize that is sufficient to store one item.
|
29
|
+
mp_bitcnt_t itembitsize
|
30
|
+
|
31
|
+
# If L is a limb, then "L & mask_item" extracts the first
|
32
|
+
# itembitsize bits of it, i.e., it extracts one item.
|
33
|
+
size_t mask_item
|
34
|
+
|
35
|
+
ctypedef biseq_s biseq_t[1]
|
36
|
+
|
37
|
+
cdef bint biseq_init(biseq_t R, mp_size_t l, mp_bitcnt_t itemsize) except -1
|
38
|
+
cdef void biseq_dealloc(biseq_t S) noexcept
|
39
|
+
cdef bint biseq_init_copy(biseq_t R, biseq_t S) except -1
|
40
|
+
cdef tuple biseq_pickle(biseq_t S)
|
41
|
+
cdef bint biseq_unpickle(biseq_t R, tuple bitset_data, mp_bitcnt_t itembitsize, mp_size_t length) except -1
|
42
|
+
cdef bint biseq_init_list(biseq_t R, list data, size_t bound) except -1
|
43
|
+
cdef Py_hash_t biseq_hash(biseq_t S) noexcept
|
44
|
+
cdef bint biseq_richcmp(biseq_t S1, biseq_t S2, int op) noexcept
|
45
|
+
cdef bint biseq_init_concat(biseq_t R, biseq_t S1, biseq_t S2) except -1
|
46
|
+
cdef bint biseq_startswith(biseq_t S1, biseq_t S2) except -1
|
47
|
+
cdef mp_size_t biseq_contains(biseq_t S1, biseq_t S2, mp_size_t start) except -2
|
48
|
+
cdef mp_size_t biseq_startswith_tail(biseq_t S1, biseq_t S2, mp_size_t start) except -2
|
49
|
+
cdef mp_size_t biseq_index(biseq_t S, size_t item, mp_size_t start) except -2
|
50
|
+
cdef size_t biseq_getitem(biseq_t S, mp_size_t index) noexcept
|
51
|
+
cdef biseq_getitem_py(biseq_t S, mp_size_t index)
|
52
|
+
cdef void biseq_inititem(biseq_t S, mp_size_t index, size_t item) noexcept
|
53
|
+
cdef void biseq_clearitem(biseq_t S, mp_size_t index) noexcept
|
54
|
+
cdef bint biseq_init_slice(biseq_t R, biseq_t S, mp_size_t start, mp_size_t stop, mp_size_t step) except -1
|
55
|
+
|
56
|
+
cdef class BoundedIntegerSequence:
|
57
|
+
cdef biseq_t data
|
58
|
+
cpdef bint startswith(self, BoundedIntegerSequence other) noexcept
|
59
|
+
cpdef list list(self)
|
60
|
+
cpdef BoundedIntegerSequence maximal_overlap(self, BoundedIntegerSequence other)
|
61
|
+
|
62
|
+
cpdef BoundedIntegerSequence NewBISEQ(tuple bitset_data, mp_bitcnt_t itembitsize, mp_size_t length)
|