FLINT3.7.0-dev

_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 * res, fmpz * r, const fmpz * poly, slong len)source
int fmpz_poly_sqrtrem_classical(fmpz_poly_t b, fmpz_poly_t r, const fmpz_poly_t a)source
int _fmpz_poly_sqrtrem_divconquer(fmpz * res, fmpz * r, const fmpz * poly, slong len, fmpz * temp)source
int fmpz_poly_sqrtrem_divconquer(fmpz_poly_t b, fmpz_poly_t r, const fmpz_poly_t a)source

If 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).