Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save edgarcosta/a784e6d50606ef7711a085d0e42fb72f to your computer and use it in GitHub Desktop.
Save edgarcosta/a784e6d50606ef7711a085d0e42fb72f to your computer and use it in GitHub Desktop.
.github/codecov.yml | 4 +
.github/workflows/CI.yml | 175 +-
.github/workflows/push_CI.yml | 65 +-
.github/workflows/release.yml | 124 +-
.gitignore | 10 +-
AUTHORS | 4 +-
CMake/FindCBLAS.cmake | 33 +-
CMake/Findgmp.cmake | 66 +
CMake/Findmpfr.cmake | 57 +
CMake/cmake_config.h.in | 5 +-
CMakeLists.txt | 166 +-
INSTALL | 2 +-
Makefile.in | 139 +-
README.md | 2 +-
TODO.md | 280 +++
VERSION | 2 +-
acinclude.m4 | 276 ++-
bootstrap.sh | 6 +-
config/config.guess | 1218 ++++++++++++
config/config.sub | 165 ++
config/configfsf.guess | 1774 +++++++++++++++++
config/configfsf.sub | 1914 ++++++++++++++++++
configure.ac | 627 ++++--
deprecations.txt | 2 +-
dev/check_examples.sh | 22 +-
dev/gen_mul_basecase.py | 16 +
doc/source/acb_theta.rst | 2 +-
doc/source/building.rst | 15 +-
doc/source/flint.rst | 28 +-
doc/source/fmpz.rst | 73 +-
doc/source/fmpz_factor.rst | 16 -
doc/source/fmpz_poly.rst | 2 +-
doc/source/fq_default.rst | 98 +-
doc/source/gr.rst | 4 +-
doc/source/gr_domains.rst | 63 +-
doc/source/gr_mat.rst | 35 +-
doc/source/gr_poly.rst | 71 +
doc/source/history.rst | 170 ++
doc/source/index.rst | 2 +
doc/source/index_integers_mod.rst | 1 +
doc/source/introduction.rst | 2 +-
doc/source/longlong.rst | 111 +-
doc/source/mpfr_mat.rst | 13 +-
doc/source/mpfr_vec.rst | 24 +-
doc/source/mpn_extras.rst | 193 +-
doc/source/mpn_mod.rst | 288 +++
doc/source/mpoly.rst | 18 +-
doc/source/nfloat.rst | 321 +++
doc/source/nmod_poly.rst | 6 +-
doc/source/qqbar.rst | 35 +
doc/source/references.rst | 8 +-
doc/source/ulong_extras.rst | 15 +-
examples/AKS.c | 215 ++
examples/bernoulli.c | 8 +-
examples/binet.c | 4 +-
examples/class_poly.c | 8 +-
examples/complex_plot.c | 16 +-
examples/crt.c | 6 +-
examples/delta_qexp.c | 6 +-
examples/dft.c | 6 +-
examples/elementary.c | 8 +-
examples/factor_integer.c | 28 +-
examples/factor_polynomial.c | 10 +-
examples/fmpq_poly.c | 2 +-
examples/fmpz_mod_poly.c | 8 +-
examples/fmpz_poly_factor_zassenhaus.c | 10 +-
examples/fmpz_poly_q.c | 8 +-
examples/fpwrap.c | 2 +-
examples/fq_poly.c | 9 +-
examples/functions_benchmark.c | 16 +-
examples/hilbert_matrix.c | 6 +-
examples/hilbert_matrix_ca.c | 12 +-
examples/huge_expr.c | 6 +-
examples/integrals.c | 13 +-
examples/integrals_double_exp.c | 480 +++++
examples/keiper_li.c | 8 +-
examples/lcentral.c | 4 +-
examples/logistic.c | 4 +-
examples/lvalue.c | 4 +-
examples/machin.c | 4 +-
examples/multi_crt.c | 6 +-
examples/padic.c | 4 +-
examples/partitions.c | 8 +-
examples/pi.c | 4 +-
examples/poly_roots.c | 12 +-
examples/primegen.c | 4 +-
examples/qadic.c | 2 +-
examples/radix.c | 10 +-
examples/real_roots.c | 10 +-
examples/stirling_matrix.c | 8 +-
examples/swinnerton_dyer_poly.c | 10 +-
examples/taylor_integrals.c | 8 +-
examples/zeta_zeros.c | 4 +-
flintConfig.cmake.in | 18 +
src/NTL-interface.h | 4 +-
src/acb/dot_fmpz.c | 2 +-
src/acb_dft/profile/p-convol.c | 2 +-
src/acb_dft/profile/p-dft.c | 2 +-
src/acb_dirichlet/profile/p-vec.c | 4 +-
src/acb_dirichlet/zeta.c | 19 +-
src/acb_theta/profile/p-ql_a0.c | 4 +-
src/acb_theta/profile/p-ql_a0_split.c | 4 +-
src/acb_theta/profile/p-ql_a0_steps.c | 4 +-
src/acb_theta/profile/p-siegel_reduce.c | 4 +-
src/acb_theta/ql_all.c | 8 +-
src/acb_theta/transform_sqrtdet.c | 4 +-
src/arb/div.c | 4 +-
src/arb/dot_fmpz.c | 2 +-
src/arb/get_mpn_fixed_mod_log2.c | 1 +
src/arb/get_mpn_fixed_mod_pi4.c | 1 +
src/arb/set.c | 1 +
src/arb/sqrt.c | 6 +-
src/arb/test/t-atan_taylor_rs.c | 4 +-
src/arb/test/t-exp_taylor_rs.c | 8 +-
src/arb/test/t-sin_cos_taylor_rs.c | 12 +-
src/arf.h | 2 +-
src/arf/add_mpn.c | 1 +
src/arf/get.c | 5 +-
src/arf/io.c | 2 +-
src/arf/mul_via_mpfr.c | 1 +
src/arf/root.c | 1 +
src/arf/rsqrt.c | 1 +
src/arf/set.c | 1 +
src/arf/set_round.c | 1 +
src/arf/sqrt.c | 1 +
src/calcium.h | 2 +-
src/crt_helpers.h | 17 +-
src/d_vec/add.c | 2 +-
src/d_vec/sub.c | 2 +-
src/dlog/profile/p-precomp.c | 4 +-
src/dlog/profile/p-vec.c | 4 +-
src/dlog/rho.c | 4 +-
src/fexpr.h | 24 +-
src/fexpr/arg.c | 1 +
src/fexpr/call0.c | 1 +
src/fexpr/call1.c | 1 +
src/fexpr/call2.c | 1 +
src/fexpr/call3.c | 1 +
src/fexpr/call4.c | 1 +
src/fexpr/call_vec.c | 1 +
src/fexpr/contains.c | 8 +-
src/fexpr/func.c | 1 +
src/fexpr/set_fmpz.c | 3 +-
src/fft.h | 6 +-
src/fft/adjust.c | 2 +-
src/fft/adjust_sqrt2.c | 2 +-
src/fft/butterfly_lshB.c | 1 -
src/fft/butterfly_rshB.c | 1 -
src/fft/combine_bits.c | 1 -
src/fft/convolution_precache.c | 0
src/fft/div_2expmod_2expp1.c | 2 +-
src/fft/fermat_to_mpz.c | 2 +-
src/fft/fft_mfa_truncate_sqrt2.c | 6 +-
src/fft/fft_mfa_truncate_sqrt2_inner.c | 4 +-
src/fft/fft_negacylic.c | 1 -
src/fft/fft_radix2.c | 1 -
src/fft/fft_truncate.c | 1 -
src/fft/fft_truncate_sqrt2.c | 2 +-
src/fft/ifft_mfa_truncate_sqrt2.c | 8 +-
src/fft/ifft_negacyclic.c | 1 -
src/fft/ifft_radix2.c | 1 -
src/fft/ifft_truncate.c | 1 -
src/fft/ifft_truncate_sqrt2.c | 4 +-
src/fft/inlines.c | 1 -
src/fft/mul_2expmod_2expp1.c | 2 +-
src/fft/mul_fft_main.c | 4 +-
src/fft/mul_mfa_truncate_sqrt2.c | 3 +-
src/fft/mul_truncate_sqrt2.c | 1 -
src/fft/mulmod_2expp1.c | 6 +-
src/fft/negmod_2expp1.c | 2 +-
src/fft/normmod_2expp1.c | 3 +-
src/fft/profile/p-mul_mfa_truncate_sqrt2.c | 9 +-
src/fft/profile/p-mul_truncate_sqrt2.c | 9 +-
src/fft/split_bits.c | 1 +
src/fft/test/t-adjust.c | 2 -
src/fft/test/t-adjust_sqrt2.c | 2 -
src/fft/test/t-butterfly.c | 2 -
src/fft/test/t-butterfly_lshB.c | 4 +-
src/fft/test/t-butterfly_rshB.c | 4 +-
src/fft/test/t-butterfly_sqrt2.c | 2 -
src/fft/test/t-butterfly_twiddle.c | 2 -
src/fft/test/t-convolution.c | 2 -
src/fft/test/t-convolution_precache.c | 2 -
src/fft/test/t-div_2expmod_2expp1.c | 2 -
src/fft/test/t-fft_ifft_mfa_truncate_sqrt2.c | 2 -
src/fft/test/t-fft_ifft_negacyclic.c | 2 -
src/fft/test/t-fft_ifft_radix2.c | 2 -
src/fft/test/t-fft_ifft_truncate.c | 2 -
src/fft/test/t-fft_ifft_truncate_sqrt2.c | 2 -
src/fft/test/t-mul_2expmod_2expp1.c | 2 -
src/fft/test/t-mul_fft_main.c | 6 +-
src/fft/test/t-mul_mfa_truncate_sqrt2.c | 2 -
src/fft/test/t-mul_truncate_sqrt2.c | 2 -
src/fft/test/t-mulmod_2expp1.c | 2 -
src/fft/test/t-negmod_2expp1.c | 2 -
src/fft/test/t-normmod_2expp1.c | 2 -
src/fft/test/t-split_combine_bits.c | 4 +-
src/fft/tune/tune-fft.c | 13 +-
src/fft_small.h | 6 +-
src/fft_small/fmpz_poly_mul.c | 23 +-
src/fft_small/mpn_mul.c | 98 +-
src/fft_small/nmod_poly_mul.c | 10 +-
src/fft_small/profile/p-fft_small_vs_gmp.c | 4 +-
src/fft_small/profile/p-nmod_poly_divrem.c | 4 +-
src/fft_small/profile/p-nmod_poly_mul.c | 4 +-
src/fft_small/sd_fft.c | 4 +-
src/fft_small/sd_ifft.c | 32 +-
src/fft_small/test/t-mpn_add_inplace_c.c | 10 +-
src/fft_tuning32.in | 19 -
src/fft_tuning64.in | 19 -
src/flint-config.h.in | 53 +-
src/flint.h.in | 161 +-
src/fmpq/fmpz_vector.c | 1 +
src/fmpq/get_cfrac_helpers.c | 2 +-
src/fmpq/harmonic_ui.c | 8 +-
src/fmpq/profile/p-reconstruct_fmpz_2.c | 4 +-
src/fmpq_mpoly.h | 36 +-
src/fmpq_mpoly/evaluate_all.c | 12 +-
src/fmpq_mpoly/get_coeff_fmpq_fmpz.c | 3 +-
src/fmpq_mpoly/is_monic.c | 2 +-
src/fmpq_mpoly/make_monic.c | 2 +-
src/fmpq_mpoly/push_term_fmpq_ui.c | 2 +-
src/fmpq_mpoly/rescale.c | 3 +-
src/fmpq_mpoly/univar.c | 6 +-
src/fmpq_mpoly_factor.h | 12 +-
src/fmpq_mpoly_factor/factor_make_integral.c | 2 +-
src/fmpq_mpoly_factor/factor_make_monic.c | 2 +-
src/fmpq_mpoly_factor/init.c | 2 +-
src/fmpq_poly.h | 13 +-
src/fmpq_poly/exp_series.c | 8 +-
src/fmpq_poly/integral.c | 4 +-
src/fmpq_poly/io.c | 2 +-
src/fmpq_poly/legendre_p.c | 3 +-
src/fmpq_poly/make_monic.c | 2 +-
src/fmpq_poly/nth_derivative.c | 2 +-
src/fmpq_poly/power_sums_to_poly.c | 2 +-
src/fmpq_poly/powers_precompute.c | 2 +-
src/fmpq_poly/primitive_part.c | 2 +-
src/fmpq_poly/realloc.c | 1 +
src/fmpq_poly/rem.c | 2 +-
src/fmpq_poly/set_coeff.c | 1 +
src/fmpq_poly/set_str.c | 2 +-
src/fmpq_poly/test/main.c | 6 +
src/fmpq_poly/test/t-gegenbauer_c.c | 4 +-
src/fmpq_poly/test/t-print_read.c | 6 +
src/fmpq_vec/randtest_uniq_sorted.c | 2 +-
src/fmpz.h | 11 +-
src/fmpz/abs.c | 2 +-
src/fmpz/abs_lbound_ui_2exp.c | 2 +-
src/fmpz/abs_ubound_ui_2exp.c | 2 +-
src/fmpz/add.c | 14 +-
src/fmpz/addmul.c | 2 +-
src/fmpz/aors_ui.c | 4 +-
src/fmpz/bin_uiui.c | 2 +-
src/fmpz/bit_pack.c | 6 +-
src/fmpz/bit_unpack.c | 6 +-
src/fmpz/cdiv.c | 14 +-
src/fmpz/clear_readonly.c | 2 +-
src/fmpz/div_newton.c | 5 +-
src/fmpz/divexact.c | 6 +-
src/fmpz/divides.c | 2 +-
src/fmpz/equal.c | 2 +-
src/fmpz/fdiv.c | 30 +-
src/fmpz/gcd.c | 15 +-
src/fmpz/get.c | 6 +-
src/fmpz/get_str.c | 7 +-
src/fmpz/init2.c | 2 +-
src/fmpz/inlines.c | 10 +-
src/fmpz/invmod.c | 4 +-
src/fmpz/is_canonical.c | 2 +-
src/fmpz/is_perfect_power.c | 2 +-
src/fmpz/is_prime.c | 2 +-
src/fmpz/is_strong_probabprime.c | 8 +-
src/fmpz/link/fmpz_gc.c | 26 +-
src/fmpz/link/fmpz_reentrant.c | 16 +-
src/fmpz/link/fmpz_single.c | 24 +-
src/fmpz/logic.c | 42 +-
src/fmpz/lucas_chain.c | 7 +-
src/fmpz/mod.c | 2 +-
src/fmpz/mul.c | 6 +-
src/fmpz/mul_2exp.c | 4 +-
src/fmpz/mul_si_tdiv_q_2exp.c | 4 +-
src/fmpz/mul_tdiv_q_2exp.c | 2 +-
src/fmpz/neg.c | 2 +-
src/fmpz/nextprime.c | 6 +-
src/fmpz/one_2exp.c | 2 +-
src/fmpz/pow.c | 6 +-
src/fmpz/powm.c | 16 +-
src/fmpz/preinvn.c | 2 +-
src/fmpz/primorial.c | 2 +-
src/fmpz/profile/p-addmul.c | 6 +-
src/fmpz/profile/p-aors_ui.c | 26 +-
src/fmpz/profile/p-crt.c | 2 +-
src/fmpz/profile/p-div_qr.c | 12 +-
src/fmpz/profile/p-fdiv_qr_preinvn.c | 2 +-
src/fmpz/profile/p-fmma.c | 12 +-
src/fmpz/profile/p-gcd.c | 6 +-
src/fmpz/profile/p-gcd3.c | 9 +-
src/fmpz/profile/p-mul.c | 6 +-
src/fmpz/profile/p-mul_2exp.c | 8 +-
src/fmpz/profile/p-mul_ui.c | 6 +-
src/fmpz/profile/p-xgcd.c | 12 +-
src/fmpz/rand.c | 57 +-
src/fmpz/remove.c | 4 +-
src/fmpz/root.c | 4 +-
src/fmpz/set.c | 17 +-
src/fmpz/set_str.c | 2 +-
src/fmpz/setbit.c | 4 +-
src/fmpz/sqrt.c | 2 +-
src/fmpz/sqrtmod.c | 2 +-
src/fmpz/sqrtrem.c | 2 +-
src/fmpz/sub.c | 14 +-
src/fmpz/submul.c | 2 +-
src/fmpz/tdiv.c | 12 +-
src/fmpz/test/main.c | 8 +-
src/fmpz/test/t-get_mpz.c | 6 +-
src/fmpz/test/t-out_inp_raw.c | 6 +
src/fmpz/test/t-print_read.c | 6 +
src/fmpz/test/t-randprime.c | 92 +-
src/fmpz/test/t-set.c | 6 +-
src/fmpz_extras.h | 9 +-
src/fmpz_extras/lshift_mpn.c | 3 +-
src/fmpz_factor.h | 9 -
src/fmpz_factor/ecm.c | 5 +-
src/fmpz_factor/ecm_add.c | 12 +-
src/fmpz_factor/ecm_addmod.c | 30 -
src/fmpz_factor/ecm_double.c | 8 +-
src/fmpz_factor/ecm_mul_montgomery_ladder.c | 1 +
src/fmpz_factor/ecm_select_curve.c | 10 +-
src/fmpz_factor/ecm_stage_I.c | 5 +-
src/fmpz_factor/ecm_stage_II.c | 5 +-
src/fmpz_factor/ecm_submod.c | 40 -
src/fmpz_factor/factor.c | 13 +-
src/fmpz_factor/factor_no_trial.c | 100 +-
src/fmpz_factor/factor_pp1.c | 25 +-
src/fmpz_factor/factor_smooth.c | 19 +-
src/fmpz_factor/factor_trial.c | 9 +-
src/fmpz_factor/factor_trial_range.c | 13 +-
src/fmpz_factor/fit_length.c | 1 +
src/fmpz_factor/pollard_brent.c | 2 +-
src/fmpz_factor/pollard_brent_single.c | 5 +-
src/fmpz_factor/profile/p-factor_pp1.c | 2 +-
src/fmpz_factor/test/t-ecm.c | 12 +-
src/fmpz_lll/profile/p-lll.c | 2 +-
src/fmpz_mat/charpoly.c | 2 +-
src/fmpz_mat/col_partition.c | 3 +-
src/fmpz_mat/hadamard.c | 10 +-
src/fmpz_mat/hnf.c | 4 +-
src/fmpz_mat/hnf_transform.c | 4 +-
src/fmpz_mat/is_spd.c | 4 +-
src/fmpz_mat/minpoly_modular.c | 4 +-
src/fmpz_mat/mul.c | 2 +-
src/fmpz_mat/mul_blas.c | 10 +-
src/fmpz_mat/mul_fft.c | 32 +-
src/fmpz_mat/profile/p-det.c | 2 +-
src/fmpz_mat/profile/p-mul.c | 12 +-
src/fmpz_mat/profile/p-sqr.c | 2 +-
src/fmpz_mat/randdet.c | 2 +-
src/fmpz_mat/test/main.c | 8 +-
src/fmpz_mat/test/t-hadamard.c | 2 +-
src/fmpz_mat/test/t-hnf_modular_eldiv.c | 2 +-
src/fmpz_mat/test/t-howell_form_mod.c | 4 +-
src/fmpz_mat/test/t-print_read.c | 6 +
src/fmpz_mat/test/t-snf_iliopoulos.c | 2 +-
src/fmpz_mod.h | 6 +-
src/fmpz_mod/add.c | 2 +-
src/fmpz_mod/ctx.c | 2 +-
src/fmpz_mod/mul.c | 2 +-
src/fmpz_mod/pow.c | 4 +-
src/fmpz_mod/sub.c | 2 +-
src/fmpz_mod/test/t-pow_ui.c | 14 +-
src/fmpz_mod_mat.h | 60 +-
src/fmpz_mod_mat/clear.c | 2 +-
src/fmpz_mod_mat/comparison.c | 4 +-
src/fmpz_mod_mat/init.c | 2 +-
src/fmpz_mod_mat/init_set.c | 2 +-
src/fmpz_mod_mat/io.c | 8 +-
src/fmpz_mod_mat/set_get.c | 8 +-
src/fmpz_mod_mat/swap.c | 2 +-
src/fmpz_mod_mat/test/t-mul_classical_threaded.c | 0
src/fmpz_mod_mat/window_clear.c | 2 +-
src/fmpz_mod_mat/window_init.c | 2 +-
src/fmpz_mod_mpoly.h | 31 +-
src/fmpz_mod_mpoly/add.c | 3 +-
src/fmpz_mod_mpoly/clear.c | 2 +-
src/fmpz_mod_mpoly/content_vars.c | 2 +-
src/fmpz_mod_mpoly/div_monagan_pearce.c | 4 +-
src/fmpz_mod_mpoly/divides.c | 6 +-
src/fmpz_mod_mpoly/divides_monagan_pearce.c | 4 +-
src/fmpz_mod_mpoly/divrem_ideal_monagan_pearce.c | 2 +-
src/fmpz_mod_mpoly/divrem_monagan_pearce.c | 4 +-
src/fmpz_mod_mpoly/get_coeff_vars_ui.c | 2 +-
src/fmpz_mod_mpoly/get_set_is_fmpz_mod_poly.c | 4 +-
src/fmpz_mod_mpoly/get_set_nmod_mpoly.c | 2 +-
src/fmpz_mod_mpoly/get_term.c | 2 +-
src/fmpz_mod_mpoly/get_term_coeff_fmpz.c | 4 +-
src/fmpz_mod_mpoly/get_term_exp_fmpz.c | 2 +-
src/fmpz_mod_mpoly/get_term_exp_si.c | 2 +-
src/fmpz_mod_mpoly/get_term_exp_ui.c | 2 +-
src/fmpz_mod_mpoly/get_term_monomial.c | 2 +-
src/fmpz_mod_mpoly/get_term_var_exp_si.c | 2 +-
src/fmpz_mod_mpoly/get_term_var_exp_ui.c | 2 +-
src/fmpz_mod_mpoly/mul.c | 2 +-
src/fmpz_mod_mpoly/mul_johnson.c | 4 +-
src/fmpz_mod_mpoly/resize.c | 1 +
src/fmpz_mod_mpoly/scalar_addmul_fmpz.c | 3 +-
src/fmpz_mod_mpoly/set_coeff_fmpz_fmpz.c | 8 -
src/fmpz_mod_mpoly/set_term_coeff_fmpz.c | 6 +-
src/fmpz_mod_mpoly/set_term_exp_fmpz.c | 2 +-
src/fmpz_mod_mpoly/set_term_exp_ui.c | 2 +-
src/fmpz_mod_mpoly/sqrt_heap.c | 8 +-
src/fmpz_mod_mpoly/sub.c | 3 +-
src/fmpz_mod_mpoly/univar.c | 6 +-
src/fmpz_mod_mpoly_factor.h | 47 +-
src/fmpz_mod_mpoly_factor/bpoly_factor_smprime.c | 2 +-
src/fmpz_mod_mpoly_factor/eval.c | 2 +-
src/fmpz_mod_mpoly_factor/factor.c | 4 +-
src/fmpz_mod_mpoly_factor/fmpz_mod_bpoly.c | 4 +-
src/fmpz_mod_mpoly_factor/fmpz_mod_pow_cache.c | 4 +-
src/fmpz_mod_mpoly_factor/gcd_algo.c | 12 +-
src/fmpz_mod_mpoly_factor/gcd_brown.c | 4 +-
src/fmpz_mod_mpoly_factor/gcd_hensel.c | 4 +-
src/fmpz_mod_mpoly_factor/gcd_zippel.c | 14 +-
src/fmpz_mod_mpoly_factor/gcd_zippel2.c | 8 +-
src/fmpz_mod_mpoly_factor/interp.c | 10 +-
src/fmpz_mod_mpoly_factor/io.c | 2 +-
.../irred_smprime_zassenhaus.c | 2 +-
src/fmpz_mod_mpoly_factor/mpoly_hlift.c | 2 +-
src/fmpz_mod_mpoly_factor/mpoly_hlift_zippel.c | 21 +-
src/fmpz_mod_mpoly_factor/mpolyn.c | 2 +-
src/fmpz_mod_mpoly_factor/stack.c | 2 +-
src/fmpz_mod_mpoly_factor/test/t-gcd_hensel.c | 4 +-
src/fmpz_mod_mpoly_factor/test/t-gcd_zippel.c | 4 +-
src/fmpz_mod_mpoly_factor/test/t-gcd_zippel2.c | 4 +-
src/fmpz_mod_poly.h | 90 +-
src/fmpz_mod_poly/clear.c | 2 +-
src/fmpz_mod_poly/comparison.c | 6 +-
.../compose_mod_brent_kung_vec_preinv.c | 2 +-
.../compose_mod_brent_kung_vec_preinv_threaded.c | 2 +-
src/fmpz_mod_poly/deflation.c | 2 +-
src/fmpz_mod_poly/div_newton_n_preinv.c | 2 +-
src/fmpz_mod_poly/find_distinct_nonzero_roots.c | 4 +-
src/fmpz_mod_poly/fit_length.c | 1 +
src/fmpz_mod_poly/frobenius_powers_2exp_precomp.c | 4 +-
src/fmpz_mod_poly/frobenius_powers_precomp.c | 2 +-
src/fmpz_mod_poly/gcdinv_euclidean_f.c | 2 +-
src/fmpz_mod_poly/get.c | 2 +-
src/fmpz_mod_poly/get_str.c | 4 +-
src/fmpz_mod_poly/hamming_weight.c | 2 +-
src/fmpz_mod_poly/inflate.c | 3 +-
src/fmpz_mod_poly/init.c | 2 +-
src/fmpz_mod_poly/inv_series_newton_f.c | 1 +
src/fmpz_mod_poly/io.c | 2 +-
src/fmpz_mod_poly/powers_mod_bsgs_threaded.c | 0
src/fmpz_mod_poly/powers_mod_naive.c | 0
src/fmpz_mod_poly/profile/p-gcd.c | 2 +-
src/fmpz_mod_poly/profile/p-invert.c | 2 +-
src/fmpz_mod_poly/profile/p-mul.c | 2 +-
src/fmpz_mod_poly/profile/p-tree.c | 2 +-
src/fmpz_mod_poly/radix.c | 1 +
src/fmpz_mod_poly/realloc.c | 1 +
src/fmpz_mod_poly/set_get_coeff.c | 3 +-
src/fmpz_mod_poly/test/main.c | 6 +
src/fmpz_mod_poly/test/t-powers_mod_bsgs.c | 0
src/fmpz_mod_poly/test/t-powers_mod_naive.c | 0
src/fmpz_mod_poly/test/t-print_read.c | 6 +
src/fmpz_mod_poly/truncate.c | 2 +-
src/fmpz_mod_poly/xgcd.c | 2 +-
src/fmpz_mod_poly/zero_coeffs.c | 2 +-
src/fmpz_mod_poly_factor.h | 6 +-
src/fmpz_mod_poly_factor/factor_berlekamp.c | 4 +-
src/fmpz_mod_poly_factor/factor_distinct_deg.c | 2 +-
.../factor_distinct_deg_threaded.c | 2 +-
src/fmpz_mod_poly_factor/factor_equal_deg.c | 9 +-
src/fmpz_mod_poly_factor/init.c | 2 +-
src/fmpz_mod_poly_factor/is_irreducible_ddf.c | 2 +-
src/fmpz_mod_poly_factor/pow.c | 2 +-
.../profile/p-factor_equal_deg.c | 4 +-
src/fmpz_mod_poly_factor/roots.c | 4 +-
src/fmpz_mod_poly_factor/roots_factored.c | 2 +-
src/fmpz_mpoly.h | 53 +-
src/fmpz_mpoly/clear.c | 2 +-
src/fmpz_mpoly/compose_fmpz_mpoly_horner.c | 2 +-
src/fmpz_mpoly/compose_fmpz_poly.c | 2 +-
src/fmpz_mpoly/content_vars.c | 2 +-
src/fmpz_mpoly/div_monagan_pearce.c | 37 +-
src/fmpz_mpoly/divides_array.c | 21 +-
src/fmpz_mpoly/divides_heap_threaded.c | 24 +-
src/fmpz_mpoly/divides_monagan_pearce.c | 32 +-
src/fmpz_mpoly/divrem.c | 27 +-
src/fmpz_mpoly/divrem_array.c | 4 +-
src/fmpz_mpoly/divrem_ideal.c | 22 +-
src/fmpz_mpoly/equal.c | 3 +-
src/fmpz_mpoly/evaluate_all.c | 12 +-
src/fmpz_mpoly/evaluate_one.c | 13 +-
src/fmpz_mpoly/fit_length.c | 4 +-
src/fmpz_mpoly/get_coeff_vars_ui.c | 2 +-
src/fmpz_mpoly/get_set_is_fmpz_poly.c | 4 +-
src/fmpz_mpoly/get_term_coeff_fmpz.c | 6 +-
src/fmpz_mpoly/init.c | 2 +-
src/fmpz_mpoly/integral.c | 3 +-
src/fmpz_mpoly/misc.c | 4 +-
src/fmpz_mpoly/mul.c | 2 +-
src/fmpz_mpoly/mul_heap_threaded.c | 8 +-
src/fmpz_mpoly/pow_fps.c | 5 +-
src/fmpz_mpoly/quasidiv_heap.c | 42 +-
src/fmpz_mpoly/quasidivrem_heap.c | 20 +-
src/fmpz_mpoly/quasidivrem_ideal_heap.c | 14 +-
src/fmpz_mpoly/resize.c | 1 +
src/fmpz_mpoly/set_term_coeff_fmpz.c | 6 +-
src/fmpz_mpoly/sqrt_heap.c | 8 +-
src/fmpz_mpoly/symmetric.c | 9 +-
src/fmpz_mpoly/univar.c | 10 +-
src/fmpz_mpoly/vec.c | 2 +-
src/fmpz_mpoly_factor.h | 26 +-
src/fmpz_mpoly_factor/bpoly_factor.c | 2 +-
src/fmpz_mpoly_factor/eval.c | 2 +-
src/fmpz_mpoly_factor/factor.c | 4 +-
src/fmpz_mpoly_factor/gcd_algo.c | 10 +-
src/fmpz_mpoly_factor/gcd_brown.c | 4 +-
src/fmpz_mpoly_factor/gcd_brown_threaded.c | 5 +-
src/fmpz_mpoly_factor/gcd_hensel.c | 4 +-
src/fmpz_mpoly_factor/gcd_zippel.c | 4 +-
src/fmpz_mpoly_factor/gcd_zippel2.c | 30 +-
src/fmpz_mpoly_factor/interp.c | 2 +-
src/fmpz_mpoly_factor/irred_zassenhaus.c | 4 +-
src/fmpz_mpoly_factor/irred_zippel.c | 11 +-
src/fmpz_mpoly_factor/misc.c | 12 +-
src/fmpz_mpoly_factor/test/t-gcd_zippel.c | 4 +-
src/fmpz_poly/bit_pack.c | 3 +-
src/fmpz_poly/bit_unpack.c | 1 +
src/fmpz_poly/cos_minpoly.c | 2 +-
src/fmpz_poly/cyclotomic.c | 20 +-
src/fmpz_poly/deflation.c | 5 +-
src/fmpz_poly/eulerian_polynomial.c | 5 +-
src/fmpz_poly/evaluate_horner_d_2exp.c | 8 -
src/fmpz_poly/fibonacci.c | 3 +-
src/fmpz_poly/gcd_heuristic.c | 12 +-
src/fmpz_poly/gcd_modular.c | 4 +-
src/fmpz_poly/hermite_h.c | 6 +-
src/fmpz_poly/hermite_he.c | 6 +-
src/fmpz_poly/inflate.c | 3 +-
src/fmpz_poly/io.c | 3 +-
src/fmpz_poly/is_cyclotomic.c | 5 +-
src/fmpz_poly/mul.c | 9 +-
src/fmpz_poly/mul_SS.c | 2 -
src/fmpz_poly/mullow.c | 7 +-
src/fmpz_poly/mullow_SS.c | 3 +-
src/fmpz_poly/mullow_SS_precache.c | 3 +-
src/fmpz_poly/mullow_karatsuba_n.c | 1 +
src/fmpz_poly/nth_derivative.c | 2 +-
src/fmpz_poly/num_real_roots.c | 6 +-
src/fmpz_poly/pow_trunc.c | 1 +
src/fmpz_poly/profile/p-compose.c | 2 +-
src/fmpz_poly/profile/p-div_preinv.c | 2 +-
src/fmpz_poly/profile/p-gcd.c | 2 +-
src/fmpz_poly/profile/p-mul.c | 2 +-
src/fmpz_poly/profile/p-mul_triangle.c | 2 +-
src/fmpz_poly/profile/p-pow.c | 2 +-
src/fmpz_poly/profile/p-pow_binomial.c | 2 +-
src/fmpz_poly/profile/p-rem_powers_precomp.c | 2 +-
src/fmpz_poly/profile/p-taylor_shift.c | 4 +-
src/fmpz_poly/pseudo_divrem_divconquer.c | 1 +
src/fmpz_poly/randtest.c | 6 +-
src/fmpz_poly/realloc.c | 1 +
src/fmpz_poly/sqr.c | 9 +-
src/fmpz_poly/sqrlow.c | 9 +-
src/fmpz_poly/sqrlow_karatsuba_n.c | 1 +
src/fmpz_poly/taylor_shift_horner.c | 2 +-
src/fmpz_poly/test/main.c | 8 +-
src/fmpz_poly/test/t-cyclotomic.c | 5 +-
src/fmpz_poly/test/t-eta_qexp.c | 2 +-
src/fmpz_poly/test/t-eulerian_polynomial.c | 74 +-
src/fmpz_poly/test/t-print_read.c | 8 +-
src/fmpz_poly/test/t-print_read_pretty.c | 6 +
src/fmpz_poly/test/t-theta_qexp.c | 3 +-
src/fmpz_poly/test/t-xgcd_modular.c | 291 +--
src/fmpz_poly/xgcd_modular.c | 2 +-
src/fmpz_poly_factor/CLD_mat.c | 7 +-
src/fmpz_poly_factor/factor_cubic.c | 8 +-
src/fmpz_vec/dot.c | 4 +-
src/fmpz_vec/get_fft.c | 3 +-
src/fmpz_vec/height_index.c | 4 +-
src/fmpz_vec/max_bits.c | 2 +-
src/fmpz_vec/scalar.c | 2 +-
src/fmpz_vec/set_fft.c | 3 +-
src/fmpz_vec/sum_max_bits.c | 2 +-
src/fmpz_vec/test/t-dot_general.c | 2 +-
src/fmpzi/bits.c | 2 +-
src/fmpzi/profile/p-gcd.c | 4 +-
src/fq.h | 30 +-
src/fq/assignments.c | 6 +-
src/fq/bit_pack.c | 2 +-
src/fq/clear.c | 2 +-
src/fq/comparisons.c | 6 +-
src/fq/ctx_init.c | 4 +-
src/fq/get_fmpz.c | 2 +-
src/fq/get_fmpz_poly.c | 2 +-
src/fq/get_str.c | 2 +-
src/fq/init.c | 2 +-
src/fq/io.c | 4 +-
src/fq/swap.c | 2 +-
src/fq_default/ctx.c | 12 +-
src/fq_embed/embed.c | 4 +-
src/fq_embed_templates/embed.c | 4 +-
src/fq_mat_templates.h | 16 +-
src/fq_mat_templates/swap.c | 2 +-
src/fq_mat_templates/window_clear.c | 2 +-
src/fq_mat_templates/window_init.c | 2 +-
src/fq_nmod.h | 32 +-
src/fq_nmod/add.c | 2 +-
src/fq_nmod/assignments.c | 8 +-
src/fq_nmod/bit_pack.c | 2 +-
src/fq_nmod/comparisons.c | 8 +-
src/fq_nmod/ctx_init.c | 4 +-
src/fq_nmod/get_fmpz.c | 2 +-
src/fq_nmod/get_str.c | 2 +-
src/fq_nmod/init.c | 2 +-
src/fq_nmod/io.c | 4 +-
src/fq_nmod/neg.c | 2 +-
src/fq_nmod_mpoly.h | 70 +-
src/fq_nmod_mpoly/compose_fq_nmod_mpoly_horner.c | 2 +-
src/fq_nmod_mpoly/compose_fq_nmod_poly.c | 6 +-
src/fq_nmod_mpoly/content_vars.c | 2 +-
src/fq_nmod_mpoly/div_monagan_pearce.c | 2 +-
src/fq_nmod_mpoly/divides_monagan_pearce.c | 10 +-
src/fq_nmod_mpoly/divrem_ideal_monagan_pearce.c | 2 +-
src/fq_nmod_mpoly/divrem_monagan_pearce.c | 10 +-
src/fq_nmod_mpoly/fq_nmod_embed.c | 4 +-
src/fq_nmod_mpoly/gcd.c | 14 +-
src/fq_nmod_mpoly/gcd_hensel.c | 4 +-
src/fq_nmod_mpoly/gcd_zippel.c | 4 +-
src/fq_nmod_mpoly/gcd_zippel2.c | 8 +-
src/fq_nmod_mpoly/get_coeff_vars_ui.c | 2 +-
src/fq_nmod_mpoly/get_set_is_fq_nmod_poly.c | 4 +-
src/fq_nmod_mpoly/get_term.c | 2 +-
src/fq_nmod_mpoly/get_term_coeff_fq_nmod.c | 2 +-
src/fq_nmod_mpoly/get_term_monomial.c | 2 +-
src/fq_nmod_mpoly/interp.c | 18 +-
src/fq_nmod_mpoly/mpolyn.c | 8 +-
src/fq_nmod_mpoly/mpolyn_gcd_brown.c | 101 +-
src/fq_nmod_mpoly/mpolyu.c | 2 +-
src/fq_nmod_mpoly/mpolyu_divides.c | 4 +-
src/fq_nmod_mpoly/mpolyu_gcdp_zippel.c | 12 +-
src/fq_nmod_mpoly/mpolyun.c | 31 +-
src/fq_nmod_mpoly/quadratic_root.c | 4 +-
src/fq_nmod_mpoly/resize.c | 1 +
src/fq_nmod_mpoly/set_term_coeff_fq_nmod.c | 2 +-
src/fq_nmod_mpoly/set_term_exp_fmpz.c | 2 +-
src/fq_nmod_mpoly/set_term_exp_ui.c | 2 +-
src/fq_nmod_mpoly/sqrt_heap.c | 4 +-
src/fq_nmod_mpoly/univar.c | 10 +-
src/fq_nmod_mpoly_factor.h | 12 +-
src/fq_nmod_mpoly_factor/eval.c | 2 +-
src/fq_nmod_mpoly_factor/factor.c | 4 +-
src/fq_nmod_mpoly_factor/get_exp_si.c | 2 +-
.../irred_smprime_zassenhaus.c | 2 +-
src/fq_nmod_mpoly_factor/irred_smprime_zippel.c | 3 +-
.../n_bpoly_fq_factor_smprime.c | 4 +-
src/fq_nmod_mpoly_factor/n_bpoly_hlift.c | 2 +-
src/fq_nmod_poly/mul_univariate.c | 1 +
src/fq_nmod_poly/mullow_univariate.c | 1 +
src/fq_nmod_poly_factor/profile/p-roots.c | 4 +-
src/fq_poly_factor_templates.h | 2 +-
src/fq_poly_factor_templates/factor.c | 2 +-
src/fq_poly_factor_templates/factor_berlekamp.c | 4 +-
src/fq_poly_factor_templates/factor_equal_deg.c | 4 +-
src/fq_poly_factor_templates/factor_split_single.c | 6 +-
src/fq_poly_factor_templates/pow.c | 2 +-
src/fq_poly_factor_templates/roots.c | 4 +-
src/fq_poly_templates.h | 14 +-
src/fq_poly_templates/deflation.c | 2 +-
src/fq_poly_templates/div_newton_n_preinv.c | 2 +-
src/fq_poly_templates/inflate.c | 2 +-
src/fq_poly_templates/init.c | 2 +-
src/fq_poly_templates/powmod_fmpz_sliding_preinv.c | 4 +-
src/fq_poly_templates/powmod_x_fmpz_preinv.c | 6 +-
src/fq_poly_templates/swap.c | 2 +-
src/fq_templates/sqrt.c | 4 +-
src/fq_zech.h | 18 +-
src/fq_zech/ctx.c | 5 +-
src/fq_zech/get_str.c | 2 +-
src/fq_zech/io.c | 2 +-
src/fq_zech/set_fq_nmod.c | 7 +-
src/fq_zech/set_nmod_poly.c | 7 +-
src/fq_zech_mpoly.h | 24 +-
src/fq_zech_mpoly/divides_monagan_pearce.c | 4 +-
src/fq_zech_mpoly/divrem_monagan_pearce.c | 7 +-
src/fq_zech_mpoly/equal.c | 3 +-
src/fq_zech_mpoly/fit_bits.c | 2 +-
src/fq_zech_mpoly/get_coeff_vars_ui.c | 2 +-
src/fq_zech_mpoly/mpolyu.c | 2 +-
src/fq_zech_mpoly/pow_ui.c | 3 +-
src/fq_zech_mpoly/sub.c | 3 +-
src/fq_zech_mpoly/univar.c | 10 +-
src/fq_zech_mpoly_factor.h | 36 +-
src/fq_zech_mpoly_factor/bpoly.c | 2 +-
src/fq_zech_mpoly_factor/bpoly_factor_smprime.c | 5 +-
src/fq_zech_mpoly_factor/eval.c | 2 +-
src/fq_zech_mpoly_factor/get_set_is_fq_nmod_poly.c | 2 +-
.../irred_smprime_zassenhaus.c | 2 +-
src/fq_zech_mpoly_factor/irred_smprime_zippel.c | 6 +-
src/fq_zech_mpoly_factor/polyu.c | 2 +-
src/fq_zech_mpoly_factor/polyu3_hlift.c | 4 -
src/generic_files/io.c | 18 +-
src/generic_files/random.c | 65 +
src/generic_files/test_helpers.c | 2 +-
src/gr.h | 57 +-
src/gr/acf.c | 2 +-
src/gr/arb.c | 22 +
src/gr/arf.c | 8 +-
src/gr/cmp_coercion.c | 2 +
src/gr/fmpq.c | 4 +-
src/gr/fmpq_poly.c | 40 +-
src/gr/fmpz.c | 4 +-
src/gr/fmpz_mod.c | 63 +-
src/gr/fmpz_poly.c | 8 +-
src/gr/fq.c | 25 +-
src/gr/fq_nmod.c | 25 +-
src/gr/fq_zech.c | 25 +-
src/gr/init_random.c | 6 +-
src/gr/matrix.c | 2 +-
src/gr/mpoly.c | 9 +-
src/gr/nf.c | 6 +
src/gr/nmod.c | 37 +-
src/gr/perm.c | 1 +
src/gr/polynomial.c | 8 +-
src/gr/qqbar.c | 121 ++
src/gr/series.c | 449 ++---
src/gr/series_mod.c | 483 +++++
src/gr/test/main.c | 8 +
src/gr/test/t-acf.c | 29 +
src/gr/test/t-arf.c | 29 +
src/gr/test/t-fmpz_mod.c | 4 +-
src/gr/test/t-nmod.c | 2 +-
src/gr/test/t-series.c | 37 +
src/gr/test/t-series_acb.c | 2 +-
src/gr/test/t-series_arb.c | 2 +-
src/gr/test/t-series_fmpq.c | 2 +-
src/gr/test/t-series_fmpz.c | 2 +-
src/gr/test/t-series_mod_gr_poly.c | 37 +
src/gr/test/t-series_nmod8.c | 2 +-
src/gr/test_ring.c | 187 +-
src/gr_generic/generic.c | 6 +-
src/gr_mat.h | 21 +-
src/gr_mat/lu.c | 5 +-
src/gr_mat/lu_recursive.c | 8 +-
src/gr_mat/nonsingular_solve_tril.c | 9 +-
src/gr_mat/nonsingular_solve_triu.c | 9 +-
src/gr_mat/test/t-lu.c | 276 +--
src/gr_mat/test/t-lu_classical.c | 276 +--
src/gr_mat/test/t-lu_recursive.c | 285 +--
src/gr_mat/test_det.c | 120 ++
src/gr_mat/test_lu.c | 249 +++
src/gr_mat/test_mul.c | 103 +
src/gr_mat/test_nonsingular_solve_tri.c | 124 ++
src/gr_poly.h | 26 +-
src/gr_poly/compose_divconquer.c | 2 +-
src/gr_poly/compose_horner.c | 4 +-
src/gr_poly/evaluate_horner.c | 2 +-
src/gr_poly/gcd.c | 2 +-
src/gr_poly/inv_series.c | 11 +-
src/gr_poly/mul_karatsuba.c | 121 ++
src/gr_poly/mullow.c | 6 +-
src/gr_poly/sqrt_series.c | 14 +-
src/gr_poly/sqrt_series_basecase.c | 7 -
src/gr_poly/test/main.c | 4 +
src/gr_poly/test/t-mul_karatsuba.c | 104 +
src/gr_poly/test/t-xgcd.c | 146 ++
src/gr_poly/test_div.c | 103 +
src/gr_poly/test_div_series.c | 77 +
src/gr_poly/test_divrem.c | 118 ++
src/gr_poly/test_gcd.c | 214 ++
src/gr_poly/test_inv_series.c | 77 +
src/gr_poly/test_mullow.c | 93 +
src/gr_poly/test_xgcd.c | 143 ++
src/gr_poly/tune/cutoffs.c | 50 +-
src/gr_poly/write.c | 24 +-
src/gr_poly/xgcd.c | 164 ++
src/gr_poly/xgcd_euclidean.c | 128 +-
src/gr_vec.h | 2 +-
src/longlong.h | 24 +
src/longlong_asm_gnu.h | 150 ++
src/machine_vectors.h | 228 ++-
src/mpfr_mat.h | 12 -
src/mpfr_mat/mul_classical.c | 11 +-
src/mpfr_mat/randtest.c | 5 +-
src/mpfr_vec.h | 8 -
src/mpfr_vec/randtest.c | 6 +-
src/mpfr_vec/scalar_product.c | 32 -
src/mpn_extras.h | 722 +++++--
src/mpn_extras/arm64/applem1/flint-mparam.h | 30 +
src/mpn_extras/arm64/arm64-defs.m4 | 72 +
src/mpn_extras/arm64/darwin.m4 | 65 +
src/mpn_extras/arm64/flint-mparam.h | 32 +
src/mpn_extras/arm64/mul_2.asm | 172 ++
src/mpn_extras/arm64/mul_hard.asm | 1744 ++++++++++++++++
src/mpn_extras/arm64/mulhigh_basecase.asm | 419 ++++
src/mpn_extras/arm64/mulhigh_hard.asm | 793 ++++++++
src/mpn_extras/arm64/sqr_hard.asm | 1376 +++++++++++++
src/mpn_extras/arm64/sqrhigh_hard.asm | 528 +++++
src/mpn_extras/broadwell/mulhigh_hard.asm | 1766 ----------------
src/mpn_extras/divrem_preinvn.c | 18 +-
src/mpn_extras/generic/flint-mparam.h | 32 +
.../scalar_mul_2exp.c => mpn_extras/get_str.c} | 23 +-
src/mpn_extras/mod_preinvn.c | 18 +-
src/mpn_extras/mul.c | 84 +-
src/mpn_extras/mul_basecase.c | 45 +-
src/mpn_extras/mul_toom22.c | 10 +-
src/mpn_extras/mul_toom32.c | 342 ++++
src/mpn_extras/mulhigh.c | 271 ++-
src/mpn_extras/mulhigh_basecase.c | 455 +++++
src/mpn_extras/mullow.c | 147 ++
src/mpn_extras/mulmod_preinvn.c | 111 +-
src/mpn_extras/profile/p-2add_n_inplace.c | 97 +
src/mpn_extras/profile/p-divrem_preinvn.c | 138 ++
src/mpn_extras/profile/p-mul.c | 103 +
src/mpn_extras/profile/p-mul_basecase.c | 69 -
src/mpn_extras/profile/p-mul_n.c | 32 +-
src/mpn_extras/profile/p-mulhigh.c | 88 +
src/mpn_extras/profile/p-mulhigh_basecase.c | 91 -
src/mpn_extras/profile/p-mulhigh_normalised.c | 13 +-
src/mpn_extras/profile/p-mullow.c | 66 +
src/mpn_extras/profile/p-mulmod_preinvn.c | 8 +-
.../profile/{p-sqr_basecase.c => p-sqr.c} | 9 +-
src/mpn_extras/profile/p-sqrhigh.c | 86 +
src/mpn_extras/profile/p-sqrhigh_basecase.c | 57 -
src/mpn_extras/random.c | 49 +
src/mpn_extras/sqr_basecase.c | 32 +-
src/mpn_extras/sqrhigh.c | 177 ++
src/mpn_extras/test/main.c | 18 +-
src/mpn_extras/test/t-2add_n_inplace.c | 72 +
src/mpn_extras/test/t-divrem_preinvn.c | 86 +-
src/mpn_extras/test/t-mod_preinvn.c | 75 +-
src/mpn_extras/test/t-mul.c | 75 +-
src/mpn_extras/test/t-mul_basecase.c | 60 -
src/mpn_extras/test/t-mul_n.c | 4 +-
src/mpn_extras/test/t-mul_toom22.c | 37 +-
src/mpn_extras/test/t-mulhigh_basecase.c | 89 -
src/mpn_extras/test/t-mulhigh_n.c | 204 ++
src/mpn_extras/test/t-mulhigh_normalised.c | 19 +-
src/mpn_extras/test/t-mullow_n.c | 66 +
src/mpn_extras/test/t-mulmod_2expp1.c | 13 +-
src/mpn_extras/test/t-mulmod_preinvn.c | 10 +-
src/mpn_extras/test/t-sqr.c | 69 +
src/mpn_extras/test/t-sqr_basecase.c | 55 -
src/mpn_extras/test/t-sqrhigh.c | 194 ++
src/mpn_extras/test/t-sqrhigh_basecase.c | 61 -
src/mpn_extras/tune/tune-mulhigh.c | 168 ++
src/mpn_extras/tune/tune-sqrhigh.c | 171 ++
src/mpn_extras/x86_64/broadwell/2add_n_inplace.asm | 207 ++
src/mpn_extras/x86_64/broadwell/flint-mparam.h | 32 +
src/mpn_extras/{ => x86_64}/broadwell/mul_hard.asm | 0
.../{ => x86_64}/broadwell/mulhigh_basecase.asm | 47 +-
src/mpn_extras/x86_64/broadwell/mulhigh_hard.asm | 911 +++++++++
.../broadwell/mulhigh_normalised_hard.asm | 926 ---------
.../x86_64/broadwell/mullow_basecase.asm | 484 +++++
src/mpn_extras/x86_64/broadwell/mullow_hard.asm | 744 +++++++
src/mpn_extras/{ => x86_64}/broadwell/sqr_hard.asm | 82 +-
.../broadwell/sqrhigh_basecase_even.asm | 30 +-
.../broadwell/sqrhigh_basecase_odd.asm | 17 +-
.../{ => x86_64}/broadwell/sqrhigh_hard.asm | 0
src/mpn_extras/{broadwell => x86_64}/darwin.m4 | 0
src/mpn_extras/x86_64/flint-mparam.h | 32 +
src/mpn_extras/x86_64/skylake/flint-mparam.h | 30 +
.../{broadwell => x86_64}/x86_64-defs.m4 | 0
src/mpn_extras/x86_64/zen3/flint-mparam.h | 30 +
src/mpn_mod.h | 241 +++
src/mpn_mod/ctx.c | 234 +++
src/{mpfr_mat/swap.c => mpn_mod/inlines.c} | 12 +-
src/mpn_mod/mat_det.c | 36 +
src/mpn_mod/mat_lu.c | 42 +
src/mpn_mod/mat_lu_classical_delayed.c | 194 ++
src/mpn_mod/mat_mul.c | 114 ++
src/mpn_mod/mat_mul_multi_mod.c | 409 ++++
src/mpn_mod/mat_mul_waksman.c | 181 ++
src/mpn_mod/mat_nonsingular_solve_tri.c | 39 +
src/mpn_mod/poly.c | 112 ++
src/mpn_mod/poly_divrem_basecase.c | 329 +++
src/mpn_mod/poly_mullow.c | 398 ++++
src/mpn_mod/poly_mullow_KS.c | 119 ++
src/mpn_mod/poly_mullow_classical.c | 222 +++
src/mpn_mod/poly_mullow_fft_small.c | 519 +++++
src/mpn_mod/poly_mullow_karatsuba.c | 655 ++++++
src/mpn_mod/profile/p-karatsuba.c | 128 ++
src/mpn_mod/profile/p-mat_mul.c | 157 ++
src/mpn_mod/profile/p-mat_vs_fmpz_mod.c | 175 ++
src/mpn_mod/profile/p-poly_mullow.c | 247 +++
src/mpn_mod/profile/p-poly_vs_fmpz_mod.c | 180 ++
src/mpn_mod/ring.c | 654 ++++++
src/mpn_mod/test/main.c | 52 +
src/mpn_mod/test/t-mat.c | 33 +
src/mpn_mod/test/t-mat_lu.c | 30 +
src/mpn_mod/test/t-mat_lu_classical_delayed.c | 30 +
src/mpn_mod/test/t-mat_mul_multi_mod.c | 42 +
src/mpn_mod/test/t-mat_mul_waksman.c | 30 +
src/mpn_mod/test/t-mpn_mod.c | 166 ++
src/mpn_mod/test/t-poly.c | 33 +
src/mpn_mod/test/t-poly_divrem_basecase.c | 36 +
src/mpn_mod/test/t-poly_mullow.c | 29 +
src/mpn_mod/test/t-poly_mullow_KS.c | 29 +
src/mpn_mod/test/t-poly_mullow_classical.c | 29 +
src/mpn_mod/test/t-poly_mullow_fft_small.c | 41 +
src/mpn_mod/test/t-poly_mullow_karatsuba.c | 43 +
src/mpn_mod/vec.c | 402 ++++
src/mpoly.h | 38 +-
src/mpoly/compression.c | 4 +-
src/mpoly/ctx.c | 2 +-
src/mpoly/degrees.c | 2 +-
src/mpoly/gcd_info.c | 26 +-
src/mpoly/gen_bits_required.c | 2 +-
src/mpoly/get_cmpmask.c | 2 +-
src/mpoly/get_monomial.c | 4 +-
src/mpoly/get_monomial_var.c | 4 +-
src/mpoly/min_fields.c | 16 -
src/mpoly/pack_vec.c | 4 +-
src/mpoly/profile/p-test_irreducible.c | 4 +-
src/mpoly/repack_monomials.c | 2 +-
src/mpoly/test_irreducible.c | 4 +-
src/mpoly/univar.c | 2 +-
src/mpoly/unpack_vec.c | 5 +-
src/n_poly.h | 8 +-
src/n_poly/n_fq_poly.c | 1 +
src/n_poly/n_fq_poly_mullow.c | 1 +
src/nf_elem/profile/p-mul.c | 4 +-
src/nf_elem/profile/p-norm.c | 4 +-
src/nf_elem/profile/p-trace.c | 4 +-
src/nf_elem/set_coeff_num_fmpz.c | 1 +
src/nfloat.h | 349 ++++
src/nfloat/ctx.c | 215 ++
src/nfloat/dot.c | 566 ++++++
.../scalar_mul_mpfr.c => nfloat/inlines.c} | 14 +-
src/nfloat/nfloat.c | 2099 ++++++++++++++++++++
src/nfloat/profile/p-vs_arf.c | 145 ++
src/nfloat/test/main.c | 28 +
src/nfloat/test/t-nfloat.c | 701 +++++++
src/nmod_mat/concat.c | 1 +
src/nmod_mat/init.c | 1 +
src/nmod_mat/mul_blas.c | 4 +-
src/nmod_mat/mul_classical.c | 8 +-
src/nmod_mat/mul_classical_threaded.c | 8 +-
src/nmod_mat/profile/p-lu.c | 4 +-
src/nmod_mat/profile/p-mul.c | 4 +-
src/nmod_mat/reduce_row.c | 1 +
src/nmod_mat/test/main.c | 6 +-
src/nmod_mat/test/t-addmul.c | 86 -
.../test/{t-submul.c => t-addmul_submul.c} | 66 +-
src/nmod_mat/test/t-lu_recursive.c | 2 +-
src/nmod_mpoly.h | 61 +-
src/nmod_mpoly/add.c | 3 +-
src/nmod_mpoly/compose_nmod_mpoly_horner.c | 2 +-
src/nmod_mpoly/compose_nmod_poly.c | 2 +-
src/nmod_mpoly/content_vars.c | 2 +-
src/nmod_mpoly/div_monagan_pearce.c | 8 +-
src/nmod_mpoly/divides.c | 4 +-
src/nmod_mpoly/divides_heap_threaded.c | 9 +-
src/nmod_mpoly/divides_monagan_pearce.c | 6 +-
src/nmod_mpoly/divrem_ideal_monagan_pearce.c | 6 +-
src/nmod_mpoly/divrem_monagan_pearce.c | 4 +-
src/nmod_mpoly/equal.c | 3 +-
src/nmod_mpoly/gcd.c | 38 +-
src/nmod_mpoly/gcd_brown.c | 10 +-
src/nmod_mpoly/gcd_hensel.c | 8 +-
src/nmod_mpoly/gcd_zippel.c | 6 +-
src/nmod_mpoly/gcd_zippel2.c | 10 +-
src/nmod_mpoly/get_coeff.c | 4 +-
src/nmod_mpoly/get_set_is_nmod_poly.c | 4 +-
src/nmod_mpoly/get_term.c | 2 +-
src/nmod_mpoly/get_term_coeff_ui.c | 2 +-
src/nmod_mpoly/get_term_monomial.c | 2 +-
src/nmod_mpoly/get_term_ui_fmpz.c | 3 +-
src/nmod_mpoly/mpolyn.c | 10 +-
src/nmod_mpoly/mpolyn_divides_threaded.c | 14 +-
src/nmod_mpoly/mpolyn_gcd_brown.c | 4 +-
src/nmod_mpoly/mpolyu.c | 19 +-
src/nmod_mpoly/mpolyu_divides.c | 4 +-
src/nmod_mpoly/mpolyu_gcdp_zippel.c | 12 +-
src/nmod_mpoly/mpolyun.c | 14 +-
src/nmod_mpoly/mpolyun_divides.c | 8 +-
src/nmod_mpoly/mul.c | 2 +-
src/nmod_mpoly/mul_heap_threaded.c | 10 +-
src/nmod_mpoly/pow_ui.c | 8 +-
src/nmod_mpoly/quadratic_root.c | 4 +-
src/nmod_mpoly/resize.c | 1 +
src/nmod_mpoly/scalar.c | 4 +-
src/nmod_mpoly/set_term_coeff_ui.c | 2 +-
src/nmod_mpoly/set_term_exp.c | 4 +-
src/nmod_mpoly/sqrt_heap.c | 8 +-
src/nmod_mpoly/sub.c | 3 +-
src/nmod_mpoly/univar.c | 10 +-
src/nmod_mpoly_factor.h | 16 +-
src/nmod_mpoly_factor/eval.c | 2 +-
src/nmod_mpoly_factor/factor.c | 4 +-
src/nmod_mpoly_factor/gcd_zippel.c | 16 +-
src/nmod_mpoly_factor/get_set.c | 2 +-
src/nmod_mpoly_factor/irred_smprime_zassenhaus.c | 2 +-
src/nmod_mpoly_factor/mpoly_hlift_zippel.c | 1 +
src/nmod_mpoly_factor/n_bpoly_mod_factor_lgprime.c | 2 +-
src/nmod_mpoly_factor/n_bpoly_mod_factor_smprime.c | 6 +-
src/nmod_mpoly_factor/test/t-gcd_zippel.c | 4 +-
src/nmod_poly.h | 50 +-
src/nmod_poly/KS2_reduce.c | 2 +-
src/nmod_poly/bit_pack.c | 3 +-
src/nmod_poly/bit_unpack.c | 1 +
src/nmod_poly/compose_mod.c | 1 +
src/nmod_poly/compose_mod_brent_kung.c | 1 +
.../compose_mod_brent_kung_precomp_preinv.c | 1 +
src/nmod_poly/compose_mod_brent_kung_preinv.c | 1 +
src/nmod_poly/compose_mod_brent_kung_vec_preinv.c | 7 +-
.../compose_mod_brent_kung_vec_preinv_threaded.c | 21 +-
src/nmod_poly/compose_mod_horner.c | 1 +
src/nmod_poly/conway.c | 16 +-
src/nmod_poly/cos_series.c | 1 +
src/nmod_poly/cosh_series.c | 1 +
src/nmod_poly/deflate.c | 2 +-
src/nmod_poly/deflation.c | 4 +-
src/nmod_poly/div_newton_n_preinv.c | 4 +-
src/nmod_poly/divrem.c | 2 +-
src/nmod_poly/divrem_basecase.c | 18 +-
src/nmod_poly/find_distinct_nonzero_roots.c | 4 +-
src/nmod_poly/inflate.c | 2 +-
src/nmod_poly/interpolate_nmod_vec.c | 2 +-
src/nmod_poly/mul.c | 4 +-
src/nmod_poly/mul_classical.c | 1 +
src/nmod_poly/mullow.c | 4 +-
src/nmod_poly/mullow_classical.c | 1 +
src/nmod_poly/multi_crt.c | 9 +-
src/nmod_poly/pow_trunc.c | 1 +
src/nmod_poly/power_sums.c | 2 +-
src/nmod_poly/powers_mod.c | 1 +
src/nmod_poly/powmod_binexp.c | 1 +
src/nmod_poly/powmod_binexp_preinv.c | 1 +
src/nmod_poly/powmod_x_preinv.c | 1 +
src/nmod_poly/profile/p-gcd.c | 2 +-
src/nmod_poly/profile/p-mul.c | 2 +-
src/nmod_poly/profile/p-mulmod.c | 2 +-
src/nmod_poly/rem.c | 17 +-
src/{mpfr_vec/add.c => nmod_poly/set.c} | 17 +-
src/nmod_poly/set_coeff_ui.c | 1 +
src/nmod_poly/shift_left_right.c | 1 +
src/nmod_poly/sin_series.c | 1 +
src/nmod_poly/sinh_series.c | 1 +
src/nmod_poly/tanh_series.c | 1 +
src/nmod_poly/taylor_shift.c | 2 +-
...ompose_mod_brent_kung_precomp_preinv_threaded.c | 1 +
src/nmod_poly_factor/factor_berlekamp.c | 4 +-
src/nmod_poly_factor/factor_distinct_deg.c | 2 +-
.../factor_distinct_deg_threaded.c | 3 +-
src/nmod_poly_factor/factor_equal_deg.c | 4 +-
src/nmod_poly_factor/factor_squarefree.c | 4 +-
src/nmod_poly_factor/is_irreducible.c | 2 +-
src/nmod_poly_factor/profile/p-factor.c | 2 +-
src/nmod_poly_factor/profile/p-roots.c | 4 +-
src/nmod_poly_factor/roots.c | 4 +-
src/nmod_poly_factor/roots_factored.c | 2 +-
src/nmod_poly_mat/det.c | 2 +-
src/nmod_poly_mat/mul.c | 5 +-
src/nmod_poly_mat/mul_interpolate.c | 2 +-
src/nmod_poly_mat/sqr.c | 6 +-
src/nmod_vec.h | 8 +-
src/nmod_vec/dot.c | 4 +-
src/nmod_vec/profile/p-add.c | 2 +-
src/nmod_vec/profile/p-add_sub_neg.c | 2 +-
src/nmod_vec/profile/p-mul.c | 2 +-
src/nmod_vec/profile/p-reduce.c | 2 +-
src/nmod_vec/profile/p-scalar_addmul.c | 2 +-
src/nmod_vec/profile/p-scalar_mul.c | 2 +-
src/nmod_vec/test/t-scalar_addmul_nmod.c | 1 +
src/padic.h | 2 +-
src/padic/log_balanced.c | 2 +-
src/padic/profile/p-exp_balanced_2.c | 2 +-
src/padic/profile/p-exp_balanced_p.c | 2 +-
src/padic/profile/p-exp_rectangular.c | 2 +-
src/padic/profile/p-inv.c | 2 +-
src/padic/profile/p-log_balanced.c | 2 +-
src/padic/profile/p-log_rectangular.c | 2 +-
src/padic/profile/p-mul.c | 2 +-
src/padic/profile/p-sqrt.c | 2 +-
src/padic/profile/p-teichmuller.c | 2 +-
src/padic_mat.h | 2 +-
src/padic_mat/scalar.c | 2 +-
src/padic_poly.h | 8 +-
src/padic_poly/add.c | 4 +-
src/padic_poly/sub.c | 4 +-
src/profile/p-invert_limb.c | 2 +-
src/profile/p-udiv_qrnnd.c | 2 +-
src/profile/p-udiv_qrnnd_preinv.c | 2 +-
src/python/flint_ctypes.py | 493 ++++-
src/qadic/ctx_init.c | 4 +-
src/qadic/norm.c | 2 +-
src/qadic/profile/p-exp_balanced.c | 2 +-
src/qadic/profile/p-exp_rectangular.c | 2 +-
src/qadic/profile/p-frobenius.c | 2 +-
src/qadic/profile/p-inv.c | 2 +-
src/qadic/profile/p-log_balanced.c | 2 +-
src/qadic/profile/p-log_rectangular.c | 2 +-
src/qadic/profile/p-mul.c | 2 +-
src/qadic/profile/p-norm_analytic.c | 2 +-
src/qadic/profile/p-norm_resultant.c | 2 +-
src/qadic/profile/p-sqrt.c | 2 +-
src/qadic/profile/p-teichmuller.c | 2 +-
src/qadic/profile/p-trace.c | 2 +-
src/qfb/profile/p-factor_qfb.c | 8 -
src/qqbar.h | 2 +-
src/qqbar/roots_poly_squarefree.c | 349 ++++
src/qqbar/test/main.c | 2 +
src/qqbar/test/t-roots_poly_squarefree.c | 147 ++
src/qsieve/factor.c | 21 +-
src/thread_pool.h | 2 +-
src/thread_pool/distribute_work.c | 2 +-
src/thread_pool/init.c | 2 +
src/thread_pool/restore_affinity.c | 2 +
src/thread_pool/set_affinity.c | 2 +
src/ulong_extras.h | 8 +-
src/ulong_extras/cbrt.c | 54 -
src/ulong_extras/cleanup_primes.c | 3 +-
src/ulong_extras/compute_primes.c | 6 +-
src/ulong_extras/factor_SQUFOF.c | 24 +-
src/ulong_extras/factor_ecm.c | 8 +-
src/ulong_extras/factor_insert.c | 6 +-
src/ulong_extras/factor_misc.c | 29 +
src/ulong_extras/factor_pp1.c | 6 +-
src/ulong_extras/is_prime.c | 4 +-
src/ulong_extras/is_probabprime.c | 9 +-
src/ulong_extras/moebius_mu.c | 2 +-
src/ulong_extras/mulmod_precomp.c | 5 +-
src/ulong_extras/nextprime.c | 2 +-
src/ulong_extras/prime_inverses_arr_readonly.c | 2 +-
src/ulong_extras/primes_arr_readonly.c | 3 +-
src/ulong_extras/primes_sieve_range.c | 7 +-
src/ulong_extras/primitive_root_prime.c | 46 +-
src/ulong_extras/profile/p-factor.c | 2 +-
src/ulong_extras/profile/p-gcd.c | 2 +-
src/ulong_extras/profile/p-is_probabprime_BPSW.c | 2 +-
src/ulong_extras/profile/p-lll_mod_preinv.c | 2 +-
src/ulong_extras/profile/p-mod2_precomp.c | 2 +-
src/ulong_extras/profile/p-mod2_preinv.c | 2 +-
src/ulong_extras/profile/p-mod_precomp.c | 2 +-
src/ulong_extras/profile/p-mulmod2_preinv.c | 2 +-
src/ulong_extras/profile/p-mulmod_precomp.c | 2 +-
src/ulong_extras/randomisation.c | 11 +-
src/ulong_extras/sqrtmod_primepow.c | 13 +-
src/ulong_extras/sqrtmodn.c | 2 +-
src/ulong_extras/test/main.c | 4 +-
src/ulong_extras/test/t-cbrt_newton_iteration.c | 130 --
src/ulong_extras/test/t-compute_primes.c | 6 +-
src/ulong_extras/test/t-factor.c | 11 +-
src/ulong_extras/test/t-factor_ecm.c | 5 +-
src/ulong_extras/test/t-factor_evaluate.c | 68 +
src/ulong_extras/test/t-factor_power235.c | 3 +-
src/ulong_extras/test/t-primes.c | 28 +-
src/ulong_extras/test/t-primes_jump_after.c | 4 +-
src/ulong_extras/test/t-primitive_root_prime.c | 12 +-
todo.txt | 379 ----
1154 files changed, 38934 insertions(+), 10047 deletions(-)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment