fft_mfa_truncate_sqrt2_outer, fft_mfa_truncate_sqrt2_inner, ifft_mfa_truncate_sqrt2_outer
#include <flint/fft.h>void fft_mfa_truncate_sqrt2_outer(mp_limb_t ** ii, mp_size_t n, flint_bitcnt_t w, mp_limb_t ** t1, mp_limb_t ** t2, mp_limb_t ** temp, mp_size_t n1, mp_size_t trunc)sourcevoid fft_mfa_truncate_sqrt2_inner(mp_limb_t ** ii, mp_limb_t ** jj, mp_size_t n, flint_bitcnt_t w, mp_limb_t ** t1, mp_limb_t ** t2, mp_limb_t ** temp, mp_size_t n1, mp_size_t trunc, mp_limb_t ** tt)sourcevoid ifft_mfa_truncate_sqrt2_outer(mp_limb_t ** ii, mp_size_t n, flint_bitcnt_t w, mp_limb_t ** t1, mp_limb_t ** t2, mp_limb_t ** temp, mp_size_t n1, mp_size_t trunc)sourceThe three stages of a threaded convolution with the matrix Fourier algorithm, as used by fft_convolution and mul_mfa_truncate_sqrt2. fft_mfa_truncate_sqrt2_outer performs the sqrt2 layer and the column transforms of ii. fft_mfa_truncate_sqrt2_inner performs, one row at a time, the row transforms of ii and jj, the pointwise products with fft_mulmod_2expp1 and the inverse row transform. ifft_mfa_truncate_sqrt2_outer performs the inverse column transforms and the sqrt2 layer and divides by 4n, leaving reduced residues. The requirements are those of fft_mfa_truncate_sqrt2 and, for the pointwise products, those of fft_mulmod_2expp1. The scratch arrays need one entry per thread; temp is not used by the _inner function.
The FLINT team, “fft_mfa_truncate_sqrt2_outer, fft_mfa_truncate_sqrt2_inner, ifft_mfa_truncate_sqrt2_outer (fft.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fft/fft_mfa_truncate_sqrt2_outer.html (generated 2026-10-20).
@misc{flint-doc-fft-fft-mfa-truncate-sqrt2-outer,
author = {{The FLINT team}},
title = {{fft\_mfa\_truncate\_sqrt2\_outer, fft\_mfa\_truncate\_sqrt2\_inner, ifft\_mfa\_truncate\_sqrt2\_outer (fft.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fft/fft_mfa_truncate_sqrt2_outer.html},
note = {Generated 2026-10-20}
}