fmpz_mpoly_hlift
#include <flint/fmpz_mpoly_factor.h>int fmpz_mpoly_hlift(slong m, fmpz_mpoly_struct * f, slong r, const fmpz * alpha, const fmpz_mpoly_t A, const slong * degs, const fmpz_mpoly_ctx_t ctx)sourceLifts the r \ge 2 factors f_i of A \equiv \prod_i f_i \bmod (x_m - \alpha_{m-1}), in a lex context with single-word exponents, to factors in the variables x_0, \ldots, x_m. The leading coefficients of the f_i in x_0 must already be the correct ones (polynomials in all of x_1, \ldots, x_m), and degs are the degrees of A. The lifting runs up to degree degs[m] in x_m - \alpha_{m-1}; it uses the error update of the quartic method, specialised for r = 2, when r < 20, and recomputes the product of the factors (quintic method) otherwise. Returns 0 if a partial fraction problem has no solution or the degrees exceed degs[m], in which case there is no factorisation of A with these images and leading coefficients. Only the quintic version checks at the end that A = \prod_i f_i; the callers verify the factors by division in any case. See The lifting step.
The FLINT team, “fmpz_mpoly_hlift (fmpz_mpoly_factor.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_mpoly_factor/fmpz_mpoly_hlift.html (generated 2026-10-20).
@misc{flint-doc-fmpz-mpoly-factor-fmpz-mpoly-hlift,
author = {{The FLINT team}},
title = {{fmpz\_mpoly\_hlift (fmpz\_mpoly\_factor.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_mpoly_factor/fmpz_mpoly_hlift.html},
note = {Generated 2026-10-20}
}