FLINT3.7.0-dev

_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)source
ulong _nmod_vec_dot2_half_rev(nn_srcptr vec1, nn_srcptr vec2, slong len, nmod_t mod)source
ulong _nmod_vec_dot2_half_ptr(nn_srcptr vec1, const nn_ptr * vec2, slong offset, slong len, nmod_t mod)source

Dot 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).