FLINT3.7.0-dev

fmpz_mpoly_deflate, fmpz_mpoly_inflate

Synopsis#include <flint/fmpz_mpoly.h>
void fmpz_mpoly_deflate(fmpz_mpoly_t A, const fmpz_mpoly_t B, const fmpz * shift, const fmpz * stride, const fmpz_mpoly_ctx_t ctx)source
void fmpz_mpoly_inflate(fmpz_mpoly_t A, const fmpz_mpoly_t B, const fmpz * shift, const fmpz * stride, const fmpz_mpoly_ctx_t ctx)source

Apply e \mapsto (e - \mathit{shift}[v])/\mathit{stride}[v] (deflate) or e \mapsto \mathit{shift}[v] + \mathit{stride}[v] \, e (inflate) to the exponent of each variable v. Shifts and strides must be nonnegative. When deflating, every e - \mathit{shift}[v] must be a nonnegative multiple of the stride, and a zero stride requires e = \mathit{shift}[v], which is mapped to zero; deflating with the output of fmpz_mpoly_deflation therefore always works, and inflating undoes it.

Cite this page

The FLINT team, “fmpz_mpoly_deflate, fmpz_mpoly_inflate (fmpz_mpoly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_mpoly/fmpz_mpoly_deflate.html (generated 2026-10-20).