FLINT3.7.0-dev

acb_dirichlet_l_fmpq_afe_jet

Synopsis#include <flint/acb_dirichlet.h>
void acb_dirichlet_l_fmpq_afe_jet(acb_ptr res, const fmpq_t s, const dirichlet_group_t G, const dirichlet_char_t chi, int deflate, slong len, slong prec)source

Sets res to the Taylor coefficients L(s),L′(s),…,L(len−1)(s)/(len−1)!L(s), L'(s), \ldots, L^{(\text{len}-1)}(s)/(\text{len}-1)! for rational ss, with deflate as in acb_dirichlet_l_jet. This uses the same approximate functional equation and precision management as acb_dirichlet_l_fmpq_afe, with every quantity replaced by a power series in xx where s→s+xs \to s + x. The required expansions of the incomplete gamma functions Γ(a+x/2,πn2/q)\Gamma(a + x/2, \pi n^2 / q) with respect to the parameter are computed by jet versions of the binary splitting and bit-burst algorithms (see _arb_gamma_upper_fmpq_step_bsplit_jet), with truncation errors bounded separately for each coefficient. For fixed len, the cost is O~(p1.5)\tilde O(p^{1.5}) at precision pp, roughly len times the cost of acb_dirichlet_l_fmpq_afe; this makes it possible to compute, for example, Glaisher's constant (via ζ′(−1)\zeta'(-1)), Stieltjes constants and their generalizations to Dirichlet LL-functions, or the second-order Landau-Ramanujan constant (via ζ′(s)\zeta'(s) and L′(s,χ−4)L'(s, \chi_{-4}) at s=2ks = 2^k) in quasi-p1.5p^{1.5} time. An imprimitive character χ\chi modulo qq induced by χ0\chi_0 is handled by evaluating L(s+x,χ0)L(s + x, \chi_0) and multiplying by the Euler factors ∏p∣q(1−χ0(p)p−s−x)\prod_{p \mid q} (1 - \chi_0(p) p^{-s-x}). The deflation only has an effect for q=1q = 1 (as in acb_dirichlet_zeta_jet); for the Riemann zeta function at s=1s = 1, deflate must be set, and for a principal character modulo q>1q > 1, deflate must not be set; otherwise the output is indeterminate.

The terms of the approximate functional equation are independent, and are computed in parallel when FLINT is allowed to use several threads (see flint_set_num_threads). The terms are added up in a fixed order, so the output does not depend on the number of threads. Each term is added as soon as all earlier terms are done; a term that finishes early waits in a small buffer (a few terms per thread), so the memory usage is O(t⋅len⋅p)O(t \cdot \text{len} \cdot p) bits with tt threads, independent of the number of terms O(qp)O(\sqrt{q p}). The same applies to acb_dirichlet_l_fmpq_afe, which is the case len = 1 of this function.

Cite this page

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