FLINT3.7.0-dev

_fmpz_poly_mulmid_classical_fft_small, fmpz_poly_mulmid_classical_fft_small

Synopsis#include <flint/fmpz_poly.h>
int _fmpz_poly_mulmid_classical_fft_small(fmpz * res, const fmpz * poly1, slong len1, const fmpz * poly2, slong len2, slong nlo, slong nhi)source
int fmpz_poly_mulmid_classical_fft_small(fmpz_poly_t res, const fmpz_poly_t poly1, const fmpz_poly_t poly2, slong nlo, slong nhi)source

Classical multiplication in which the coefficient products are computed in the transform space of fft_small (Arithmetic in transform space): the coefficients of the shorter operand are transformed once, the longer operand runs through a window of transformed coefficients, and each output coefficient is a sum of pointwise products transformed back once. Squares share transforms and pair symmetric terms. This is efficient for short polynomials with very large coefficients. Return 1 on success and 0, writing nothing, when the transform representation is not available (small coefficients, or a build without fft_small). The underscore version takes the lengths in either order and does not allow res to overlap the inputs.

Cite this page

The FLINT team, “_fmpz_poly_mulmid_classical_fft_small, fmpz_poly_mulmid_classical_fft_small (fmpz_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_poly/_fmpz_poly_mulmid_classical_fft_small.html (generated 2026-10-20).