vec1d_reduce_to_pm1n, vec4d_reduce_to_pm1n, vec8d_reduce_to_pm1n, vec1d_reduce_to_pm1no, vec4d_reduce_to_pm1no, vec8d_reduce_to_pm1no
Synopsis
#include <flint/machine_vectors.h>Returns an integer r = a - qn \equiv a \pmod n, with q an approximation of a/n rounded to an integer, for an integer |a| < 2^{53} and an integer n \ge 4. The two functions are identical. The result satisfies |r| < n/2 + 2, hence |r| < n. On AVX2 the quotient is computed with round_mul, which with the magic constant needs |a| / n \le 2^{51}; this is why n \ge 4 is required. AVX2 and NEON.
Cite this page
The FLINT team, “vec1d_reduce_to_pm1n, vec4d_reduce_to_pm1n, vec8d_reduce_to_pm1n, vec1d_reduce_to_pm1no, vec4d_reduce_to_pm1no, vec8d_reduce_to_pm1no (machine_vectors.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/machine_vectors/vec1d_reduce_to_pm1n.html (generated 2026-10-20).
@misc{flint-doc-machine-vectors-vec1d-reduce-to-pm1n,
author = {{The FLINT team}},
title = {{vec1d\_reduce\_to\_pm1n, vec4d\_reduce\_to\_pm1n, vec8d\_reduce\_to\_pm1n, vec1d\_reduce\_to\_pm1no, vec4d\_reduce\_to\_pm1no, vec8d\_reduce\_to\_pm1no (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_reduce_to_pm1n.html},
note = {Generated 2026-10-20}
}