fmpz_mat_next_col_van_hoeij
#include <flint/fmpz_mat.h>int fmpz_mat_next_col_van_hoeij(fmpz_mat_t M, fmpz_t P, fmpz_mat_t col, slong exp, slong U_exp)sourceOne step of the knapsack lattice construction of van Hoeij's factoring algorithm [vHN2010]. Given the lattice M whose leading block U is the combinatorial part scaled by 2^{\mathit{U\_exp}}, a new column col of data modulo P and its bound 2^{\mathit{exp}}, decides whether the data carries enough information to be worth an LLL call. If not, returns 0; otherwise appends the truncated column U \cdot \mathit{col} and a row with the scaled modulus to M and returns the scaling of the new column. M is reallocated, so it must not be a window.
References#
- [vHN2010] M. van Hoeij and A. Novocin, "Gradual sub-lattice reduction and a new complexity for factoring polynomials", LATIN 2010, Lecture Notes in Computer Science 6034 (2010), 539–553. https://doi.org/10.1007/978-3-642-12200-2_47
The FLINT team, “fmpz_mat_next_col_van_hoeij (fmpz_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_mat/fmpz_mat_next_col_van_hoeij.html (generated 2026-10-20).
@misc{flint-doc-fmpz-mat-fmpz-mat-next-col-van-hoeij,
author = {{The FLINT team}},
title = {{fmpz\_mat\_next\_col\_van\_hoeij (fmpz\_mat.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_mat/fmpz_mat_next_col_van_hoeij.html},
note = {Generated 2026-10-20}
}