FLINT3.7.0-dev

_acb_dirichlet_hardy_z_zeros_use_platt

Synopsis#include <flint/acb_dirichlet.h>
slong _acb_dirichlet_hardy_z_zeros_use_platt(const fmpz_t n, slong len, slong prec)source

Returns 0 if acb_dirichlet_hardy_z_zeros uses the Riemann–Siegel method for len zeros from the nn-th at target precision prec (or at the default precision 64+⌈log⁡2n⌉64 + \lceil \log_2 n \rceil if prec is not positive), and otherwise the working precision of the large height method. The choice minimises a cost model measured with 2 threads.

The model compares three options.

  • The Riemann–Siegel method costs about the same per zero; beyond the default precision, the last stage of the refinement takes four evaluations of ZZ at the target precision (about 6 times the cost of a zero at the default precision at 192 bits, 12 times at 320 bits).
  • The large height method with the double-word sums over jj, at a working precision of at most log⁡2n+104\log_2 n + 104 bits (about log⁡2n+68\log_2 n + 68 bits of accuracy), has a fixed cost of a few seconds up to n=1015n = 10^{15} for one multi-evaluation, which isolates thousands of zeros, then about 10 ms per zero, plus the last stage of the refinement for each zero if a higher precision is requested.
  • The large height method with ball arithmetic sums at working precision prec + 48 costs 3 to 12 times as much per call and is limited in accuracy (its parameters depend only on the height) to about 253, 234, 219, 201, 187, 170 and 155 bits at n=1011,…,1017n = 10^{11}, \ldots, 10^{17}.

At the default precision, the large height method is used from 158 zeros at n=1011n = 10^{11}, 51 at 101210^{12}, 14 at 101310^{13}, 10 at 101410^{14}, 3 at 101510^{15}, 2 from 101610^{16}, and (extrapolated) for a single zero from 102010^{20}. Without double-word arithmetic (x87 builds), the large height method is used from 101510^{15}, or from 101110^{11} for more than 100 zeros. It is only used for 1011≤n<102310^{11} \le n < 10^{23}.

Cite this page

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