fft_small_export_mpn_signed, fft_small_export_mpn_signed_trunc
#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)sourcevoid 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)sourceReconstruct 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#
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).
@misc{flint-doc-fft-small-fft-small-export-mpn-signed,
author = {{The FLINT team}},
title = {{fft\_small\_export\_mpn\_signed, fft\_small\_export\_mpn\_signed\_trunc (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_export_mpn_signed.html},
note = {Generated 2026-10-20}
}