_gr_poly_refine_roots_aberth, _gr_poly_refine_roots_wdk
#include <flint/gr_poly.h>int _gr_poly_refine_roots_aberth(gr_ptr w, gr_srcptr f, gr_srcptr f_prime, slong deg, gr_srcptr z, int progressive, gr_ctx_t ctx)sourceint _gr_poly_refine_roots_wdk(gr_ptr w, gr_srcptr f, slong deg, gr_srcptr z, int progressive, gr_ctx_t ctx)sourceGiven approximations z_1, \ldots, z_{\mathit{deg}} of the complex roots of f = \sum_{i=0}^{\mathit{deg}} f_i x^i, compute corrections w_k such that z_k - w_k approximate the roots better if the initial approximations are close enough and the evaluation of f is accurate. These are meant to be called in a loop, over floating-point rings.
The wdk version performs the Weierstrass-Durand-Kerner update
and the aberth version the Aberth-Ehrlich update
which needs the coefficients of f' in f_prime. If progressive is set, the already corrected values z_j - w_j replace z_j in the updates (a Gauss-Seidel variant), which can speed up convergence.
The FLINT team, “_gr_poly_refine_roots_aberth, _gr_poly_refine_roots_wdk (gr_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/gr_poly/_gr_poly_refine_roots_aberth.html (generated 2026-10-20).
@misc{flint-doc-gr-poly-gr-poly-refine-roots-aberth,
author = {{The FLINT team}},
title = {{\_gr\_poly\_refine\_roots\_aberth, \_gr\_poly\_refine\_roots\_wdk (gr\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/gr_poly/_gr_poly_refine_roots_aberth.html},
note = {Generated 2026-10-20}
}