_gr_poly_compose_mod_brent_kung_vec_preinv, gr_poly_compose_mod_brent_kung_vec_preinv
#include <flint/gr_poly.h>int _gr_poly_compose_mod_brent_kung_vec_preinv(gr_poly_struct * res, const gr_poly_struct * polys, slong lenpolys, slong l, gr_srcptr g, slong glen, gr_srcptr poly, slong len, gr_srcptr polyinv, slong leninv, gr_ctx_t ctx)sourceint gr_poly_compose_mod_brent_kung_vec_preinv(gr_poly_struct * res, const gr_poly_struct * polys, slong len1, slong n, const gr_poly_t g, const gr_poly_t poly, const gr_poly_t polyinv, gr_ctx_t ctx)sourceSet res[i] to polys[i] composed with modulo poly for (respectively ), where polys holds len1 (respectively lenpolys) polynomials of degree less than that of poly and polyinv is the inverse of the reversal of poly. Compared with separate compositions, a single matrix product with splitting parameter reduces the number of modular multiplications by a factor .
The underscore version requires of length at most and room for coefficients in each res[i]. The non-underscore version does not allow the output to be aliased with , poly or polyinv.
The FLINT team, “_gr_poly_compose_mod_brent_kung_vec_preinv, gr_poly_compose_mod_brent_kung_vec_preinv (gr_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/gr_poly/_gr_poly_compose_mod_brent_kung_vec_preinv.html (generated 2026-11-02).
@misc{flint-doc-gr-poly-gr-poly-compose-mod-brent-kung-vec-preinv,
author = {{The FLINT team}},
title = {{\_gr\_poly\_compose\_mod\_brent\_kung\_vec\_preinv, gr\_poly\_compose\_mod\_brent\_kung\_vec\_preinv (gr\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/gr_poly/_gr_poly_compose_mod_brent_kung_vec_preinv.html},
note = {Generated 2026-11-02}
}