_nmod_poly_invmod, nmod_poly_invmod
Synopsis
#include <flint/nmod_poly.h>int _nmod_poly_invmod(ulong * A, const ulong * B, slong lenB, const ulong * P, slong lenP, const nmod_t mod)sourceint nmod_poly_invmod(nmod_poly_t A, const nmod_poly_t B, const nmod_poly_t P)sourceIf B is invertible modulo P, set A to its inverse and return 1; otherwise return 0, leaving A undefined. Requires a prime modulus. The non-underscore version reduces B modulo P first, returns 0 for B = 0 and throws FLINT_ERROR if \mathit{lenP} < 2. The underscore version requires 1 \le \mathit{lenB} < \mathit{lenP} (zero padding of B is allowed), writes \mathit{lenP} - 1 coefficients and does not allow aliasing. It calls the extended Euclidean algorithm _nmod_poly_gcdinv.
Guides#
Cite this page
The FLINT team, “_nmod_poly_invmod, nmod_poly_invmod (nmod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_poly/_nmod_poly_invmod.html (generated 2026-10-20).
@misc{flint-doc-nmod-poly-nmod-poly-invmod,
author = {{The FLINT team}},
title = {{\_nmod\_poly\_invmod, nmod\_poly\_invmod (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_invmod.html},
note = {Generated 2026-10-20}
}