_mpn_mod_poly_divrem_basecase, _mpn_mod_poly_divrem_basecase_preinv1
#include <flint/mpn_mod.h>The partial remainder is kept unreduced in \lceil (2b + \lfloor \log_2 (\mathit{lenA} - \mathit{lenB} + 1) \rfloor + 1) / \mathtt{FLINT\_BITS} \rceil limbs per coefficient, so that each quotient coefficient costs \mathit{lenB} - 1 plain multiplications and additions and one reduction (Division with remainder). The cases \mathit{lenB} = 1, \mathit{lenA} = \mathit{lenB} and \mathit{lenA} = \mathit{lenB} + 1 (the step of Euclid's algorithm) have special code; a monic divisor saves the multiplications by invL.
The FLINT team, “_mpn_mod_poly_divrem_basecase, _mpn_mod_poly_divrem_basecase_preinv1 (mpn_mod.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/mpn_mod/_mpn_mod_poly_divrem_basecase.html (generated 2026-10-20).
@misc{flint-doc-mpn-mod-mpn-mod-poly-divrem-basecase,
author = {{The FLINT team}},
title = {{\_mpn\_mod\_poly\_divrem\_basecase, \_mpn\_mod\_poly\_divrem\_basecase\_preinv1 (mpn\_mod.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/mpn_mod/_mpn_mod_poly_divrem_basecase.html},
note = {Generated 2026-10-20}
}