_fmpz_poly_sqrtrem_classical, fmpz_poly_sqrtrem_classical, _fmpz_poly_sqrtrem_divconquer, fmpz_poly_sqrtrem_divconquer
Synopsis
#include <flint/fmpz_poly.h>int fmpz_poly_sqrtrem_classical(fmpz_poly_t b, fmpz_poly_t r, const fmpz_poly_t a)sourceint _fmpz_poly_sqrtrem_divconquer(fmpz * res, fmpz * r, const fmpz * poly, slong len, fmpz * temp)sourceint fmpz_poly_sqrtrem_divconquer(fmpz_poly_t b, fmpz_poly_t r, const fmpz_poly_t a)sourceIf a can be written as b^2 + r with b \in \mathbb{Z}[x] and \deg r < \deg a / 2 (equivalently, \deg r < \deg b), set b and r and return 1; otherwise return 0. The underscore versions write \mathit{len}/2 + 1 coefficients of b and require room for len coefficients in r, which may be equal to poly; the divide-and-conquer version also takes a temporary array of len coefficients.
Cite this page
The FLINT team, “_fmpz_poly_sqrtrem_classical, fmpz_poly_sqrtrem_classical, _fmpz_poly_sqrtrem_divconquer, fmpz_poly_sqrtrem_divconquer (fmpz_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_poly/_fmpz_poly_sqrtrem_classical.html (generated 2026-10-20).
@misc{flint-doc-fmpz-poly-fmpz-poly-sqrtrem-classical,
author = {{The FLINT team}},
title = {{\_fmpz\_poly\_sqrtrem\_classical, fmpz\_poly\_sqrtrem\_classical, \_fmpz\_poly\_sqrtrem\_divconquer, fmpz\_poly\_sqrtrem\_divconquer (fmpz\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_poly/_fmpz_poly_sqrtrem_classical.html},
note = {Generated 2026-10-20}
}