fft_small_conv_arg_struct
#include <flint/fft_small.h>fft_small_conv_arg_structThe 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.
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).
@misc{flint-doc-fft-small-fft-small-conv-arg-struct,
author = {{The FLINT team}},
title = {{fft\_small\_conv\_arg\_struct (fft\_small.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fft_small/fft_small_conv_arg_struct.html},
note = {Generated 2026-10-20}
}