Algorithm 857: POLSYS_GLP—a parallel general linear product homotopy code for solving polynomial systems of equations

  • Authors:
  • Hai-Jun Su;J. Michael McCarthy;Masha Sosonkina;Layne T. Watson

  • Affiliations:
  • Iowa State University, Ames, IA;University of California, Irvine, Irvine, CA;Ames Laboratory, Ames, IA;Virginia Polytechnic Institute and State University, Blackburg, VA

  • Venue:
  • ACM Transactions on Mathematical Software (TOMS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.01

Visualization

Abstract

Globally convergent, probability-one homotopy methods have proven to be very effective for finding all the isolated solutions to polynomial systems of equations. After many years of development, homotopy path trackers based on probability-one homotopy methods are reliable and fast. Now, theoretical advances reducing the number of homotopy paths that must be tracked and handling singular solutions have made probability-one homotopy methods even more practical. POLSYS_GLP consists of Fortran 95 modules for finding all isolated solutions of a complex coefficient polynomial system of equations. The package is intended to be used on a distributed memory multiprocessor in conjunction with HOMPACK90 (Algorithm 777), and makes extensive use of Fortran 95-derived data types and MPI to support a general linear product (GLP) polynomial system structure. GLP structure is intermediate between the partitioned linear product structure used by POLSYS_PLP (Algorithm 801) and the BKK-based structure used by PHCPACK. The code requires a GLP structure as input, and although finding the optimal GLP structure is a difficult combinatorial problem, generally physical or engineering intuition about a problem yields a very good GLP structure. POLSYS_GLP employs a sophisticated power series end game for handling singular solutions, and provides support for problem definition both at a high level and via hand-crafted code. Different GLP structures and their corresponding Bezout numbers can be systematically explored before committing to root finding.