FLINT3.7.0-dev

fft_small_export_mpn_signed, fft_small_export_mpn_signed_trunc

Synopsis#include <flint/fft_small.h>
void fft_small_export_mpn_signed(ulong * z, ulong zn, int * sign, fft_small_op_t X, ulong nslots, const fft_small_plan_t P)source
void fft_small_export_mpn_signed_trunc(ulong * z, ulong zn, int * sign, fft_small_op_t X, ulong nslots, ulong lo_limbs, const fft_small_plan_t P)source

Reconstruct a signed integer from the first nslots slots, each lifted to the symmetric range (-P/2, P/2]. The absolute value is written to (z, z_n), zero-padded, and its sign to *sign. The trunc version writes the limbs from limb lo_limbs on, within (-1.5, 0.5) units of its lowest limb; with lo_limbs = 0 both are exact.

Requires a plan initialised with is_signed set and \mathtt{FLINT\_BITS} (\mathtt{lo\_limbs} + z_n) \ge \mathtt{nslots} \cdot \mathtt{bits} + \mathtt{FLINT\_BITS} c + 2, where c is the limb count of the Chinese remainder data (fft_small_export_mpn_signed_limbs computes the least z_n for lo_limbs = 0). The truncated version processes only the slots that can reach limb lo_limbs: the error is the truncation itself, below one unit, plus the dropped slots, less than half a unit either way.

Guides#

Cite this page

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