_nmod_poly_interpolate_geometric_nmod_vec_fast_precomp, nmod_poly_interpolate_geometric_nmod_vec_fast_precomp
#include <flint/nmod_poly.h>void _nmod_poly_interpolate_geometric_nmod_vec_fast_precomp(nn_ptr poly, nn_srcptr v, const nmod_geometric_progression_t G, slong len, nmod_t mod)sourcevoid nmod_poly_interpolate_geometric_nmod_vec_fast_precomp(nmod_poly_t poly, nn_srcptr v, const nmod_geometric_progression_t G, slong len)sourceSet poly to the polynomial of length at most len taking the values v[i] at r^{2i}, 0 \le i < \mathit{len}, using G prepared for interpolation. Requires 1 \le \mathit{len} \le G->len. The underscore version writes len coefficients and does not allow poly to overlap v.
Following [BS2005, §5], the values are first converted to the Newton basis of the progression by one short product and then to the monomial basis by a transposed short product, with scalings by the precomputed \prod_{k \le i} (q^k - 1) and q^{i(i-1)/2}.
References#
- [BS2005] A. Bostan and É. Schost. Polynomial evaluation and interpolation on special sets of points. Journal of Complexity 21 (2005), 420–446.
The FLINT team, “_nmod_poly_interpolate_geometric_nmod_vec_fast_precomp, nmod_poly_interpolate_geometric_nmod_vec_fast_precomp (nmod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_poly/_nmod_poly_interpolate_geometric_nmod_vec_fast_precomp.html (generated 2026-10-20).
@misc{flint-doc-nmod-poly-nmod-poly-interpolate-geometric-nmod-vec-fast-precomp,
author = {{The FLINT team}},
title = {{\_nmod\_poly\_interpolate\_geometric\_nmod\_vec\_fast\_precomp, nmod\_poly\_interpolate\_geometric\_nmod\_vec\_fast\_precomp (nmod\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/nmod_poly/_nmod_poly_interpolate_geometric_nmod_vec_fast_precomp.html},
note = {Generated 2026-10-20}
}