fq_poly_factor_with_cantor_zassenhaus, fq_poly_factor_with_berlekamp, fq_poly_factor_with_kaltofen_shoup
Synopsis
#include <flint/fq_poly_factor.h>void fq_poly_factor_with_cantor_zassenhaus(fq_poly_factor_t result, fq_t leading_coeff, const fq_poly_t input, const fq_ctx_t ctx)void fq_poly_factor_with_berlekamp(fq_poly_factor_t result, fq_t leading_coeff, const fq_poly_t input, const fq_ctx_t ctx)void fq_poly_factor_with_kaltofen_shoup(fq_poly_factor_t result, fq_t leading_coeff, const fq_poly_t input, const fq_ctx_t ctx)As fq_poly_factor, but factoring the squarefree parts with the Cantor–Zassenhaus algorithm (distinct-degree factorisation followed by equal-degree splitting), Berlekamp's algorithm (a basis of the kernel of the Frobenius map minus the identity, followed by random splitting), or the Kaltofen–Shoup algorithm (distinct-degree factorisation with baby-step giant-step Frobenius computations by modular composition).
Cite this page
The FLINT team, “fq_poly_factor_with_cantor_zassenhaus, fq_poly_factor_with_berlekamp, fq_poly_factor_with_kaltofen_shoup (fq_poly_factor.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fq_poly_factor/fq_poly_factor_with_cantor_zassenhaus.html (generated 2026-10-20).
@misc{flint-doc-fq-poly-factor-fq-poly-factor-with-cantor-zassenhaus,
author = {{The FLINT team}},
title = {{fq\_poly\_factor\_with\_cantor\_zassenhaus, fq\_poly\_factor\_with\_berlekamp, fq\_poly\_factor\_with\_kaltofen\_shoup (fq\_poly\_factor.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fq_poly_factor/fq_poly_factor_with_cantor_zassenhaus.html},
note = {Generated 2026-10-20}
}