nmod_poly_extrapolate_geometric, nmod_poly_extrapolate_geometric_precomp
#include <flint/nmod_poly.h>void nmod_poly_extrapolate_geometric(nn_ptr oval, slong olen, nn_srcptr ival, slong ilen, slong offset, ulong r, nmod_t mod)sourcevoid nmod_poly_extrapolate_geometric_precomp(nn_ptr oval, slong olen, nn_srcptr ival, slong ilen, slong offset, const nmod_geometric_progression_t G)sourceGiven the values ival of a polynomial f of degree less than \mathit{ilen} at ilen consecutive points of the progression, compute its values oval at olen consecutive points starting offset positions later, without computing f. The points must not overlap: \mathit{offset} \ge \mathit{ilen} (forward) or \mathit{offset} + \mathit{olen} \le 0 (backward).
Precisely, for any invertible c and k \ge 0 (which the functions need not know), if ival[i] = f(c \cdot r^{2(k+i)}) for 0 \le i < \mathit{ilen}, then oval[j] = f(c \cdot r^{2(\ell + j)}) for 0 \le j < \mathit{olen} with \ell = k + \mathit{offset}. This uses one middle product. In the forward case none of r^2, \ldots, r^{2(\mathit{offset} + \mathit{olen} - 1)} may be 1, and G->len must be at least \mathit{offset} + \mathit{olen}; in the backward case the same holds for \mathit{ilen} - \mathit{offset}. G must be prepared for extrapolation; the function without _precomp builds a temporary G. For \mathit{ilen} \le 1 the output is constant.
The FLINT team, “nmod_poly_extrapolate_geometric, nmod_poly_extrapolate_geometric_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_extrapolate_geometric.html (generated 2026-10-20).
@misc{flint-doc-nmod-poly-nmod-poly-extrapolate-geometric,
author = {{The FLINT team}},
title = {{nmod\_poly\_extrapolate\_geometric, nmod\_poly\_extrapolate\_geometric\_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_extrapolate_geometric.html},
note = {Generated 2026-10-20}
}