FLINT3.7.0-dev

nmod_mpolyn_interp_reduce_2sm_poly, nmod_mpolyn_interp_lift_2sm_poly, nmod_mpolyn_interp_crt_2sm_poly, nmod_mpolyn_interp_lift_sm_bpoly, nmod_mpolyn_interp_crt_sm_bpoly, nmod_mpolyn_interp_reduce_2sm_mpolyn, nmod_mpolyn_interp_lift_2sm_mpolyn, nmod_mpolyn_interp_crt_2sm_mpolyn, nmod_mpolyun_interp_reduce_sm_mpolyu, nmod_mpolyn_interp_lift_sm_mpoly, nmod_mpolyun_interp_lift_sm_mpolyu, nmod_mpolyn_interp_crt_sm_mpoly, nmod_mpolyun_interp_crt_sm_mpolyu, nmod_mpolyn_interp_mcrt_sm_mpoly

Synopsis#include <flint/nmod_mpoly.h>
void nmod_mpolyn_interp_reduce_2sm_poly(n_poly_t E, n_poly_t F, const nmod_mpolyn_t A, n_poly_t alphapow, const nmod_mpoly_ctx_t ctx)source
void nmod_mpolyn_interp_lift_2sm_poly(slong * lastdeg_, nmod_mpolyn_t F, const n_poly_t A, const n_poly_t B, ulong alpha, const nmod_mpoly_ctx_t ctx)source
int nmod_mpolyn_interp_crt_2sm_poly(slong * lastdeg_, nmod_mpolyn_t F, nmod_mpolyn_t T, const n_poly_t A, const n_poly_t B, const n_poly_t modulus, n_poly_t alphapow, const nmod_mpoly_ctx_t ctx)source
void nmod_mpolyn_interp_lift_sm_bpoly(nmod_mpolyn_t F, n_bpoly_t A, const nmod_mpoly_ctx_t ctx)source
int nmod_mpolyn_interp_crt_sm_bpoly(slong * lastdeg, nmod_mpolyn_t F, nmod_mpolyn_t T, n_bpoly_t A, n_poly_t modulus, n_poly_t alphapow, const nmod_mpoly_ctx_t ctx)source
void nmod_mpolyn_interp_reduce_2sm_mpolyn(nmod_mpolyn_t E, nmod_mpolyn_t F, nmod_mpolyn_t A, slong var, n_poly_t alphapow, const nmod_mpoly_ctx_t ctx)source
void nmod_mpolyn_interp_lift_2sm_mpolyn(slong * lastdeg, nmod_mpolyn_t T, nmod_mpolyn_t A, nmod_mpolyn_t B, slong var, ulong alpha, const nmod_mpoly_ctx_t ctx)source
int nmod_mpolyn_interp_crt_2sm_mpolyn(slong * lastdeg, nmod_mpolyn_t F, nmod_mpolyn_t T, nmod_mpolyn_t A, nmod_mpolyn_t B, slong var, n_poly_t modulus, n_poly_t alphapow, const nmod_mpoly_ctx_t ctx)source
void nmod_mpolyun_interp_reduce_sm_mpolyu(nmod_mpolyu_t B, nmod_mpolyun_t A, ulong alpha, const nmod_mpoly_ctx_t ctx)source
void nmod_mpolyn_interp_lift_sm_mpoly(nmod_mpolyn_t A, const nmod_mpoly_t B, const nmod_mpoly_ctx_t ctx)source
void nmod_mpolyun_interp_lift_sm_mpolyu(nmod_mpolyun_t A, const nmod_mpolyu_t B, const nmod_mpoly_ctx_t ctx)source
int nmod_mpolyn_interp_crt_sm_mpoly(slong * lastdeg, nmod_mpolyn_t F, nmod_mpolyn_t T, nmod_mpoly_t A, n_poly_t modulus, ulong alpha, const nmod_mpoly_ctx_t ctx)source
int nmod_mpolyun_interp_crt_sm_mpolyu(slong * lastdeg, nmod_mpolyun_t F, nmod_mpolyun_t T, nmod_mpolyu_t A, n_poly_t modulus, ulong alpha, const nmod_mpoly_ctx_t ctx)source
int nmod_mpolyn_interp_mcrt_sm_mpoly(slong * lastdeg_, nmod_mpolyn_t F, const nmod_mpoly_t A, const n_poly_t modulus, n_poly_t alphapow, const nmod_mpoly_ctx_t ctx)source

Interpolation steps of Brown's algorithm: reduce evaluates the last variable at a point \alpha (the 2sm versions at \pm\alpha at once), lift turns a first image into a polynomial in the last variable, and crt combines the current interpolant F (modulo modulus) with a new image by the Chinese remainder theorem, returning whether F changed and updating lastdeg, the degree in the last variable.

Cite this page

The FLINT team, “nmod_mpolyn_interp_reduce_2sm_poly, nmod_mpolyn_interp_lift_2sm_poly, nmod_mpolyn_interp_crt_2sm_poly, nmod_mpolyn_interp_lift_sm_bpoly, nmod_mpolyn_interp_crt_sm_bpoly, nmod_mpolyn_interp_reduce_2sm_mpolyn, nmod_mpolyn_interp_lift_2sm_mpolyn, nmod_mpolyn_interp_crt_2sm_mpolyn, nmod_mpolyun_interp_reduce_sm_mpolyu, nmod_mpolyn_interp_lift_sm_mpoly, nmod_mpolyun_interp_lift_sm_mpolyu, nmod_mpolyn_interp_crt_sm_mpoly, nmod_mpolyun_interp_crt_sm_mpolyu, nmod_mpolyn_interp_mcrt_sm_mpoly (nmod_mpoly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_mpoly/nmod_mpolyn_interp_reduce_2sm_poly.html (generated 2026-10-20).