_dfloat_platt_smk, _dfloat_platt_smk_dd
#include <flint/dfloat.h>int _dfloat_platt_smk(acb_ptr S_table, const fmpz * smk_points, const arb_t t0, slong A, slong B, ulong J, slong K, int pn, ulong M, slong prec)sourceint _dfloat_platt_smk_dd(double * S5, const fmpz * smk_points, const arb_t t0, slong A, slong B, ulong J, slong K, int pn, ulong M)sourceThe sums over in Platt's multi-evaluation of the scaled Lambda function (acb_dirichlet_platt_multieval): for the buckets of the with smk_points[m] smk_points[m+1], sets entry to for , where and . Return 1 on success and 0 if pn is not 3 or 4 or the module is not supported.
_dfloat_platt_smk_dd omits the common factor and writes compact balls of five doubles per entry (the real and imaginary midpoints as double-words and a common radius): S5[5 (k N + m) + 0..4] holds Re hi, Re lo, Im hi, Im lo and the radius, with . M bounds the table of terms (0 for the default ).
The rest of the multi-evaluation amplifies an error in the moment by about , while decreases like . So the terms and are d3b balls (with phases in d3b or d4b), is summed in d3b balls, and the moments are computed in plain double-double arithmetic and in double arithmetic, vectorised over the of a block, with an a priori error bound added per bucket. The terms are obtained by sieving: and for the smallest prime factor , from a table for and by splitting with beyond. The work is split into chunks computed in parallel and summed in a fixed order, so the result does not depend on the number of threads. At the height of the -th zero this takes about 0.42 microseconds per on one thread, against 7.7 for the arb_t version at 228 bits.
The FLINT team, “_dfloat_platt_smk, _dfloat_platt_smk_dd (dfloat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/dfloat/_dfloat_platt_smk.html (generated 2026-11-02).
@misc{flint-doc-dfloat-dfloat-platt-smk,
author = {{The FLINT team}},
title = {{\_dfloat\_platt\_smk, \_dfloat\_platt\_smk\_dd (dfloat.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/dfloat/_dfloat_platt_smk.html},
note = {Generated 2026-11-02}
}