_nmod_poly_evaluate_geometric_nmod_vec_fast_precomp
Synopsis
#include <flint/nmod_poly.h>void _nmod_poly_evaluate_geometric_nmod_vec_fast_precomp(nn_ptr vs, nn_srcptr poly, slong ilen, const nmod_geometric_progression_t G, slong olen, nmod_t mod)sourceSets vs[i] to \mathit{poly}(r^{2i}) for 0 \le i < \mathit{olen}, using G prepared for evaluation. Requires \mathit{ilen}, \mathit{olen} \le G->len.
With q = r^2, \mathit{poly}(q^j) = q^{-j^2/2} \sum_i (p_i q^{-i^2/2}) q^{(i+j)^2/2}, so after scaling the coefficients by r^{-i^2} the values are a middle product with the fixed polynomial \sum_k r^{k^2} x^k, followed by a scaling by r^{-j^2}.
Cite this page
The FLINT team, “_nmod_poly_evaluate_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_evaluate_geometric_nmod_vec_fast_precomp.html (generated 2026-10-20).
@misc{flint-doc-nmod-poly-nmod-poly-evaluate-geometric-nmod-vec-fast-precomp,
author = {{The FLINT team}},
title = {{\_nmod\_poly\_evaluate\_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_evaluate_geometric_nmod_vec_fast_precomp.html},
note = {Generated 2026-10-20}
}