FLINT3.7.0-dev

nmod_pow_ui, nmod_pow_fmpz

Synopsis#include <flint/nmod.h>
ulong nmod_pow_ui(ulong a, ulong exp, nmod_t mod)source
ulong nmod_pow_fmpz(ulong a, const fmpz_t exp, nmod_t mod)source

Return aexp mod na^{\mathit{exp}} \bmod n for reduced aa, with a0=1a^0 = 1 (which is 0 when n=1n = 1). For a negative exponent, nmod_pow_fmpz returns (a−1)−exp(a^{-1})^{-\mathit{exp}} and throws FLINT_IMPINV if aa is not invertible modulo nn.

nmod_pow_ui uses binary exponentiation with n_mulmod_preinv on the normalised modulus. For odd nn and exp≥211\mathit{exp} \ge 2^{11} it uses Montgomery multiplication instead. nmod_pow_fmpz calls n_powmod2_fmpz_preinv, after inverting aa with n_gcdinv if the exponent is negative, as n_powmod2_preinv does.

Guides#

Cite this page

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