_nmod_poly_mullow_want_fft_small, _nmod_poly_mulmid_want_fft_small
#include <flint/nmod_poly.h>int _nmod_poly_mullow_want_fft_small(slong len1, slong len2, slong n, int squaring, nmod_t mod)sourceReturn whether fft_small is expected to be the fastest algorithm for a product of lengths len1 and len2 truncated to length n (a full product if n = \mathit{len1} + \mathit{len2} - 1), respectively for m coefficients of a middle product whose shorter operand, after trimming, has length len2.
For full products the condition is \min(\mathit{len1}, 2 \mathit{len2}) at least a tabulated cutoff, one for each bit size of n and separate ones for squaring, between about 80 and 1400. Moduli that are themselves one of the primes of the default fft_small context need no Chinese remaindering and use fft_small from \min(\mathit{len1}, 2 \mathit{len2}) \ge 24. For n \le 23 (repacking) the full product length must exceed 370, with gaps just above the power-of-two lengths 512 and 1024 where the transform length doubles.
The FLINT team, “_nmod_poly_mullow_want_fft_small, _nmod_poly_mulmid_want_fft_small (nmod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_poly/_nmod_poly_mullow_want_fft_small.html (generated 2026-10-20).
@misc{flint-doc-nmod-poly-nmod-poly-mullow-want-fft-small,
author = {{The FLINT team}},
title = {{\_nmod\_poly\_mullow\_want\_fft\_small, \_nmod\_poly\_mulmid\_want\_fft\_small (nmod\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/nmod_poly/_nmod_poly_mullow_want_fft_small.html},
note = {Generated 2026-10-20}
}