FLINT3.7.0-dev

fmpz_mpoly_compose_fmpz_mpoly, fmpz_mpoly_compose_fmpz_mpoly_geobucket, fmpz_mpoly_compose_fmpz_mpoly_horner

Synopsis#include <flint/fmpz_mpoly.h>
int fmpz_mpoly_compose_fmpz_mpoly(fmpz_mpoly_t A, const fmpz_mpoly_t B, fmpz_mpoly_struct * const * C, const fmpz_mpoly_ctx_t ctxB, const fmpz_mpoly_ctx_t ctxAC)source
int fmpz_mpoly_compose_fmpz_mpoly_geobucket(fmpz_mpoly_t A, const fmpz_mpoly_t B, fmpz_mpoly_struct * const * C, const fmpz_mpoly_ctx_t ctxB, const fmpz_mpoly_ctx_t ctxAC)source
int fmpz_mpoly_compose_fmpz_mpoly_horner(fmpz_mpoly_t A, const fmpz_mpoly_t B, fmpz_mpoly_struct * const * C, const fmpz_mpoly_ctx_t ctxB, const fmpz_mpoly_ctx_t ctxAC)source

Set A to B(C_0, \ldots, C_{n-1}), where B belongs to ctxB and A and the n polynomials C_i (one per variable of ctxB) belong to ctxAC. A must not alias B or any C_i. Return 1 for success and 0 for failure. If every C_i is zero or a monomial with coefficient 1, fmpz_mpoly_compose_fmpz_mpoly maps the exponents by a matrix (_fmpz_mpoly_compose_mat) and cannot fail; otherwise it uses the Horner method if some C_i has more than one term and the geobucket method otherwise. The geobucket version computes powers of the C_i and sums the terms in a geobucket; the Horner version evaluates a recursive Horner scheme.

Cite this page

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