_nmod_vec_dot2_half, _nmod_vec_dot2_half_rev, _nmod_vec_dot2_half_ptr
Synopsis
#include <flint/nmod_vec.h>ulong _nmod_vec_dot2_half(nn_srcptr vec1, nn_srcptr vec2, slong len, nmod_t mod, ulong pow2_precomp)sourceulong _nmod_vec_dot2_half_ptr(nn_srcptr vec1, const nn_ptr * vec2, slong offset, slong len, nmod_t mod)sourceDot product kernel for n \le 2^{\mathtt{FLINT\_BITS}/2} that adds one-limb products into a two-limb sum. On 64-bit machines with AVX2, _nmod_vec_dot2_half instead splits each product at bit 56, needs pow2_precomp = 2^{56} \bmod n and has a length limit; see splitting each product.
Cite this page
The FLINT team, “_nmod_vec_dot2_half, _nmod_vec_dot2_half_rev, _nmod_vec_dot2_half_ptr (nmod_vec.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_vec/_nmod_vec_dot2_half.html (generated 2026-10-20).
@misc{flint-doc-nmod-vec-nmod-vec-dot2-half,
author = {{The FLINT team}},
title = {{\_nmod\_vec\_dot2\_half, \_nmod\_vec\_dot2\_half\_rev, \_nmod\_vec\_dot2\_half\_ptr (nmod\_vec.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/nmod_vec/_nmod_vec_dot2_half.html},
note = {Generated 2026-10-20}
}