FLINT3.7.0-dev

_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)source

Sets 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).