acb_dirichlet_l_ui_borwein_bsplit
#include <flint/acb_dirichlet.h>void acb_dirichlet_l_ui_borwein_bsplit(acb_t res, ulong s, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)sourceSets res to for an integer and a primitive character modulo (with G = NULL for ), using a generalization of Borwein's algorithm for the Riemann zeta function (arb_zeta_ui_borwein_bsplit) with binary splitting, which costs at precision .
If , the 2-component of is primitive, which implies that with ; if is odd, we instead use with . In both cases, is a linear combination over the residues modulo of alternating series , whose terms are moments of a positive measure on with total mass . Borwein's acceleration with terms therefore has error at most for each series. The series are evaluated together by one binary splitting over vectors (several in parallel when threads are available), and the character values only enter in the final linear combination.
The output is indeterminate if the character is not primitive, if (there are then no primitive characters), and if , is odd and (when the factor vanishes).
The FLINT team, “acb_dirichlet_l_ui_borwein_bsplit (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_ui_borwein_bsplit.html (generated 2026-11-02).
@misc{flint-doc-acb-dirichlet-acb-dirichlet-l-ui-borwein-bsplit,
author = {{The FLINT team}},
title = {{acb\_dirichlet\_l\_ui\_borwein\_bsplit (acb\_dirichlet.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/acb_dirichlet/acb_dirichlet_l_ui_borwein_bsplit.html},
note = {Generated 2026-11-02}
}