FLINT3.7.0-dev

_nmod_poly_revert_series, nmod_poly_revert_series

Synopsis#include <flint/nmod_poly.h>
void _nmod_poly_revert_series(nn_ptr Qinv, nn_srcptr Q, slong Qlen, slong n, nmod_t mod)source
void nmod_poly_revert_series(nmod_poly_t Qinv, const nmod_poly_t Q, slong n)source

Set Qinv to the compositional inverse of the power series QQ modulo xnx^n, so that Q(Qinv(x))=Qinv(Q(x))=x mod xnQ(\mathit{Qinv}(x)) = \mathit{Qinv}(Q(x)) = x \bmod x^n. Requires Q0=0Q_0 = 0 and Q1Q_1 invertible; the non-underscore version throws FLINT_ERROR otherwise. The underscore version writes nn coefficients and does not allow aliasing.

For n<2500n < 2500 the fast Lagrange inversion of [Joh2015b] is used, which divides by 1,…,n−11, \ldots, n - 1; if one of them is not invertible (small characteristic), and for larger nn, Newton iteration with power series composition is used instead.

References#

Cite this page

The FLINT team, “_nmod_poly_revert_series, nmod_poly_revert_series (nmod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_poly/_nmod_poly_revert_series.html (generated 2026-11-02).