_flint_mpn_dot_rev_generic, _flint_mpn_dot_rev_generic_sdiff, _flint_mpn_dot_rev_generic_signed, _flint_mpn_dot_rev_generic_signmag
#include <flint/mpn_extras.h>void _flint_mpn_dot_rev_generic(nn_ptr res, nn_srcptr a, slong n1, nn_srcptr b, slong n2, slong len, slong s, nn_ptr scratch)sourcevoid _flint_mpn_dot_rev_generic_sdiff(nn_ptr res, nn_srcptr a, slong n1, nn_srcptr b, slong n2, slong len, int sdiff, nn_ptr t)sourcevoid _flint_mpn_dot_rev_generic_signed(nn_ptr res, nn_srcptr a, slong n1, nn_srcptr b, slong n2, slong len, slong s, nn_ptr scratch)sourcevoid _flint_mpn_dot_rev_generic_signmag(nn_ptr res, nn_srcptr a, slong n1, nn_srcptr b, slong n2, slong len, slong s, nn_ptr t)sourceReversed dot products for any , and , using flint_mpn_mul and mpn_add_n. The scratch space must have limbs. The sdiff version takes , which should be a compile-time constant. The signed version handles the signs with branches and is competitive only when they are predictable. In the sign-magnitude version each coefficient is a sign limb (0 or 1) followed by the magnitude, so that the strides are and ; the output is in two's complement, and the scratch space must have limbs.
The FLINT team, “_flint_mpn_dot_rev_generic, _flint_mpn_dot_rev_generic_sdiff, _flint_mpn_dot_rev_generic_signed, _flint_mpn_dot_rev_generic_signmag (mpn_extras.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/mpn_extras/_flint_mpn_dot_rev_generic.html (generated 2026-11-02).
@misc{flint-doc-mpn-extras-flint-mpn-dot-rev-generic,
author = {{The FLINT team}},
title = {{\_flint\_mpn\_dot\_rev\_generic, \_flint\_mpn\_dot\_rev\_generic\_sdiff, \_flint\_mpn\_dot\_rev\_generic\_signed, \_flint\_mpn\_dot\_rev\_generic\_signmag (mpn\_extras.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/mpn_extras/_flint_mpn_dot_rev_generic.html},
note = {Generated 2026-11-02}
}