The Posso Library for Polynomial System Solving

The PoSSo library is a sophisticated library of tools for solving systems of polynomial equations. Each tool is supplied as a framework, rather than as a traditional program library or as a self-contained package, providing a unusual level of exibility. Each framework consists of a collection of C++ classes, which allows the customisation of each tool. Customisation can happen either at compile time with the addition of new derived classes, or at run time through the selection from tables among predeened choices. Tools like the Customisable Memory Management, allow for instance memory management to be nely tuned to the requirements of the Buchberger algorithm. This algorithm in turn can be specialised to work on diierent polynomial rings. The library achieves high levels of eeciency both by incorporating advanced algorithms and by allowing the user to select the most appropriate strategy for each particular problem. 1. The PoSSo project Project PoSSo (Polynomial System Solving) has developed symbolic computation tools for eeciently solving systems of polynomial equations. These tools are collected in a portable library which provides the latest algorithms for polynomial systems. The library is suitable for incorporation into applications programs, in areas such as: kinematics, control theory, geometric modelling, and biochemistry. Purely numerical solving of polynomial systems manifests some problems: numerical inaccuracy; failing to nd all solutions or to recognise under-determined systems; not providing an understanding of the structure of the solutions; and inability to handle over-determined systems. These problems are not purely theoretical: they have caused major practical problems in areas ranging from aerospace engineering to pharmacology. The solution to these problems is to perform symbolic computation on the set of polynomial equations (and inequalities) instead of, or as well as, numeric computation. Such computations require proper use of advanced mathematical concepts. While currently scientiic software in general and computer algebra in particular is delivered to users via all-purpose packages which provide a variety of services, the 1