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 poly(r2i)\mathit{poly}(r^{2i}) for 0≤i<olen0 \le i < \mathit{olen}, using G prepared for evaluation. Requires ilen,olen≤\mathit{ilen}, \mathit{olen} \le G->len.

With q=r2q = r^2, poly(qj)=q−j2/2∑i(piq−i2/2)q(i+j)2/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−i2r^{-i^2} the values are a middle product with the fixed polynomial ∑krk2xk\sum_k r^{k^2} x^k, followed by a scaling by r−j2r^{-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-11-02).