FLINT3.7.0-dev

arb_fmpz_poly_gauss_period_minpoly

Synopsis#include <flint/arb_fmpz_poly.h>
void arb_fmpz_poly_gauss_period_minpoly(fmpz_poly_t res, ulong q, ulong n)source

Sets res to the minimal polynomial of the Gaussian periods ∑a∈Hζa\sum_{a \in H} \zeta^a, where ζ=e2πi/q\zeta = e^{2 \pi i / q} and HH runs over the cosets of the subgroup of order d=(q−1)/nd = (q-1)/n of (Z/qZ)×(\mathbb{Z} / q\mathbb{Z})^{\times}. The result has degree nn; for d=1d = 1 it is the cyclotomic polynomial Φq\Phi_q. Requires qq prime, n∣q−1n \mid q - 1 and gcd⁡(n,d)=1\gcd(n, d) = 1; otherwise res is set to zero.

The periods are computed numerically with acb_dirichlet_roots, the product ∏(x−ηk)\prod (x - \eta_k) is formed in ball arithmetic, and the integer coefficients are recovered with arb_poly_get_unique_fmpz_poly, doubling the precision until this succeeds. If additionally (q−1)/f(q-1)/f is coprime to nn, where ff is the multiplicative order of a prime pp modulo qq, the polynomial is irreducible over Fp\mathbb{F}_p [CraPom2005], which gives a fast way to construct finite field extensions of a given degree (see Defining polynomials).

References#

  • [CraPom2005] R. Crandall and C. Pomerance, Prime Numbers: A Computational Perspective, second edition, Springer (2005).
Cite this page

The FLINT team, “arb_fmpz_poly_gauss_period_minpoly (arb_fmpz_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/arb_fmpz_poly/arb_fmpz_poly_gauss_period_minpoly.html (generated 2026-11-02).