cd_poly_find_roots
#include <flint/acb_poly.h>double cd_poly_find_roots(double * roots, const double * poly, const double * initial, slong len, slong maxiter, double reltol)sourceSets roots (room for 2\,\mathit{len} doubles) to approximations of the \mathit{len} - 1 roots of poly and returns the largest relative step |\Delta z_k| / |z_k| of the last iteration (at least 2^{-50}). initial is NULL or holds \mathit{len} - 1 starting values (zero entries are replaced by values from the Newton polygon).
Zero leading coefficients give roots at infinity (set to 2^{1023}(1 + i)) and zero trailing coefficients roots at zero. At most maxiter iterations are done; the iteration stops when d - 1 times the largest relative step is below reltol, where d is the number of finite nonzero roots, or when the step is below 2^{-50}. Each step is limited to an absolute size between 2^{-10} and 2^{-3}, adapted to the progress (the callers scale the polynomial so that the roots have modulus near 1), and roots of modulus greater than 1 are updated through the reversed polynomial to avoid overflow. The output is sorted.
The FLINT team, “cd_poly_find_roots (acb_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb_poly/cd_poly_find_roots.html (generated 2026-10-20).
@misc{flint-doc-acb-poly-cd-poly-find-roots,
author = {{The FLINT team}},
title = {{cd\_poly\_find\_roots (acb\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/acb_poly/cd_poly_find_roots.html},
note = {Generated 2026-10-20}
}