fmpz_poly_factor_zassenhaus_recombination, fmpz_poly_factor_zassenhaus_recombination_with_prune
#include <flint/fmpz_poly_factor.h>void fmpz_poly_factor_zassenhaus_recombination(fmpz_poly_factor_t final_fac, const fmpz_poly_factor_t lifted_fac, const fmpz_poly_t F, const fmpz_t P, slong exp)sourcevoid fmpz_poly_factor_zassenhaus_recombination_with_prune(fmpz_poly_factor_t final_fac, const fmpz_poly_factor_t lifted_fac, const fmpz_poly_t F, const fmpz_t P, slong exp, const zassenhaus_prune_t Z)sourceFind the irreducible factors of the squarefree primitive F from its monic factors lifted_fac modulo P = p^a, where P > 2 |\operatorname{lc}(F)| B for the Mignotte bound B, by trying subsets of the modular factors in order of increasing size: for each subset S, the product \operatorname{lc}(F) \prod_{i \in S} g_i is reduced into the symmetric range modulo P, its primitive part is tested as a divisor of F, and true factors are removed together with their modular factors. Each factor is appended to final_fac with multiplicity exp. The with_prune version skips subsets whose total degree is impossible according to Z.
The FLINT team, “fmpz_poly_factor_zassenhaus_recombination, fmpz_poly_factor_zassenhaus_recombination_with_prune (fmpz_poly_factor.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_poly_factor/fmpz_poly_factor_zassenhaus_recombination.html (generated 2026-10-20).
@misc{flint-doc-fmpz-poly-factor-fmpz-poly-factor-zassenhaus-recombination,
author = {{The FLINT team}},
title = {{fmpz\_poly\_factor\_zassenhaus\_recombination, fmpz\_poly\_factor\_zassenhaus\_recombination\_with\_prune (fmpz\_poly\_factor.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_poly_factor/fmpz_poly_factor_zassenhaus_recombination.html},
note = {Generated 2026-10-20}
}