This paper book of 300 pages presents theory implemented by sixty subroutines, all included in the book, which in turn made the book's 150 figures. Behind the paper book are about seventy figure-making directories, a large volume of Stanford Exploration Project utility software, and some real datasets you can experiment with if you have access to the electronic form of the book. I made nearly all of the figures myself. Even without the electronic book, from the printed subroutines only, you should be able to produce results similar to mine and, beyond this, use the subroutines in your own work.
If you have access to the electronic form of this book, you can read it from a computer screen and press the buttons in the figure captions to rebuild and redisplay the figures. Some of the figures are in color, some are interactive, and some are movies. But this is not the goal of the electronic book. Its goal is to enable you to reproduce all my figures with reasonable ease, to change parameters, to try other datasets, to modify the programs, and to experiment with the theoretical concepts.
I could have written the programs in this book in vanilla Fortran or C and suffered the verbosity and blemishes of these languages. Instead I chose to write the programs in a Fortran dialect that, like mathematics, is especially suited to the exposition of technical concepts. At Stanford we translate these programs to Fortran automatically by passing them first through a home-made processor named sat, which overcomes Fortran's inability to create temporary arrays of arbitrary dimension, and second through AT&T's Ratfor (Rational Fortran) preprocessor. If you wish, a program called f2c, freely available from AT&T, will translate the Fortran to C.
My goal in writing the programs in this book was not to write
the best possible code
with the clearest possible definitions of inputs and outputs.
That would be a laudable goal for a reference work
such as Numerical Recipes (Press et al.).
Instead, I present a full mathematical analysis
with simple and concise code
along with meaningful examples of its use.
I use the code as others might use pseudocode--to exemplify
and clarify the concepts.
These programs,
which also made the book's figures,
are not guaranteed to be free of errors.
Since the word processor and the compiler
got the programs from the same place, however,
there can be no errors of transcription.