FLINT3.7.0-dev

fft_small_conv_arg_struct

Synopsis#include <flint/fft_small.h>
fft_small_conv_arg_struct

The arguments of one convolution: both operands with their lengths, auxiliary values and truncations (or a precomputed transform bfft of the second operand with its stride), the squaring flag, the transposed flag, the size used by the tuning predicates, the bound min_an_bn on the products per output coefficient, the callbacks with their params, and the tuning table.

With transposed set, stage 1 computes the transpose, with respect to the first operand, of the multiplication by the second: the first operand is converted at the full truncation P->ztrunc and sent through sd_ifft_trunc_tr, the pointwise product is unchanged, and sd_fft_trunc_tr with output truncation atrunc replaces sd_ifft_trunc. Squaring is not allowed in this mode. With transposed equal to 2, the images of the first operand through sd_ifft_trunc_tr are given in bfft (the first operand is ignored) and the second operand is converted and transformed in the working buffer, so that the convolution costs two transforms. _nmod_poly_mul_tr_mpn_ctx and the transposed products of radix_mulmid_fft_small set the flag to 1, _nmod_poly_mul_tr_precomp sets it to 2, and all other drivers to 0.

Cite this page

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