- differential equations,
- difference equations,
- delay equations,
- functional equations,
- boundary value problems, and

It evolved from a chapter written by John Rinzel and me on the qualitative theory of nerve membranes and eventually became a commercial product for MSDOS computers called PHASEPLANE. It is now available as a program running under X11 and Windows.

The code brings together a number of useful algorithms and is extremely portable. All the graphics and interface are written completely in Xlib which explains the somewhat idiosyncratic and primitive widgets interface.

XPP contains the code for the popular bifurcation program, AUTO . Thus, you can switch back and forth between XPP and AUTO, using the values of one program in the other and vice-versa. I have put a ``friendly'' face on AUTO as well. You do not need to know much about it to play around with it.

XPP has the capabilities for handling up to 590 differential equations.

- There areover a dozen solvers including several for stiff systems, a solver for integral equations and a symplectic solver.
- Up to 10 graphics windows can be visible at once and a variety of color combinations is supported.
- PostScript output is supported as well as GIF and animater GIF movies
- Post processing is easy and includes the ability to make histograms, FFTs and applying functions to columns of your data.
- Equilibria and linear stability as well as one-dimensional invariant sets can be computed.
- Nullclines and flow fields aid in the qualitative understanding of two-dimensional models.
- Poincare maps and equations on cylinders and tori are also supported.
- Some useful averaging theory tricks and various methods for dealing with coupled oscillators are included primarily because that is what I do for a living.
- Equations with Dirac delta functions are allowable.
- I have added an animation package that allows you to
create animated versions of your simulations, such as a little
pendulum moving back and forth or lamprey swimming.
See
toys! for examples. - There is a curve-fitter based on the Marquardt-Levenberg algorithm which lets you fit data points to the solutions to dynamical systems.
- It is possible to automatically generate ``movies'' of three-dimensional views of attractors or parametric changes in the attractor as some parameters vary.
- Dynamically link to external subroutines

XPP has been successfully compiled on a SPARC II under OpenLook, a SPARC 1.5 running generic X, a NeXT running X11R4, a DEC 5000, a PC using Linux or Windows, and SGI and an HP 730. It also runs under Win95/NT/98 if you have an X-Server. I cannot vouch for other platforms but it has been compiled on the IBM RS6000. Building XPP requires only the standard C compiler, and Xlib. Look at the any README files that come with the distribution for solutions to common compilation problems.