FLINT3.7.0-dev

fft_small_plan_init_mpn_window, fft_small_plan_mpn_nslots, fft_small_plan_is_cyclic

Synopsis#include <flint/fft_small.h>
int fft_small_plan_init_mpn_window(fft_small_plan_t P, mpn_ctx_t R, ulong an_max, ulong bn_max, ulong len_bound, int is_signed, ulong lo, ulong hi)source
ulong fft_small_plan_mpn_nslots(const fft_small_plan_t P, ulong an_max, ulong bn_max)source
int fft_small_plan_is_cyclic(const fft_small_plan_t P)source

fft_small_plan_init_mpn_window is fft_small_plan_init_mpn for products of which only the limbs [\mathit{lo}, \mathit{hi}) are needed. fft_small_plan_mpn_nslots returns the number of chunk coefficients (slots) that the inverse transform computes for operands of at most an_max and bn_max limbs, and fft_small_plan_is_cyclic whether slots alias, that is, whether the transform is shorter than the product.

Only the chunk coefficients that can reach the window are needed. If a power of two 2^d is at least the operand chunk counts and the highest of them, and the coefficients past 2^d fold onto coefficients below the lowest one, the transforms are cyclic of length 2^d. The slots below the window then hold no exact values, and exports must read windows inside [\mathit{lo}, \mathit{hi}) with fft_small_export_mpn_signed_window, which are within one unit of the exact window. With \mathit{lo} = 0 and \mathit{hi} at least the product length this is the ordinary plan.

Guides#

Cite this page

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