Papers › General Complex Polynomial Root Solver and Its Further Optimization for Binary Microlenses

General Complex Polynomial Root Solver and Its Further Optimization for Binary Microlenses

5 Mar 2012arXiv:1203.1034links table onlyarchive 2025-07-28

J. Skowron, A. Gould

The archive published only this paper's code-link row. Authors, date and abstract are from arXiv's metadata (CC0), read from the Kaggle arXiv metadata snapshot of 2026-09-12 where its title matched the archive's; the title is the archive's.

We present a new algorithm to solve polynomial equations, and publish its code, which is 1.6-3 times faster than the ZROOTS subroutine that is commercially available from Numerical Recipes, depending on application. The largest improvement, when compared to naive solvers, comes from a fail-safe procedure that permits us to skip the majority of the calculations in the great majority of cases, without risking catastrophic failure in the few cases that these are actually required. Second, we identify a discriminant that enables a rational choice between Laguerre's Method and Newton's Method (or a new intermediate method) on a case-by-case basis. We briefly review the history of root solving and demonstrate that "Newton's Method" was discovered neither by Newton (1671) nor by Raphson (1690), but only by Simpson (1740). Some of the arguments leading to this conclusion were first given by the British historian of science Nick Kollerstrom in 1992, but these do not appear to have penetrated the astronomical community. Finally, we argue that Numerical Recipes should voluntarily surrender its copyright protection for non-profit applications, despite the fact that, in this particular case, such protection was the major stimulant for developing our improved algorithm.

PaperPDFCode

Code

giordano/PolynomialRoots.jl mentioned on GitHub report
kerwanntep/cat mentioned on GitHub report
rkkuang/triplelens mentioned on GitHub report
valboz/VBBinaryLensing mentioned on GitHub report
valboz/vbmicrolensing mentioned on GitHub report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

Not run by Syntology. Nothing on this page verifies that the listed code works.

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections