passagemath-flint 10.6.1rc10__cp312-cp312-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-312-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-312-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-312-x86_64-linux-gnu.so +0 -0
- sage/graphs/chrompoly.pyx +555 -0
- sage/graphs/matchpoly.cpython-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-x86_64-linux-gnu.so +0 -0
- sage/matrix/change_ring.pyx +43 -0
- sage/matrix/matrix_complex_ball_dense.cpython-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-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-312-x86_64-linux-gnu.so +0 -0
- sage/rings/factorint_flint.pyx +99 -0
- sage/rings/fraction_field_FpT.cpython-312-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-312-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-312-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-312-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-312-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-312-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/hilbert.pyx +602 -0
- sage/rings/polynomial/polynomial_complex_arb.cpython-312-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-312-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-312-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_number_field.pyx +345 -0
- sage/rings/polynomial/polynomial_rational_flint.cpython-312-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-312-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-312-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-312-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-312-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-312-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-312-x86_64-linux-gnu.so +0 -0
- sage/rings/real_interval_absolute.pyx +1073 -0
- sage/rings/real_mpfi.cpython-312-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-312-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
@@ -0,0 +1,272 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# sage.doctest: needs sage.libs.pari
|
3
|
+
r"""
|
4
|
+
Morphisms between number fields
|
5
|
+
|
6
|
+
This module provides classes to represent ring homomorphisms between number
|
7
|
+
fields (i.e. field embeddings).
|
8
|
+
"""
|
9
|
+
|
10
|
+
# ***************************************************************************
|
11
|
+
# Copyright (C) 2007 William Stein <wstein@gmail.com>
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU General Public License as published by
|
15
|
+
# the Free Software Foundation, either version 2 of the License, or
|
16
|
+
# (at your option) any later version.
|
17
|
+
# https://www.gnu.org/licenses/
|
18
|
+
# ***************************************************************************
|
19
|
+
|
20
|
+
from sage.misc.cachefunc import cached_method
|
21
|
+
|
22
|
+
from sage.rings.morphism import RingHomomorphism_im_gens, RingHomomorphism
|
23
|
+
from sage.structure.sequence import Sequence
|
24
|
+
from sage.structure.richcmp import richcmp
|
25
|
+
|
26
|
+
|
27
|
+
class NumberFieldHomomorphism_im_gens(RingHomomorphism_im_gens):
|
28
|
+
def __invert__(self):
|
29
|
+
r"""
|
30
|
+
Return the inverse of an isomorphism of absolute number fields.
|
31
|
+
|
32
|
+
EXAMPLES::
|
33
|
+
|
34
|
+
sage: x = polygen(ZZ, 'x')
|
35
|
+
sage: K.<a> = NumberField(x^2 + 5)
|
36
|
+
sage: tau1, tau2 = K.automorphisms(); tau1, tau2
|
37
|
+
(Ring endomorphism of Number Field in a with defining polynomial x^2 + 5
|
38
|
+
Defn: a |--> a,
|
39
|
+
Ring endomorphism of Number Field in a with defining polynomial x^2 + 5
|
40
|
+
Defn: a |--> -a)
|
41
|
+
sage: ~tau1
|
42
|
+
Ring endomorphism of Number Field in a with defining polynomial x^2 + 5
|
43
|
+
Defn: a |--> a
|
44
|
+
sage: ~tau2
|
45
|
+
Ring endomorphism of Number Field in a with defining polynomial x^2 + 5
|
46
|
+
Defn: a |--> -a
|
47
|
+
|
48
|
+
sage: L.<z> = CyclotomicField(5)
|
49
|
+
sage: tau1, tau2, tau3, tau4 = L.automorphisms()
|
50
|
+
sage: (tau1, ~tau1)
|
51
|
+
(Ring endomorphism of Cyclotomic Field of order 5 and degree 4
|
52
|
+
Defn: z |--> z,
|
53
|
+
Ring endomorphism of Cyclotomic Field of order 5 and degree 4
|
54
|
+
Defn: z |--> z)
|
55
|
+
sage: (tau2, ~tau2)
|
56
|
+
(Ring endomorphism of Cyclotomic Field of order 5 and degree 4
|
57
|
+
Defn: z |--> z^2,
|
58
|
+
Ring endomorphism of Cyclotomic Field of order 5 and degree 4
|
59
|
+
Defn: z |--> z^3)
|
60
|
+
sage: (tau3, ~tau3)
|
61
|
+
(Ring endomorphism of Cyclotomic Field of order 5 and degree 4
|
62
|
+
Defn: z |--> z^3,
|
63
|
+
Ring endomorphism of Cyclotomic Field of order 5 and degree 4
|
64
|
+
Defn: z |--> z^2)
|
65
|
+
|
66
|
+
sage: M.<w> = NumberField(x^4 - 5*x + 5)
|
67
|
+
sage: phi = M.hom([z - z^2]); phi
|
68
|
+
Ring morphism:
|
69
|
+
From: Number Field in w with defining polynomial x^4 - 5*x + 5
|
70
|
+
To: Cyclotomic Field of order 5 and degree 4
|
71
|
+
Defn: w |--> -z^2 + z
|
72
|
+
sage: phi^-1
|
73
|
+
Ring morphism:
|
74
|
+
From: Cyclotomic Field of order 5 and degree 4
|
75
|
+
To: Number Field in w with defining polynomial x^4 - 5*x + 5
|
76
|
+
Defn: z |--> 3/11*w^3 + 4/11*w^2 + 9/11*w - 14/11
|
77
|
+
"""
|
78
|
+
K = self.domain()
|
79
|
+
L = self.codomain()
|
80
|
+
if K.degree() != L.degree():
|
81
|
+
raise TypeError("Can only invert isomorphisms")
|
82
|
+
V, V_into_K, _ = K.vector_space()
|
83
|
+
_, _, L_into_W = L.vector_space()
|
84
|
+
linear_inverse = ~V.hom([(L_into_W * self * V_into_K)(b)
|
85
|
+
for b in V.basis()])
|
86
|
+
return L.hom([(V_into_K * linear_inverse * L_into_W)(b)
|
87
|
+
for b in [L.gen()]])
|
88
|
+
|
89
|
+
def preimage(self, y):
|
90
|
+
r"""
|
91
|
+
Compute a preimage of `y` in the domain, provided one exists.
|
92
|
+
Raises a :exc:`ValueError` if `y` has no preimage.
|
93
|
+
|
94
|
+
INPUT:
|
95
|
+
|
96
|
+
- ``y`` -- an element of the codomain of ``self``
|
97
|
+
|
98
|
+
OUTPUT:
|
99
|
+
|
100
|
+
Returns the preimage of `y` in the domain, if one exists.
|
101
|
+
Raises a :exc:`ValueError` if `y` has no preimage.
|
102
|
+
|
103
|
+
EXAMPLES::
|
104
|
+
|
105
|
+
sage: x = polygen(ZZ, 'x')
|
106
|
+
sage: K.<a> = NumberField(x^2 - 7)
|
107
|
+
sage: L.<b> = NumberField(x^4 - 7)
|
108
|
+
sage: f = K.embeddings(L)[0]
|
109
|
+
sage: f.preimage(3*b^2 - 12/7)
|
110
|
+
3*a - 12/7
|
111
|
+
sage: f.preimage(b)
|
112
|
+
Traceback (most recent call last):
|
113
|
+
...
|
114
|
+
ValueError: Element 'b' is not in the image of this homomorphism.
|
115
|
+
|
116
|
+
::
|
117
|
+
|
118
|
+
sage: # needs sage.libs.linbox
|
119
|
+
sage: F.<b> = QuadraticField(23)
|
120
|
+
sage: G.<a> = F.extension(x^3 + 5)
|
121
|
+
sage: f = F.embeddings(G)[0]
|
122
|
+
sage: f.preimage(a^3 + 2*b + 3)
|
123
|
+
2*b - 2
|
124
|
+
"""
|
125
|
+
# Throughout this method I am using the convention that self is a homomorphism from the number field K to the number field L
|
126
|
+
# Therefore, I use the names K and L in place of domain and codomain
|
127
|
+
|
128
|
+
# try to get the cached transformation matrix and vector space isomorphisms if they exist
|
129
|
+
try:
|
130
|
+
M,LtoV,VtoK = self._transformation_data
|
131
|
+
except Exception:
|
132
|
+
# get the identifications of K and L with vector spaces over Q
|
133
|
+
V,VtoL,LtoV = self.codomain().absolute_vector_space()
|
134
|
+
V,VtoK,KtoV = self.domain().absolute_vector_space()
|
135
|
+
# construct the transformation matrix from K to L by making the columns be the image of the basis of V_K in V_L using the homomorphism
|
136
|
+
from sage.matrix.constructor import matrix
|
137
|
+
from sage.rings.rational_field import QQ
|
138
|
+
M = matrix(QQ, [LtoV(self(VtoK(e))) for e in V.basis()]).transpose()
|
139
|
+
self._transformation_data = (M,LtoV,VtoK)
|
140
|
+
|
141
|
+
# get the coordinate vector of y, solve the linear system, pass to domain
|
142
|
+
yvec = LtoV(y) # pass from a point in L to its vector space representation
|
143
|
+
try:
|
144
|
+
xvec = M.solve_right(yvec) # solve the linear system, throws an exception if there is no solution
|
145
|
+
except ValueError:
|
146
|
+
raise ValueError("Element '{}' is not in the image of this homomorphism.".format(y))
|
147
|
+
return VtoK(xvec) # pass from the vector space representation of K back to a point in K
|
148
|
+
|
149
|
+
|
150
|
+
class RelativeNumberFieldHomomorphism_from_abs(RingHomomorphism):
|
151
|
+
r"""
|
152
|
+
A homomorphism from a relative number field to some other ring, stored as a
|
153
|
+
homomorphism from the corresponding absolute field.
|
154
|
+
"""
|
155
|
+
|
156
|
+
def __init__(self, parent, abs_hom):
|
157
|
+
r"""
|
158
|
+
EXAMPLES::
|
159
|
+
|
160
|
+
sage: x = polygen(ZZ, 'x')
|
161
|
+
sage: K.<a, b> = NumberField([x^3 + 2, x^2 + x + 1])
|
162
|
+
sage: f = K.hom(-a*b - a, K); f
|
163
|
+
Relative number field endomorphism of
|
164
|
+
Number Field in a with defining polynomial x^3 + 2 over its base field
|
165
|
+
Defn: a |--> (-b - 1)*a
|
166
|
+
b |--> b
|
167
|
+
sage: type(f)
|
168
|
+
<class 'sage.rings.number_field.homset.RelativeNumberFieldHomset_with_category.element_class'>
|
169
|
+
"""
|
170
|
+
RingHomomorphism.__init__(self, parent)
|
171
|
+
self._abs_hom = abs_hom
|
172
|
+
K = abs_hom.domain()
|
173
|
+
from_K, to_K = K.structure()
|
174
|
+
self._from_K = from_K
|
175
|
+
self._to_K = to_K
|
176
|
+
|
177
|
+
def abs_hom(self):
|
178
|
+
r"""
|
179
|
+
Return the corresponding homomorphism from the absolute number field.
|
180
|
+
|
181
|
+
EXAMPLES::
|
182
|
+
|
183
|
+
sage: x = polygen(ZZ, 'x')
|
184
|
+
sage: K.<a, b> = NumberField([x^3 + 2, x^2 + x + 1])
|
185
|
+
sage: K.hom(a, K).abs_hom()
|
186
|
+
Ring morphism:
|
187
|
+
From: Number Field in a with defining polynomial
|
188
|
+
x^6 - 3*x^5 + 6*x^4 - 3*x^3 - 9*x + 9
|
189
|
+
To: Number Field in a with defining polynomial x^3 + 2 over its base field
|
190
|
+
Defn: a |--> a - b
|
191
|
+
"""
|
192
|
+
return self._abs_hom
|
193
|
+
|
194
|
+
def _repr_type(self):
|
195
|
+
r"""
|
196
|
+
A short string to identify the type of this homomorphism.
|
197
|
+
|
198
|
+
EXAMPLES::
|
199
|
+
|
200
|
+
sage: x = polygen(ZZ, 'x')
|
201
|
+
sage: K.<a, b> = NumberField([x^3 + 2, x^2 + x + 1])
|
202
|
+
sage: K.hom(a, K)._repr_type()
|
203
|
+
'Relative number field'
|
204
|
+
"""
|
205
|
+
return "Relative number field"
|
206
|
+
|
207
|
+
@cached_method
|
208
|
+
def im_gens(self):
|
209
|
+
r"""
|
210
|
+
Return the images of the generators under this map.
|
211
|
+
|
212
|
+
EXAMPLES::
|
213
|
+
|
214
|
+
sage: x = polygen(ZZ, 'x')
|
215
|
+
sage: K.<a, b> = NumberField([x^3 + 2, x^2 + x + 1])
|
216
|
+
sage: K.hom(a, K).im_gens()
|
217
|
+
[a, b]
|
218
|
+
"""
|
219
|
+
D = self.domain()
|
220
|
+
C = self.codomain()
|
221
|
+
return Sequence([self(x) for x in D.gens()], universe=C, check=False, immutable=True)
|
222
|
+
|
223
|
+
def _richcmp_(self, other, op):
|
224
|
+
"""
|
225
|
+
Compare.
|
226
|
+
|
227
|
+
EXAMPLES::
|
228
|
+
|
229
|
+
sage: x = polygen(ZZ, 'x')
|
230
|
+
sage: K.<a, b> = NumberField([x^2 - 2, x^2 - 3])
|
231
|
+
sage: e, u, v, w = End(K)
|
232
|
+
sage: all([u^2 == e, u*v == w, u != e])
|
233
|
+
True
|
234
|
+
"""
|
235
|
+
return richcmp(self.abs_hom(), other.abs_hom(), op)
|
236
|
+
|
237
|
+
def _repr_defn(self):
|
238
|
+
r"""
|
239
|
+
Return a string describing the images of the generators under this map.
|
240
|
+
|
241
|
+
EXAMPLES::
|
242
|
+
|
243
|
+
sage: x = polygen(ZZ, 'x')
|
244
|
+
sage: K.<a, b> = NumberField([x^3 + 2, x^2 + x + 1])
|
245
|
+
sage: K.hom(a, K)._repr_defn()
|
246
|
+
'a |--> a\nb |--> b'
|
247
|
+
"""
|
248
|
+
D = self.domain()
|
249
|
+
ig = self.im_gens()
|
250
|
+
return '\n'.join('%s |--> %s' % (D.gen(i), ig[i])
|
251
|
+
for i in range(D.ngens()))
|
252
|
+
|
253
|
+
def _call_(self, x):
|
254
|
+
r"""
|
255
|
+
Evaluate this map at the element ``x``.
|
256
|
+
|
257
|
+
This is done by first
|
258
|
+
converting ``x`` to an element of the absolute field and then
|
259
|
+
evaluating ``self.abs_hom()`` on it.
|
260
|
+
|
261
|
+
EXAMPLES::
|
262
|
+
|
263
|
+
sage: x = polygen(ZZ, 'x')
|
264
|
+
sage: K.<a, b> = NumberField([x^3 + 2, x^2 + x + 1])
|
265
|
+
sage: K.hom(a*b, K)(17 + 3*a + 2*b) # indirect doctest
|
266
|
+
3*b*a + 2*b + 17
|
267
|
+
"""
|
268
|
+
return self._abs_hom(self._to_K(x))
|
269
|
+
|
270
|
+
|
271
|
+
class CyclotomicFieldHomomorphism_im_gens(NumberFieldHomomorphism_im_gens):
|
272
|
+
pass
|