FLINT3.7.0-dev

fq_poly_is_irreducible, fq_poly_is_irreducible_ddf, fq_poly_is_irreducible_ben_or

Synopsis#include <flint/fq_poly_factor.h>
int fq_poly_is_irreducible(const fq_poly_t f, const fq_ctx_t ctx)
int fq_poly_is_irreducible_ddf(const fq_poly_t f, const fq_ctx_t ctx)
int fq_poly_is_irreducible_ben_or(const fq_poly_t f, const fq_ctx_t ctx)

Return whether f is irreducible. Unlike gr_poly_is_irreducible, these functions return 1 for all polynomials of length at most 2, including constants and zero.

fq_poly_is_irreducible calls gr_poly_is_irreducible, which uses the distinct-degree test below degree 600 and Rabin's test above it. fq_poly_is_irreducible_ddf uses the coarse phase of the baby-step giant-step distinct-degree factorisation, which stops at the first factor found, and fq_poly_is_irreducible_ben_or Ben-Or's test, computing \gcd(f, x^{q^i} - x) for i \le \deg f / 2 [BenOr1981]. See Factoring polynomials over finite fields.

References#

  • [BenOr1981] M. Ben-Or. Probabilistic algorithms in finite fields. 22nd Annual Symposium on Foundations of Computer Science (FOCS 1981), IEEE, 394–398.
Cite this page

The FLINT team, “fq_poly_is_irreducible, fq_poly_is_irreducible_ddf, fq_poly_is_irreducible_ben_or (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_is_irreducible.html (generated 2026-10-20).