FLINT3.7.0-dev

fft_small_mulmod_satisfies_bounds

Synopsis#include <flint/fft_small.h>
int fft_small_mulmod_satisfies_bounds(ulong n)source

Returns whether the floating-point modular multiplication modulo nn maps products in (−2n2,2n2)(-2n^2, 2n^2) into (−n,n)(-n, n) and products in (−4n2,4n2)(-4n^2, 4n^2) into (−3n/2,3n/2)(-3n/2, 3n/2), by a bound that uses the actual error of the double 1/n1/n. Every prime below 2492^{49} passes, and about one 50-bit prime in 900 fails.

AlgorithmModular arithmetic in floating pointExact arithmetic modulo n<250n < 2^{50} on integers stored in doubles, using a precomputed 1/n1/n and a fused multiply-add to split the product, as in FLINT's small-prime FFT.
Cite this page

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