FLINT3.7.0-dev

_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)source
int nmod_poly_invmod(nmod_poly_t A, const nmod_poly_t B, const nmod_poly_t P)source

If 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).