radix_mulmid
#include <flint/radix.h>Viewing and as polynomials evaluated at , the function computes the slice of the polynomial product and writes : carries from lower terms are omitted and carries beyond the top are discarded. In particular:
- for this is the low product ;
- for this is an approximate high product with ;
- for and it is the full product.
The classical algorithm is used if either operand or the window is shorter than 80 limbs, and otherwise if the number of limb products the window needs (counted by _radix_mulmid_pairs_below) is less than RADIX_MULMID_FFT_CUTOFF_RATIO ; the FFT (or Kronecker substitution without fft_small) is used otherwise. The cost of the FFT depends essentially on the length of the convolution it computes, while the classical algorithm benefits from short windows: a high product needs about half as many limb products as the full product. With fft_small, is _radix_mulmid_fft_length, which is smaller than for windows that do not need all limbs or that are computed as transposed products; without it, .
The FLINT team, “radix_mulmid (radix.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/radix/radix_mulmid.html (generated 2026-11-02).
@misc{flint-doc-radix-radix-mulmid,
author = {{The FLINT team}},
title = {{radix\_mulmid (radix.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/radix/radix_mulmid.html},
note = {Generated 2026-11-02}
}