FLINT3.7.0-dev

_fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv, fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv

Synopsis#include <flint/fmpz_mod_poly.h>
void _fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv(fmpz * res, const fmpz * poly1, slong len1, const fmpz_mat_t A, const fmpz * poly3, slong len3, const fmpz * poly3inv, slong len3inv, const fmpz_mod_ctx_t ctx)source
void fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv(fmpz_mod_poly_t res, const fmpz_mod_poly_t poly1, const fmpz_mat_t A, const fmpz_mod_poly_t poly3, const fmpz_mod_poly_t poly3inv, const fmpz_mod_ctx_t ctx)source

Set res to f(g) mod hf(g) \bmod h for ff = poly1 with deg⁡f<deg⁡h\deg f < \deg h, hh = poly3, given the matrix AA of powers of gg computed by fmpz_mod_poly_precompute_matrix and the inverse poly3inv of the reversal of hh. Only the matrix product and the giant steps remain, which makes repeated compositions with the same gg, such as the Frobenius iterations in factorisation, cheaper.

Cite this page

The FLINT team, “_fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv, fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv (fmpz_mod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_mod_poly/_fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv.html (generated 2026-11-02).