Paul Breiding is a postdoctoral fellow in the nonlinear algebra group interested in numerical computing and algebraic geometry. Together with Sascha Timme, a PhD student at TU Berlin under the supervision of Michael Joswig and Bernd Sturmfels, he has been developing the HomotopyContinuation.jl Julia package for solving systems of polynomial equations using the homotopy continuation method.
Julia is a high-level, high-performance dynamic programming language for numerical computing, widely used in numerical mathematics. Motivated by its popularity, Paul and Sascha developed a fast, user-friendly and easy to use package that combines the power of homotopy continuation with the flexibility of Julia.
Their dedicated website not only contains the package full documentation, but also a blog where the developers regularly post updates and examples of problems and solutions. An overview of the package and of its applications can also be found in a recent arXiv preprint.
In the FAQ section on their website, the developers acknowledge and recognise the influence of other programs and packages in shaping their creation:
“HomotopyContinuation.jl is only the newest of a couple of implementations established through academic research. Others that must be mentioned are Bertini, PHCpack and HOM4PS. We wish to stress that by using those programs we learned a lot about homotopy continuation and numerical algebraic geometry in general. Without those programs the development of HomotopyContinuation.jl wouldn’t have been possible.”
The HomotopyContinuation.jl package is licensed under MIT and it is absolutely free for personal or commercial use.