_fmpzi_poly_mulmid_classical_fft_small
#include <flint/fmpzi.h>int _fmpzi_poly_mulmid_classical_fft_small(fmpzi_struct * res, const fmpzi_struct * poly1, slong len1, const fmpzi_struct * poly2, slong len2, slong nlo, slong nhi)sourceComputes the coefficients [\mathtt{nlo}, \mathtt{nhi}) of the product of the Gaussian integer polynomials (poly1, len1) and (poly2, len2), with the coefficient arithmetic done pointwise on fft_small transforms: two transforms per coefficient (real and imaginary parts) and four pointwise operations per complex product, the shorter operand's transforms kept and the longer rolling as in _fmpz_poly_mulmid_classical_fft_small. Squaring shares transforms, pairs symmetric terms and computes diagonal squares with three multiplications. The lengths may be given in either order. Returns 1 on success and 0 when the transformed representation is unavailable or unprofitable in which case nothing is written and the caller should fall back to a different routine.
The FLINT team, “_fmpzi_poly_mulmid_classical_fft_small (fmpzi.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpzi/_fmpzi_poly_mulmid_classical_fft_small.html (generated 2026-10-20).
@misc{flint-doc-fmpzi-fmpzi-poly-mulmid-classical-fft-small,
author = {{The FLINT team}},
title = {{\_fmpzi\_poly\_mulmid\_classical\_fft\_small (fmpzi.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpzi/_fmpzi_poly_mulmid_classical_fft_small.html},
note = {Generated 2026-10-20}
}