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 BB is invertible modulo PP, set AA to its inverse and return 1; otherwise return 0, leaving AA undefined. Requires a prime modulus. The non-underscore version reduces BB modulo PP first, returns 0 for B=0B = 0 and throws FLINT_ERROR if lenP<2\mathit{lenP} < 2. The underscore version requires 1≤lenB<lenP1 \le \mathit{lenB} < \mathit{lenP} (zero padding of BB is allowed), writes lenP−1\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-11-02).