FLINT3.7.0-dev

_nmod_poly_KS2_recover_reduce, _nmod_poly_KS2_recover_reduce1, _nmod_poly_KS2_recover_reduce2, _nmod_poly_KS2_recover_reduce2b, _nmod_poly_KS2_recover_reduce3

Synopsis#include <flint/nmod_poly.h>
void _nmod_poly_KS2_recover_reduce(nn_ptr res, slong s, nn_srcptr op1, nn_srcptr op2, slong n, ulong b, nmod_t mod)source
void _nmod_poly_KS2_recover_reduce1(nn_ptr res, slong s, nn_srcptr op1, nn_srcptr op2, slong n, ulong b, nmod_t mod)source
void _nmod_poly_KS2_recover_reduce2(nn_ptr res, slong s, nn_srcptr op1, nn_srcptr op2, slong n, ulong b, nmod_t mod)source
void _nmod_poly_KS2_recover_reduce2b(nn_ptr res, slong s, nn_srcptr op1, nn_srcptr op2, slong n, ulong b, nmod_t mod)source
void _nmod_poly_KS2_recover_reduce3(nn_ptr res, slong s, nn_srcptr op1, nn_srcptr op2, slong n, ulong b, nmod_t mod)source

Recover n coefficients of 2b bits from two sequences of n + 1 digits of b bits, unpacked from an integer product evaluated at 2^b (op1, low digits first) and from the product of the reversed polynomials (op2), propagating the borrows between them; reduce the coefficients modulo n and write them with stride s. Used by _nmod_poly_mul_KS4. The variants require 2b \le \mathtt{FLINT\_BITS} (1), \mathtt{FLINT\_BITS} < 2b < 2 \mathtt{FLINT\_BITS} (2), b = \mathtt{FLINT\_BITS} (2b) and 2 \mathtt{FLINT\_BITS} < 2b \le 3 \mathtt{FLINT\_BITS} (3); the version without suffix dispatches on b.

Cite this page

The FLINT team, “_nmod_poly_KS2_recover_reduce, _nmod_poly_KS2_recover_reduce1, _nmod_poly_KS2_recover_reduce2, _nmod_poly_KS2_recover_reduce2b, _nmod_poly_KS2_recover_reduce3 (nmod_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_poly/_nmod_poly_KS2_recover_reduce.html (generated 2026-10-20).