fmpz_mpoly_compose_fmpz_mpoly, fmpz_mpoly_compose_fmpz_mpoly_geobucket, fmpz_mpoly_compose_fmpz_mpoly_horner
#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)sourceint 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)sourceint 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)sourceSet 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.
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).
@misc{flint-doc-fmpz-mpoly-fmpz-mpoly-compose-fmpz-mpoly,
author = {{The FLINT team}},
title = {{fmpz\_mpoly\_compose\_fmpz\_mpoly, fmpz\_mpoly\_compose\_fmpz\_mpoly\_geobucket, fmpz\_mpoly\_compose\_fmpz\_mpoly\_horner (fmpz\_mpoly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_mpoly/fmpz_mpoly_compose_fmpz_mpoly.html},
note = {Generated 2026-10-20}
}