fmpz_lll_with_removal_ulll
#include <flint/fmpz_lll.h>int fmpz_lll_with_removal_ulll(fmpz_mat_t FM, fmpz_mat_t UM, slong new_size, const fmpz_t gs_B, const fmpz_lll_t fl)sourceReduces FM with the truncation strategy: while the entries have more than new_size bits, the lattice (I \mid \lfloor \mathit{FM}/2^e \rfloor), with e chosen to leave new_size bits, is reduced with fmpz_lll_wrapper_with_removal_knapsack and its transformation applied to FM; then FM itself is reduced. Returns the number of vectors kept, as fmpz_lll_with_removal. UM captures the transformation as in the other functions. For GRAM input no truncation is done.
The truncation is repeated while it is effective: until the transformation found is the identity or the entries shrink by less than new_size/4 bits. See Truncation: ULLL.
The FLINT team, “fmpz_lll_with_removal_ulll (fmpz_lll.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_lll/fmpz_lll_with_removal_ulll.html (generated 2026-10-20).
@misc{flint-doc-fmpz-lll-fmpz-lll-with-removal-ulll,
author = {{The FLINT team}},
title = {{fmpz\_lll\_with\_removal\_ulll (fmpz\_lll.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_lll/fmpz_lll_with_removal_ulll.html},
note = {Generated 2026-10-20}
}