_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)sourcevoid 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)sourceSet 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).
@misc{flint-doc-nmod-poly-nmod-poly-mulmod-preinv,
author = {{The FLINT team}},
title = {{\_nmod\_poly\_mulmod\_preinv, nmod\_poly\_mulmod\_preinv (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_mulmod_preinv.html},
note = {Generated 2026-10-20}
}