_fmpz_poly_sqrt_classical, fmpz_poly_sqrt_classical, _fmpz_poly_sqrt_divconquer, fmpz_poly_sqrt_divconquer
#include <flint/fmpz_poly.h>int fmpz_poly_sqrt_classical(fmpz_poly_t b, const fmpz_poly_t a)sourceint fmpz_poly_sqrt_divconquer(fmpz_poly_t b, const fmpz_poly_t a)sourceSquare root with the conventions of fmpz_poly_sqrt, computed from the top coefficient down, by the classical O(n^2) algorithm, respectively by divide and conquer. Most non-squares are detected early by cheap tests: the length must be odd, the valuation even, the leading and constant coefficients squares, and certain coefficients even (the square root must exist modulo 2). If exact is 0, the underscore versions only compute the top half of the root and allow a remainder, which is not computed.
The FLINT team, “_fmpz_poly_sqrt_classical, fmpz_poly_sqrt_classical, _fmpz_poly_sqrt_divconquer, fmpz_poly_sqrt_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_sqrt_classical.html (generated 2026-10-20).
@misc{flint-doc-fmpz-poly-fmpz-poly-sqrt-classical,
author = {{The FLINT team}},
title = {{\_fmpz\_poly\_sqrt\_classical, fmpz\_poly\_sqrt\_classical, \_fmpz\_poly\_sqrt\_divconquer, fmpz\_poly\_sqrt\_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_sqrt_classical.html},
note = {Generated 2026-10-20}
}