FLINT3.7.0-dev

acb_dirichlet_gauss_sum, acb_dirichlet_gauss_sum_naive, acb_dirichlet_gauss_sum_factor, acb_dirichlet_gauss_sum_order2, acb_dirichlet_gauss_sum_theta

Synopsis#include <flint/acb_dirichlet.h>
void acb_dirichlet_gauss_sum(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)source
void acb_dirichlet_gauss_sum_naive(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)source
void acb_dirichlet_gauss_sum_factor(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)source
void acb_dirichlet_gauss_sum_order2(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)source
void acb_dirichlet_gauss_sum_theta(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)source

Set res to the Gauss sum Gq(χ)=∑x mod qχ(x)e2πix/qG_q(\chi) = \sum_{x \bmod q} \chi(x) e^{2\pi i x/q}. The naive version sums the definition; factor writes the sum as a product of local Gauss sums by the Chinese remainder theorem; order2 assumes that χ\chi is real and primitive and returns iδqi^\delta \sqrt{q}; theta assumes that χ\chi is primitive and obtains the sum from the functional equation of the theta series at t=1t = 1. The default version reduces an imprimitive character to the primitive one inducing it and then chooses among the methods.

For an imprimitive χ\chi modulo qq induced by χ0\chi_0 of conductor q0q_0, Gq(χ)=μ(q/q0)χ0(q/q0)Gq0(χ0)G_q(\chi) = \mu(q/q_0) \chi_0(q/q_0) G_{q_0}(\chi_0).

The theta method fails when the theta series vanishes at t=1t = 1. Only four characters are known with this property, χ300(71,⋅)\chi_{300}(71, \cdot), χ300(131,⋅)\chi_{300}(131, \cdot), χ600(11,⋅)\chi_{600}(11, \cdot) and χ600(491,⋅)\chi_{600}(491, \cdot), and none with prime power modulus; acb_dirichlet_gauss_sum_theta throws an exception for them and for imprimitive characters.

Cite this page

The FLINT team, “acb_dirichlet_gauss_sum, acb_dirichlet_gauss_sum_naive, acb_dirichlet_gauss_sum_factor, acb_dirichlet_gauss_sum_order2, acb_dirichlet_gauss_sum_theta (acb_dirichlet.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb_dirichlet/acb_dirichlet_gauss_sum.html (generated 2026-11-02).