FLINT3.7.0-dev

cd_poly_find_roots

Synopsis#include <flint/acb_poly.h>
double cd_poly_find_roots(double * roots, const double * poly, const double * initial, slong len, slong maxiter, double reltol)source

Sets 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.

Cite this page

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