fmpz_mpoly_pfrac
#include <flint/fmpz_mpoly_factor.h>int fmpz_mpoly_pfrac(slong l, fmpz_mpoly_t t, const slong * degs, fmpz_mpoly_pfrac_t Iv, const fmpz_mpoly_ctx_t ctx)sourceSolves t = \sum_i \delta_i \prod_{j \ne i} \beta_j^{(l)} in the variables x_0, \ldots, x_l with \deg_{x_0} \delta_i < \deg_{x_0} \beta_i and \deg_{x_k} \delta_i at most what the bound degs[k] allows, storing the solution in Iv->deltas + l*r. For l = 0 this is a univariate problem; for l > 0 the Taylor coefficients of t in x_l - \alpha_{l-1} are processed in turn, each by a call at level l - 1. t is destroyed. Returns 1 if a solution exists, 0 if no solution satisfies the degree bounds, and -1 if t cannot be repacked to the working bits.
The FLINT team, “fmpz_mpoly_pfrac (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_pfrac.html (generated 2026-10-20).
@misc{flint-doc-fmpz-mpoly-factor-fmpz-mpoly-pfrac,
author = {{The FLINT team}},
title = {{fmpz\_mpoly\_pfrac (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_pfrac.html},
note = {Generated 2026-10-20}
}