_gr_poly_resultant_multipoint, gr_poly_resultant_multipoint, _gr_poly_resultant_modular, gr_poly_resultant_modular
#include <flint/gr_poly.h>int _gr_poly_resultant_multipoint(gr_ptr res, gr_srcptr poly1, slong len1, gr_srcptr poly2, slong len2, gr_ctx_t ctx)sourceint gr_poly_resultant_multipoint(gr_ptr res, const gr_poly_t f, const gr_poly_t g, gr_ctx_t ctx)sourceint _gr_poly_resultant_modular(gr_ptr res, gr_srcptr poly1, slong len1, gr_srcptr poly2, slong len2, int proved, gr_ctx_t ctx)sourceint gr_poly_resultant_modular(gr_ptr res, const gr_poly_t f, const gr_poly_t g, int proved, gr_ctx_t ctx)sourceResultants of bivariate polynomials, that is of polynomials whose coefficients are polynomials in another variable (the ring ctx is a polynomial ring), with respect to . They return GR_UNABLE for other rings. The algorithms work on the dense bivariate types: n_bpoly_mod_resultant over a word-size prime field and fmpz_bpoly_resultant over and .
The multipoint version, for coefficients in with a word-size prime, evaluates the coefficients at enough points to determine the result (the degree bound in plus one), computes the univariate resultants at these points and interpolates (Bivariate resultants by evaluation and interpolation). With an FFT-friendly modulus the evaluation and interpolation use a DFT instead of geometric progressions; the evaluations and the univariate resultants are split over the thread pool when there is enough work.
The modular version, for coefficients in or (rational inputs are cleared of denominators), runs the multipoint algorithm modulo several word-size primes and combines the results by Chinese remaindering (fmpz_bpoly_resultant). If proved is 1, enough primes are used to cover a bound for the result, so the result is certain. Otherwise the iteration stops once the reconstruction has not changed for a few consecutive primes, which can be much faster but makes the result correct only with high probability (a Monte Carlo algorithm).
The contexts created by gr_ctx_init_gr_poly (over nmod, fmpz or fmpq) and by gr_ctx_init_fmpz_poly and gr_ctx_init_fmpq_poly supply these algorithms through GR_METHOD_POLY_RESULTANT: the multipoint algorithm when _gr_poly_resultant_multipoint_cutoff accepts the sizes, and the modular algorithm with proved set when the shorter input has at least 7 coefficients or the resultant has degree at least 96 in ; below these sizes the subresultant algorithm is faster.
The FLINT team, “_gr_poly_resultant_multipoint, gr_poly_resultant_multipoint, _gr_poly_resultant_modular, gr_poly_resultant_modular (gr_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/gr_poly/_gr_poly_resultant_multipoint.html (generated 2026-11-02).
@misc{flint-doc-gr-poly-gr-poly-resultant-multipoint,
author = {{The FLINT team}},
title = {{\_gr\_poly\_resultant\_multipoint, gr\_poly\_resultant\_multipoint, \_gr\_poly\_resultant\_modular, gr\_poly\_resultant\_modular (gr\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/gr_poly/_gr_poly_resultant_multipoint.html},
note = {Generated 2026-11-02}
}