vec1d_mulmod, vec4d_mulmod, vec8d_mulmod, vec1d_nmulmod, vec4d_nmulmod, vec8d_nmulmod
#include <flint/machine_vectors.h>Returns an integer r \equiv ab (mulmod) or r \equiv -ab (nmulmod) modulo n, for integers a, b with |ab| < 2^{103} and 1 \le n < 2^{50}, given ninv = 1.0 / n. The result satisfies |r| \le n/2 + \eta|ab| with \eta = (1 + 2^{-53})^3 - 1 < 3.0001 \cdot 2^{-53}. In particular, if n < 2^{49} or fft_small_mulmod_satisfies_bounds(n) holds, then |ab| < 2n^2 gives |r| < n and |ab| < 4n^2 gives |r| < 3n/2. Larger products still give a correct representative, only a larger one. AVX2 and NEON.
Guides#
The FLINT team, “vec1d_mulmod, vec4d_mulmod, vec8d_mulmod, vec1d_nmulmod, vec4d_nmulmod, vec8d_nmulmod (machine_vectors.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/machine_vectors/vec1d_mulmod.html (generated 2026-10-20).
@misc{flint-doc-machine-vectors-vec1d-mulmod,
author = {{The FLINT team}},
title = {{vec1d\_mulmod, vec4d\_mulmod, vec8d\_mulmod, vec1d\_nmulmod, vec4d\_nmulmod, vec8d\_nmulmod (machine\_vectors.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/machine_vectors/vec1d_mulmod.html},
note = {Generated 2026-10-20}
}