In this directory is a higher-order symplectic numerical integrator. It can integrate one orbit of the Kepler problem in 15 milliseconds on a several-years-old laptop, returning to the starting position and velocity with an accuracy of one part in 10^15 or so ... which is not too shabby. It can also handle many other tasks, and can easily be extended. The C++ code you see here is derived from the Fortran programs created by Ernst Hairer et al. See http://www.unige.ch/~hairer/software.html See also ./licence.txt The Fortran was translated to C++ using "f2c". It was then slightly cleaned up and restructured, but much of it is still basically Fortran-style code, so please don't complain that it is not "elegant" C++. The point is, now you can make it gradually more elegant if you want, whereas the Fortran code was never going to get any better. A rudimentary command-line-interface has been added, so that a few parameters can be adjusted without recompiling. Things are now structured so that various "tasks" (i.e. systems of equations of motion) can easily be added to (or removed from) the program. For example, kepler.o can be linked to the executable or not, and the program works either way. To add your own task, copy kepler.c and modify it to do what you want. You must start by changing the class name from "kepler_item" to "your_new_item" or some such, so it won't conflict. Also add your new file to the list of sources in the makefile.