Announcing Polyroots-Fortran, a new Modern Fortran library for finding the roots of polynomial equations. Many of the routine are refactored versions of classic codes (e.g., from SLATEC), but there are also more modern routines. The goal is to continue to expand the library.
Features include:
- Lots of different methods (see the Readme for a list), for both real and complex coefficients.
- Modern code (free-form, no gotos, etc.)
- Works with the amazing Fortran Package Manager
- Selectable
real
kind (works for real32
, real64
, and real128
). To my knowledge, this library contains some of the only real128
compatible versions of these algorithms that I’ve seen.
Join us and help to improve it!
16 Likes
Thanks for all the effort you’ve put into this so far!
I wonder if the MATLAB roots
routine does anything differently than the polyroots
function in your new collection. For a quad-precision (Fortran) eigenvalue solver, I’ve located the following two packages:
offered by the Center for Computational Science & e-Systems of the Japan Atomic Energy Agency. Looking at the documentation it appears that both double-double (DD) and quadruple precision (QP) routines are available. (For the latter only if the compiler supports it.)
1 Like
Nice! I’ll look into them. For the record, all the routines in there now do support quad precision, except for the two LAPACK-based ones.
For the record, these are the methods we have now:
What I love about this is that here are 50 years of Fortran codes, all in one place, well documented, easy to use, easy to incorporate into other codes (via FPM), cleaned up and modernized and ready for use for the next 50 years.
Meanwhile I have Python and Julia code from a couple years ago that doesn’t work anymore.
9 Likes