# Non-Linear Algebra Methods and Software

## "computer techniques and methods"

This section contains links to a variety of non-linear algebra methods
and solvers. Some of the software is ported to C or C++ from other languages and
some is unique or unavailable elsewhere.

The contents of some of the navigation subsections above are:

- LINEAR — linear solvers, including ports and original code,
- INTEGRATION — integrators, including QUADPACK and double exponential,
- ROOTS — advanced polynomial root-finders, original methods and ports,
- XBCD-MATH — an extended precision BCD math package for calculator use,
- PARSERS — a collection of math expression parsers: double and complex.

## Ports of Polynomial Root Finders

A variety of nonlinear solvers can be found on this website. Some are ported from FORTRAN to C, e.g. from MINPACK, and others
have been custom written for some special benefit -- generally performance.

### Jenkins-Traub Method

This port of the Jenkins-Traub method to C++ language can also be downloaded from other pages on this web site. A link is included
here for convenience.

### Bairstow's Method

This method for finding real and complex roots of real
polynomials is particularly well suited for engineering applications. In those
applications, the problem of roots with high multiplicity rarely arise. Since
the method involves reduction of the polynomial to quadratic factors, it can be
implemented without the need for complex math support. (Complex roots appear in
conjugate pairs, and the corresponding quadratic has real coefficients.)A simple
DOS application for finding all roots of polynomials with real coefficients based on Bairstow's method
is available for download here.