EuroSciPy logo

EuroSciPy 2013

Brussels, Belgium - August 21-24 2013

modernizing PHCpack through phcpy

Jan Verschelde


PHCpack is a large software system, mainly written in Ada, used for solving systems of polynomial equations. Except for the blackbox solver (executed as "phc -b"), the program is menu driven and file oriented. The talk describes the development of phcpy, a Python interface to PHCpack. Instead of navigating through menus, users of phcpy solve systems in the Python shell or via scripts. Persistent objects replace intermediate files.

The first part of the talk will describe the design of phcpy, as an application of a facade pattern to incrementally convert a legacy system as PHCpack into a modern Python package: phcpy. In the second part we discuss how phcpy relates to Sage and how it fits into Python's computational ecosystem. Applications of phcpy are high level parallelism to distribute path tracking jobs between several workstations and the building of a web interface to PHCpack.