passagemath-flint 10.6.1rc10__cp310-cp310-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-310-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-310-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-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/chrompoly.pyx +555 -0
- sage/graphs/matchpoly.cpython-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-aarch64-linux-gnu.so +0 -0
- sage/matrix/change_ring.pyx +43 -0
- sage/matrix/matrix_complex_ball_dense.cpython-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-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-310-aarch64-linux-gnu.so +0 -0
- sage/rings/factorint_flint.pyx +99 -0
- sage/rings/fraction_field_FpT.cpython-310-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-310-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-310-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-310-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-310-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-310-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/hilbert.pyx +602 -0
- sage/rings/polynomial/polynomial_complex_arb.cpython-310-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-310-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-310-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_number_field.pyx +345 -0
- sage/rings/polynomial/polynomial_rational_flint.cpython-310-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-310-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-310-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-310-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-310-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-310-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-310-aarch64-linux-gnu.so +0 -0
- sage/rings/real_interval_absolute.pyx +1073 -0
- sage/rings/real_mpfi.cpython-310-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-310-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,172 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# distutils: libraries = flint
|
3
|
+
# distutils: depends = flint/qqbar.h
|
4
|
+
|
5
|
+
################################################################################
|
6
|
+
# This file is auto-generated by the script
|
7
|
+
# SAGE_ROOT/src/sage_setup/autogen/flint_autogen.py.
|
8
|
+
# From the commit 3e2c3a3e091106a25ca9c6fba28e02f2cbcd654a
|
9
|
+
# Do not modify by hand! Fix and rerun the script instead.
|
10
|
+
################################################################################
|
11
|
+
|
12
|
+
from libc.stdio cimport FILE
|
13
|
+
from sage.libs.gmp.types cimport *
|
14
|
+
from sage.libs.mpfr.types cimport *
|
15
|
+
from sage.libs.flint.types cimport *
|
16
|
+
|
17
|
+
cdef extern from "flint_wrap.h":
|
18
|
+
void qqbar_init(qqbar_t res) noexcept
|
19
|
+
void qqbar_clear(qqbar_t res) noexcept
|
20
|
+
qqbar_ptr _qqbar_vec_init(slong len) noexcept
|
21
|
+
void _qqbar_vec_clear(qqbar_ptr vec, slong len) noexcept
|
22
|
+
void qqbar_swap(qqbar_t x, qqbar_t y) noexcept
|
23
|
+
void qqbar_set(qqbar_t res, const qqbar_t x) noexcept
|
24
|
+
void qqbar_set_si(qqbar_t res, slong x) noexcept
|
25
|
+
void qqbar_set_ui(qqbar_t res, ulong x) noexcept
|
26
|
+
void qqbar_set_fmpz(qqbar_t res, const fmpz_t x) noexcept
|
27
|
+
void qqbar_set_fmpq(qqbar_t res, const fmpq_t x) noexcept
|
28
|
+
void qqbar_set_re_im(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
|
29
|
+
int qqbar_set_d(qqbar_t res, double x) noexcept
|
30
|
+
int qqbar_set_re_im_d(qqbar_t res, double x, double y) noexcept
|
31
|
+
slong qqbar_degree(const qqbar_t x) noexcept
|
32
|
+
bint qqbar_is_rational(const qqbar_t x) noexcept
|
33
|
+
bint qqbar_is_integer(const qqbar_t x) noexcept
|
34
|
+
bint qqbar_is_algebraic_integer(const qqbar_t x) noexcept
|
35
|
+
bint qqbar_is_zero(const qqbar_t x) noexcept
|
36
|
+
bint qqbar_is_one(const qqbar_t x) noexcept
|
37
|
+
bint qqbar_is_neg_one(const qqbar_t x) noexcept
|
38
|
+
bint qqbar_is_i(const qqbar_t x) noexcept
|
39
|
+
bint qqbar_is_neg_i(const qqbar_t x) noexcept
|
40
|
+
bint qqbar_is_real(const qqbar_t x) noexcept
|
41
|
+
void qqbar_height(fmpz_t res, const qqbar_t x) noexcept
|
42
|
+
slong qqbar_height_bits(const qqbar_t x) noexcept
|
43
|
+
int qqbar_within_limits(const qqbar_t x, slong deg_limit, slong bits_limit) noexcept
|
44
|
+
int qqbar_binop_within_limits(const qqbar_t x, const qqbar_t y, slong deg_limit, slong bits_limit) noexcept
|
45
|
+
void _qqbar_get_fmpq(fmpz_t num, fmpz_t den, const qqbar_t x) noexcept
|
46
|
+
void qqbar_get_fmpq(fmpq_t res, const qqbar_t x) noexcept
|
47
|
+
void qqbar_get_fmpz(fmpz_t res, const qqbar_t x) noexcept
|
48
|
+
void qqbar_zero(qqbar_t res) noexcept
|
49
|
+
void qqbar_one(qqbar_t res) noexcept
|
50
|
+
void qqbar_i(qqbar_t res) noexcept
|
51
|
+
void qqbar_phi(qqbar_t res) noexcept
|
52
|
+
void qqbar_print(const qqbar_t x) noexcept
|
53
|
+
void qqbar_printn(const qqbar_t x, slong n) noexcept
|
54
|
+
void qqbar_printnd(const qqbar_t x, slong n) noexcept
|
55
|
+
void qqbar_randtest(qqbar_t res, flint_rand_t state, slong deg, slong bits) noexcept
|
56
|
+
void qqbar_randtest_real(qqbar_t res, flint_rand_t state, slong deg, slong bits) noexcept
|
57
|
+
void qqbar_randtest_nonreal(qqbar_t res, flint_rand_t state, slong deg, slong bits) noexcept
|
58
|
+
bint qqbar_equal(const qqbar_t x, const qqbar_t y) noexcept
|
59
|
+
bint qqbar_equal_fmpq_poly_val(const qqbar_t x, const fmpq_poly_t f, const qqbar_t y) noexcept
|
60
|
+
int qqbar_cmp_re(const qqbar_t x, const qqbar_t y) noexcept
|
61
|
+
int qqbar_cmp_im(const qqbar_t x, const qqbar_t y) noexcept
|
62
|
+
int qqbar_cmpabs_re(const qqbar_t x, const qqbar_t y) noexcept
|
63
|
+
int qqbar_cmpabs_im(const qqbar_t x, const qqbar_t y) noexcept
|
64
|
+
int qqbar_cmpabs(const qqbar_t x, const qqbar_t y) noexcept
|
65
|
+
int qqbar_cmp_root_order(const qqbar_t x, const qqbar_t y) noexcept
|
66
|
+
ulong qqbar_hash(const qqbar_t x) noexcept
|
67
|
+
void qqbar_conj(qqbar_t res, const qqbar_t x) noexcept
|
68
|
+
void qqbar_re(qqbar_t res, const qqbar_t x) noexcept
|
69
|
+
void qqbar_im(qqbar_t res, const qqbar_t x) noexcept
|
70
|
+
void qqbar_re_im(qqbar_t res1, qqbar_t res2, const qqbar_t x) noexcept
|
71
|
+
void qqbar_abs(qqbar_t res, const qqbar_t x) noexcept
|
72
|
+
void qqbar_abs2(qqbar_t res, const qqbar_t x) noexcept
|
73
|
+
void qqbar_sgn(qqbar_t res, const qqbar_t x) noexcept
|
74
|
+
int qqbar_sgn_re(const qqbar_t x) noexcept
|
75
|
+
int qqbar_sgn_im(const qqbar_t x) noexcept
|
76
|
+
int qqbar_csgn(const qqbar_t x) noexcept
|
77
|
+
void qqbar_floor(fmpz_t res, const qqbar_t x) noexcept
|
78
|
+
void qqbar_ceil(fmpz_t res, const qqbar_t x) noexcept
|
79
|
+
void qqbar_neg(qqbar_t res, const qqbar_t x) noexcept
|
80
|
+
void qqbar_add(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
|
81
|
+
void qqbar_add_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
|
82
|
+
void qqbar_add_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
|
83
|
+
void qqbar_add_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
|
84
|
+
void qqbar_add_si(qqbar_t res, const qqbar_t x, slong y) noexcept
|
85
|
+
void qqbar_sub(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
|
86
|
+
void qqbar_sub_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
|
87
|
+
void qqbar_sub_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
|
88
|
+
void qqbar_sub_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
|
89
|
+
void qqbar_sub_si(qqbar_t res, const qqbar_t x, slong y) noexcept
|
90
|
+
void qqbar_fmpq_sub(qqbar_t res, const fmpq_t x, const qqbar_t y) noexcept
|
91
|
+
void qqbar_fmpz_sub(qqbar_t res, const fmpz_t x, const qqbar_t y) noexcept
|
92
|
+
void qqbar_ui_sub(qqbar_t res, ulong x, const qqbar_t y) noexcept
|
93
|
+
void qqbar_si_sub(qqbar_t res, slong x, const qqbar_t y) noexcept
|
94
|
+
void qqbar_mul(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
|
95
|
+
void qqbar_mul_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
|
96
|
+
void qqbar_mul_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
|
97
|
+
void qqbar_mul_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
|
98
|
+
void qqbar_mul_si(qqbar_t res, const qqbar_t x, slong y) noexcept
|
99
|
+
void qqbar_mul_2exp_si(qqbar_t res, const qqbar_t x, slong e) noexcept
|
100
|
+
void qqbar_sqr(qqbar_t res, const qqbar_t x) noexcept
|
101
|
+
void qqbar_inv(qqbar_t res, const qqbar_t x) noexcept
|
102
|
+
void qqbar_div(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
|
103
|
+
void qqbar_div_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
|
104
|
+
void qqbar_div_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
|
105
|
+
void qqbar_div_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
|
106
|
+
void qqbar_div_si(qqbar_t res, const qqbar_t x, slong y) noexcept
|
107
|
+
void qqbar_fmpq_div(qqbar_t res, const fmpq_t x, const qqbar_t y) noexcept
|
108
|
+
void qqbar_fmpz_div(qqbar_t res, const fmpz_t x, const qqbar_t y) noexcept
|
109
|
+
void qqbar_ui_div(qqbar_t res, ulong x, const qqbar_t y) noexcept
|
110
|
+
void qqbar_si_div(qqbar_t res, slong x, const qqbar_t y) noexcept
|
111
|
+
void qqbar_scalar_op(qqbar_t res, const qqbar_t x, const fmpz_t a, const fmpz_t b, const fmpz_t c) noexcept
|
112
|
+
void qqbar_sqrt(qqbar_t res, const qqbar_t x) noexcept
|
113
|
+
void qqbar_sqrt_ui(qqbar_t res, ulong x) noexcept
|
114
|
+
void qqbar_rsqrt(qqbar_t res, const qqbar_t x) noexcept
|
115
|
+
void qqbar_pow_ui(qqbar_t res, const qqbar_t x, ulong n) noexcept
|
116
|
+
void qqbar_pow_si(qqbar_t res, const qqbar_t x, slong n) noexcept
|
117
|
+
void qqbar_pow_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t n) noexcept
|
118
|
+
void qqbar_pow_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t n) noexcept
|
119
|
+
void qqbar_root_ui(qqbar_t res, const qqbar_t x, ulong n) noexcept
|
120
|
+
void qqbar_fmpq_root_ui(qqbar_t res, const fmpq_t x, ulong n) noexcept
|
121
|
+
void qqbar_fmpq_pow_si_ui(qqbar_t res, const fmpq_t x, slong m, ulong n) noexcept
|
122
|
+
int qqbar_pow(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
|
123
|
+
void qqbar_get_acb(acb_t res, const qqbar_t x, slong prec) noexcept
|
124
|
+
void qqbar_get_arb(arb_t res, const qqbar_t x, slong prec) noexcept
|
125
|
+
void qqbar_get_arb_re(arb_t res, const qqbar_t x, slong prec) noexcept
|
126
|
+
void qqbar_get_arb_im(arb_t res, const qqbar_t x, slong prec) noexcept
|
127
|
+
void qqbar_cache_enclosure(qqbar_t res, slong prec) noexcept
|
128
|
+
void qqbar_denominator(fmpz_t res, const qqbar_t y) noexcept
|
129
|
+
void qqbar_numerator(qqbar_t res, const qqbar_t y) noexcept
|
130
|
+
void qqbar_conjugates(qqbar_ptr res, const qqbar_t x) noexcept
|
131
|
+
void _qqbar_evaluate_fmpq_poly(qqbar_t res, const fmpz * poly, const fmpz_t den, slong len, const qqbar_t x) noexcept
|
132
|
+
void qqbar_evaluate_fmpq_poly(qqbar_t res, const fmpq_poly_t poly, const qqbar_t x) noexcept
|
133
|
+
void _qqbar_evaluate_fmpz_poly(qqbar_t res, const fmpz * poly, slong len, const qqbar_t x) noexcept
|
134
|
+
void qqbar_evaluate_fmpz_poly(qqbar_t res, const fmpz_poly_t poly, const qqbar_t x) noexcept
|
135
|
+
int qqbar_evaluate_fmpz_mpoly_iter(qqbar_t res, const fmpz_mpoly_t poly, qqbar_srcptr x, slong deg_limit, slong bits_limit, const fmpz_mpoly_ctx_t ctx) noexcept
|
136
|
+
int qqbar_evaluate_fmpz_mpoly_horner(qqbar_t res, const fmpz_mpoly_t poly, qqbar_srcptr x, slong deg_limit, slong bits_limit, const fmpz_mpoly_ctx_t ctx) noexcept
|
137
|
+
int qqbar_evaluate_fmpz_mpoly(qqbar_t res, const fmpz_mpoly_t poly, qqbar_srcptr x, slong deg_limit, slong bits_limit, const fmpz_mpoly_ctx_t ctx) noexcept
|
138
|
+
void qqbar_roots_fmpz_poly(qqbar_ptr res, const fmpz_poly_t poly, int flags) noexcept
|
139
|
+
void qqbar_roots_fmpq_poly(qqbar_ptr res, const fmpq_poly_t poly, int flags) noexcept
|
140
|
+
void qqbar_eigenvalues_fmpz_mat(qqbar_ptr res, const fmpz_mat_t mat, int flags) noexcept
|
141
|
+
void qqbar_eigenvalues_fmpq_mat(qqbar_ptr res, const fmpq_mat_t mat, int flags) noexcept
|
142
|
+
void qqbar_root_of_unity(qqbar_t res, slong p, ulong q) noexcept
|
143
|
+
bint qqbar_is_root_of_unity(slong * p, ulong * q, const qqbar_t x) noexcept
|
144
|
+
void qqbar_exp_pi_i(qqbar_t res, slong p, ulong q) noexcept
|
145
|
+
void qqbar_cos_pi(qqbar_t res, slong p, ulong q) noexcept
|
146
|
+
void qqbar_sin_pi(qqbar_t res, slong p, ulong q) noexcept
|
147
|
+
int qqbar_tan_pi(qqbar_t res, slong p, ulong q) noexcept
|
148
|
+
int qqbar_cot_pi(qqbar_t res, slong p, ulong q) noexcept
|
149
|
+
int qqbar_sec_pi(qqbar_t res, slong p, ulong q) noexcept
|
150
|
+
int qqbar_csc_pi(qqbar_t res, slong p, ulong q) noexcept
|
151
|
+
int qqbar_log_pi_i(slong * p, ulong * q, const qqbar_t x) noexcept
|
152
|
+
int qqbar_atan_pi(slong * p, ulong * q, const qqbar_t x) noexcept
|
153
|
+
int qqbar_asin_pi(slong * p, ulong * q, const qqbar_t x) noexcept
|
154
|
+
int qqbar_acos_pi(slong * p, ulong * q, const qqbar_t x) noexcept
|
155
|
+
int qqbar_acot_pi(slong * p, ulong * q, const qqbar_t x) noexcept
|
156
|
+
int qqbar_asec_pi(slong * p, ulong * q, const qqbar_t x) noexcept
|
157
|
+
int qqbar_acsc_pi(slong * p, ulong * q, const qqbar_t x) noexcept
|
158
|
+
int qqbar_guess(qqbar_t res, const acb_t z, slong max_deg, slong max_bits, int flags, slong prec) noexcept
|
159
|
+
int qqbar_express_in_field(fmpq_poly_t res, const qqbar_t alpha, const qqbar_t x, slong max_bits, int flags, slong prec) noexcept
|
160
|
+
void qqbar_get_quadratic(fmpz_t a, fmpz_t b, fmpz_t c, fmpz_t q, const qqbar_t x, int factoring) noexcept
|
161
|
+
int qqbar_set_fexpr(qqbar_t res, const fexpr_t expr) noexcept
|
162
|
+
void qqbar_get_fexpr_repr(fexpr_t res, const qqbar_t x) noexcept
|
163
|
+
void qqbar_get_fexpr_root_nearest(fexpr_t res, const qqbar_t x) noexcept
|
164
|
+
void qqbar_get_fexpr_root_indexed(fexpr_t res, const qqbar_t x) noexcept
|
165
|
+
int qqbar_get_fexpr_formula(fexpr_t res, const qqbar_t x, ulong flags) noexcept
|
166
|
+
void qqbar_fmpz_poly_composed_op(fmpz_poly_t res, const fmpz_poly_t A, const fmpz_poly_t B, int op) noexcept
|
167
|
+
void qqbar_binary_op(qqbar_t res, const qqbar_t x, const qqbar_t y, int op) noexcept
|
168
|
+
int _qqbar_validate_uniqueness(acb_t res, const fmpz_poly_t poly, const acb_t z, slong max_prec) noexcept
|
169
|
+
int _qqbar_validate_existence_uniqueness(acb_t res, const fmpz_poly_t poly, const acb_t z, slong max_prec) noexcept
|
170
|
+
void _qqbar_enclosure_raw(acb_t res, const fmpz_poly_t poly, const acb_t z, slong prec) noexcept
|
171
|
+
void qqbar_enclosure_raw(acb_t res, const qqbar_t x, slong prec) noexcept
|
172
|
+
int _qqbar_acb_lindep(fmpz * rel, acb_srcptr vec, slong len, int check, slong prec) noexcept
|
Binary file
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# distutils: libraries = flint
|
3
|
+
# distutils: depends = flint/qsieve.h
|
4
|
+
|
5
|
+
################################################################################
|
6
|
+
# This file is auto-generated by the script
|
7
|
+
# SAGE_ROOT/src/sage_setup/autogen/flint_autogen.py.
|
8
|
+
# From the commit 3e2c3a3e091106a25ca9c6fba28e02f2cbcd654a
|
9
|
+
# Do not modify by hand! Fix and rerun the script instead.
|
10
|
+
################################################################################
|
11
|
+
|
12
|
+
from libc.stdio cimport FILE
|
13
|
+
from sage.libs.gmp.types cimport *
|
14
|
+
from sage.libs.mpfr.types cimport *
|
15
|
+
from sage.libs.flint.types cimport *
|
16
|
+
|
17
|
+
cdef extern from "flint_wrap.h":
|
18
|
+
mp_limb_t qsieve_knuth_schroeppel(qs_t qs_inf) noexcept
|
19
|
+
mp_limb_t qsieve_primes_init(qs_t qs_inf) noexcept
|
20
|
+
mp_limb_t qsieve_primes_increment(qs_t qs_inf, mp_limb_t delta) noexcept
|
21
|
+
void qsieve_init_A0(qs_t qs_inf) noexcept
|
22
|
+
void qsieve_next_A0(qs_t qs_inf) noexcept
|
23
|
+
void qsieve_compute_pre_data(qs_t qs_inf) noexcept
|
24
|
+
void qsieve_init_poly_first(qs_t qs_inf) noexcept
|
25
|
+
void qsieve_init_poly_next(qs_t qs_inf, slong i) noexcept
|
26
|
+
void qsieve_compute_C(fmpz_t C, qs_t qs_inf, qs_poly_t poly) noexcept
|
27
|
+
void qsieve_do_sieving(qs_t qs_inf, unsigned char * sieve, qs_poly_t poly) noexcept
|
28
|
+
void qsieve_do_sieving2(qs_t qs_inf, unsigned char * sieve, qs_poly_t poly) noexcept
|
29
|
+
slong qsieve_evaluate_candidate(qs_t qs_inf, ulong i, unsigned char * sieve, qs_poly_t poly) noexcept
|
30
|
+
slong qsieve_evaluate_sieve(qs_t qs_inf, unsigned char * sieve, qs_poly_t poly) noexcept
|
31
|
+
slong qsieve_collect_relations(qs_t qs_inf, unsigned char * sieve) noexcept
|
32
|
+
void qsieve_write_to_file(qs_t qs_inf, mp_limb_t prime, const fmpz_t Y, const qs_poly_t poly) noexcept
|
33
|
+
hash_t * qsieve_get_table_entry(qs_t qs_inf, mp_limb_t prime) noexcept
|
34
|
+
void qsieve_add_to_hashtable(qs_t qs_inf, mp_limb_t prime) noexcept
|
35
|
+
relation_t qsieve_parse_relation(qs_t qs_inf, char * str) noexcept
|
36
|
+
relation_t qsieve_merge_relation(qs_t qs_inf, relation_t a, relation_t b) noexcept
|
37
|
+
int qsieve_compare_relation(const void * a, const void * b) noexcept
|
38
|
+
int qsieve_remove_duplicates(relation_t * rel_list, slong num_relations) noexcept
|
39
|
+
void qsieve_insert_relation2(qs_t qs_inf, relation_t * rel_list, slong num_relations) noexcept
|
40
|
+
int qsieve_process_relation(qs_t qs_inf) noexcept
|
41
|
+
void qsieve_factor(fmpz_factor_t factors, const fmpz_t n) noexcept
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
r"""
|
3
|
+
Deprecated module.
|
4
|
+
|
5
|
+
Functions were moved in qsieve_sage.pyx.
|
6
|
+
|
7
|
+
TESTS::
|
8
|
+
|
9
|
+
sage: from sage.libs.flint.qsieve import qsieve
|
10
|
+
sage: qsieve(1000)
|
11
|
+
doctest:warning
|
12
|
+
...
|
13
|
+
DeprecationWarning:
|
14
|
+
Importing qsieve from here is deprecated; please use "from sage.libs.flint.qsieve_sage import qsieve" instead.
|
15
|
+
See https://github.com/sagemath/sage/issues/36449 for details.
|
16
|
+
[(2, 3), (5, 3)]
|
17
|
+
"""
|
18
|
+
|
19
|
+
from sage.misc.lazy_import import LazyImport
|
20
|
+
|
21
|
+
qsieve = LazyImport('sage.libs.flint.qsieve_sage', 'qsieve', deprecation=36449)
|
Binary file
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
"""
|
3
|
+
Interface to FLINT's ``qsieve_factor()``. This used to interact
|
4
|
+
with an external "QuadraticSieve" program, but its functionality has
|
5
|
+
been absorbed into flint.
|
6
|
+
"""
|
7
|
+
|
8
|
+
from cysignals.signals cimport sig_on, sig_off
|
9
|
+
from .types cimport fmpz_t, fmpz_factor_t
|
10
|
+
from .fmpz cimport fmpz_init, fmpz_set_mpz
|
11
|
+
from .fmpz_factor cimport fmpz_factor_init, fmpz_factor_clear
|
12
|
+
from .fmpz_factor_sage cimport fmpz_factor_to_pairlist
|
13
|
+
from .qsieve cimport qsieve_factor
|
14
|
+
from sage.rings.integer cimport Integer
|
15
|
+
|
16
|
+
|
17
|
+
def qsieve(n):
|
18
|
+
r"""
|
19
|
+
Factor ``n`` using the quadratic sieve.
|
20
|
+
|
21
|
+
INPUT:
|
22
|
+
|
23
|
+
- ``n`` -- integer; neither prime nor a perfect power
|
24
|
+
|
25
|
+
OUTPUT:
|
26
|
+
|
27
|
+
A list of the factors of ``n``. There is no guarantee that the
|
28
|
+
factors found will be prime, or distinct.
|
29
|
+
|
30
|
+
EXAMPLES::
|
31
|
+
|
32
|
+
sage: # needs sage.libs.pari
|
33
|
+
sage: k = 19; n = next_prime(10^k)*next_prime(10^(k+1))
|
34
|
+
sage: factor(n) # (currently) uses PARI
|
35
|
+
10000000000000000051 * 100000000000000000039
|
36
|
+
sage: qsieve(n)
|
37
|
+
[(10000000000000000051, 1), (100000000000000000039, 1)]
|
38
|
+
|
39
|
+
TESTS:
|
40
|
+
|
41
|
+
The factorization of zero is undefined, to match the behavior of
|
42
|
+
``ZZ.zero().factor()``::
|
43
|
+
|
44
|
+
sage: qsieve(ZZ.zero())
|
45
|
+
Traceback (most recent call last):
|
46
|
+
...
|
47
|
+
ArithmeticError: factorization of 0 is not defined
|
48
|
+
"""
|
49
|
+
n = Integer(n)
|
50
|
+
|
51
|
+
if n.is_zero():
|
52
|
+
raise ArithmeticError("factorization of 0 is not defined")
|
53
|
+
|
54
|
+
cdef fmpz_t p
|
55
|
+
fmpz_init(p)
|
56
|
+
fmpz_set_mpz(p, (<Integer>n).value)
|
57
|
+
|
58
|
+
cdef fmpz_factor_t factors
|
59
|
+
fmpz_factor_init(factors)
|
60
|
+
sig_on()
|
61
|
+
qsieve_factor(factors, p)
|
62
|
+
sig_off()
|
63
|
+
|
64
|
+
pairs = fmpz_factor_to_pairlist(factors)
|
65
|
+
|
66
|
+
fmpz_factor_clear(factors)
|
67
|
+
return pairs
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-flint
|
2
|
+
# distutils: libraries = flint
|
3
|
+
# distutils: depends = flint/thread_pool.h
|
4
|
+
|
5
|
+
################################################################################
|
6
|
+
# This file is auto-generated by the script
|
7
|
+
# SAGE_ROOT/src/sage_setup/autogen/flint_autogen.py.
|
8
|
+
# From the commit 3e2c3a3e091106a25ca9c6fba28e02f2cbcd654a
|
9
|
+
# Do not modify by hand! Fix and rerun the script instead.
|
10
|
+
################################################################################
|
11
|
+
|
12
|
+
from libc.stdio cimport FILE
|
13
|
+
from sage.libs.gmp.types cimport *
|
14
|
+
from sage.libs.mpfr.types cimport *
|
15
|
+
from sage.libs.flint.types cimport *
|
16
|
+
|
17
|
+
cdef extern from "flint_wrap.h":
|
18
|
+
void thread_pool_init(thread_pool_t T, slong size) noexcept
|
19
|
+
slong thread_pool_get_size(thread_pool_t T) noexcept
|
20
|
+
int thread_pool_set_size(thread_pool_t T, slong new_size) noexcept
|
21
|
+
slong thread_pool_request(thread_pool_t T, thread_pool_handle * out, slong requested) noexcept
|
22
|
+
void thread_pool_wake(thread_pool_t T, thread_pool_handle i, int max_workers, void (*f)(void*), void * a) noexcept
|
23
|
+
void thread_pool_wait(thread_pool_t T, thread_pool_handle i) noexcept
|
24
|
+
void thread_pool_give_back(thread_pool_t T, thread_pool_handle i) noexcept
|
25
|
+
void thread_pool_clear(thread_pool_t T) noexcept
|