_fq_nmod_poly_compose_mod_brent_kung, fq_nmod_poly_compose_mod_brent_kung, _fq_nmod_poly_compose_mod_brent_kung_preinv, fq_nmod_poly_compose_mod_brent_kung_preinv
#include <flint/fq_nmod_poly.h>void _fq_nmod_poly_compose_mod_brent_kung(fq_nmod_struct * res, const fq_nmod_struct * poly1, slong len1, const fq_nmod_struct * poly2, const fq_nmod_struct * poly3, slong len3, const fq_nmod_ctx_t ctx)void fq_nmod_poly_compose_mod_brent_kung(fq_nmod_poly_t res, const fq_nmod_poly_t poly1, const fq_nmod_poly_t poly2, const fq_nmod_poly_t poly3, const fq_nmod_ctx_t ctx)void _fq_nmod_poly_compose_mod_brent_kung_preinv(fq_nmod_struct * res, const fq_nmod_struct * poly1, slong len1, const fq_nmod_struct * poly2, const fq_nmod_struct * poly3, slong len3, const fq_nmod_struct * poly3inv, slong len3inv, const fq_nmod_ctx_t ctx)void fq_nmod_poly_compose_mod_brent_kung_preinv(fq_nmod_poly_t res, const fq_nmod_poly_t poly1, const fq_nmod_poly_t poly2, const fq_nmod_poly_t poly3, const fq_nmod_poly_t poly3inv, const fq_nmod_ctx_t ctx)Modular composition f(g) \bmod h by the Brent–Kung algorithm: the powers g^i \bmod h for i < m = \lceil \sqrt{\mathit{lenf}} \rceil are computed, f is split into m blocks, the block compositions are obtained by one m \times m by m \times \deg h matrix product, and the results are combined by Horner's rule in g^m. Requires \deg f < \deg h and g reduced modulo h; the _preinv versions also require the inverse of the reversal of h. No aliasing in the underscore versions.
Generated from the same template as _fq_poly_compose_mod_brent_kung, whose documentation has the details.
The FLINT team, “_fq_nmod_poly_compose_mod_brent_kung, fq_nmod_poly_compose_mod_brent_kung, _fq_nmod_poly_compose_mod_brent_kung_preinv, fq_nmod_poly_compose_mod_brent_kung_preinv (fq_nmod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fq_nmod_poly/_fq_nmod_poly_compose_mod_brent_kung.html (generated 2026-10-20).
@misc{flint-doc-fq-nmod-poly-fq-nmod-poly-compose-mod-brent-kung,
author = {{The FLINT team}},
title = {{\_fq\_nmod\_poly\_compose\_mod\_brent\_kung, fq\_nmod\_poly\_compose\_mod\_brent\_kung, \_fq\_nmod\_poly\_compose\_mod\_brent\_kung\_preinv, fq\_nmod\_poly\_compose\_mod\_brent\_kung\_preinv (fq\_nmod\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fq_nmod_poly/_fq_nmod_poly_compose_mod_brent_kung.html},
note = {Generated 2026-10-20}
}