FLINT3.7.0-dev

_nmod_vec_dot2_split, _nmod_vec_dot2_split_rev, _nmod_vec_dot2_split_ptr

Synopsis#include <flint/nmod_vec.h>
ulong _nmod_vec_dot2_split(nn_srcptr vec1, nn_srcptr vec2, slong len, nmod_t mod, ulong pow2_precomp)source
ulong _nmod_vec_dot2_split_rev(nn_srcptr vec1, nn_srcptr vec2, slong len, nmod_t mod, ulong pow2_precomp)source
ulong _nmod_vec_dot2_split_ptr(nn_srcptr vec1, const nn_ptr * vec2, slong offset, slong len, nmod_t mod, ulong pow2_precomp)source

Dot product kernel for 64-bit machines that keeps the unreduced sum as h \, 2^{56} + \ell in two words and folds h in with pow2_precomp = 2^{56} \bmod n. Requires n \le 1515531528 and a bound on the length; see splitting at bit 56.

Cite this page

The FLINT team, “_nmod_vec_dot2_split, _nmod_vec_dot2_split_rev, _nmod_vec_dot2_split_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_split.html (generated 2026-10-20).