FLINT3.7.0-dev

_nmod_poly_mulmod_preinv, nmod_poly_mulmod_preinv

Synopsis#include <flint/nmod_poly.h>
void _nmod_poly_mulmod_preinv(nn_ptr res, nn_srcptr poly1, slong len1, nn_srcptr poly2, slong len2, nn_srcptr f, slong lenf, nn_srcptr finv, slong lenfinv, nmod_t mod)source
void nmod_poly_mulmod_preinv(nmod_poly_t res, const nmod_poly_t poly1, const nmod_poly_t poly2, const nmod_poly_t f, const nmod_poly_t finv)source

Set res to \mathit{poly1} \cdot \mathit{poly2} \bmod f, reducing with _nmod_poly_divrem_newton_n_preinv and the precomputed finv. Both factors must be reduced modulo f: the non-underscore version throws FLINT_ERROR if \mathit{len1} \ge \mathit{lenf} or \mathit{len2} \ge \mathit{lenf}. The underscore version also requires \mathit{len1}, \mathit{len2} \ge 1 and \mathit{len1} + \mathit{len2} - 1 \ge \mathit{lenf}, writes \mathit{lenf} - 1 coefficients and does not allow res to overlap f or finv.

Guides#

Cite this page

The FLINT team, “_nmod_poly_mulmod_preinv, nmod_poly_mulmod_preinv (nmod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_poly/_nmod_poly_mulmod_preinv.html (generated 2026-10-20).