_fmpz_poly_mul_SS, fmpz_poly_mul_SS, _fmpz_poly_mullow_SS, fmpz_poly_mullow_SS, _fmpz_poly_mulmid_SS, fmpz_poly_mulmid_SS
#include <flint/fmpz_poly.h>void _fmpz_poly_mul_SS(fmpz * res, const fmpz * poly1, slong len1, const fmpz * poly2, slong len2)sourcevoid fmpz_poly_mul_SS(fmpz_poly_t res, const fmpz_poly_t poly1, const fmpz_poly_t poly2)sourcevoid _fmpz_poly_mullow_SS(fmpz * res, const fmpz * poly1, slong len1, const fmpz * poly2, slong len2, slong n)sourcevoid fmpz_poly_mullow_SS(fmpz_poly_t res, const fmpz_poly_t poly1, const fmpz_poly_t poly2, slong n)sourcevoid _fmpz_poly_mulmid_SS(fmpz * res, const fmpz * poly1, slong len1, const fmpz * poly2, slong len2, slong nlo, slong nhi)sourcevoid fmpz_poly_mulmid_SS(fmpz_poly_t res, const fmpz_poly_t poly1, const fmpz_poly_t poly2, slong nlo, slong nhi)sourceMultiply by a Schönhage–Strassen convolution (Schönhage–Strassen multiplication): each coefficient becomes one element of \mathbb{Z}/(2^N + 1)\mathbb{Z} large enough for the coefficients of the product, and the product is a convolution of power-of-two length computed with fft_convolution (or fft_convolution_sd_fft, whose pointwise products use fft_small). For a window that does not reach the top of the product, a cyclic convolution of a power-of-two length \ge \max(\mathit{nhi}, \mathit{len1} + \mathit{len2} - 1 - \mathit{nlo}) is used when it is shorter than the truncated transform, so that the wrapped-around terms land below \mathit{nlo} (fft_convolution_choose_mid). The underscore versions require positive lengths (in either order), allow zero padding and allow res to be equal to an input. The convolutions use flint_get_num_threads threads.
The FLINT team, “_fmpz_poly_mul_SS, fmpz_poly_mul_SS, _fmpz_poly_mullow_SS, fmpz_poly_mullow_SS, _fmpz_poly_mulmid_SS, fmpz_poly_mulmid_SS (fmpz_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_poly/_fmpz_poly_mul_SS.html (generated 2026-10-20).
@misc{flint-doc-fmpz-poly-fmpz-poly-mul-SS,
author = {{The FLINT team}},
title = {{\_fmpz\_poly\_mul\_SS, fmpz\_poly\_mul\_SS, \_fmpz\_poly\_mullow\_SS, fmpz\_poly\_mullow\_SS, \_fmpz\_poly\_mulmid\_SS, fmpz\_poly\_mulmid\_SS (fmpz\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_poly/_fmpz_poly_mul_SS.html},
note = {Generated 2026-10-20}
}