FLINT3.7.0-dev

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).