fmpz_poly_hensel_build_tree
#include <flint/fmpz_poly.h>void fmpz_poly_hensel_build_tree(slong * link, fmpz_poly_t * v, fmpz_poly_t * w, const nmod_poly_factor_t fac)sourceBuilds a Hensel tree from the r local factors in fac. The arrays link, v and w have 2r - 2 entries. The tree is built by repeatedly multiplying the two factors (or products) of smallest degree, so that it is balanced by degree; v holds the factors and products, with v[2r - 4] and v[2r - 3] the two children of the root, and w holds the Bézout cofactors, v_{2i} w_{2i} + v_{2i+1} w_{2i+1} \equiv 1 \pmod p. A negative link[j] means that v[j] is the original factor number -link[j] - 1; a nonnegative link[j] means that v[j] is the product of v[link[j]] and v[link[j] + 1].
The FLINT team, “fmpz_poly_hensel_build_tree (fmpz_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_poly/fmpz_poly_hensel_build_tree.html (generated 2026-10-20).
@misc{flint-doc-fmpz-poly-fmpz-poly-hensel-build-tree,
author = {{The FLINT team}},
title = {{fmpz\_poly\_hensel\_build\_tree (fmpz\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_poly/fmpz_poly_hensel_build_tree.html},
note = {Generated 2026-10-20}
}