All the program given here are written in C. However I tried to stay as near as possible to the Fortran. Therefore you should have no problem to translate them in Fortran line by line. If you have any problem, please send me an email: Loison.Damien(the usual sign)gmail.com.

Random number generator

I use this random number generator: http://www.math.keio.ac.jp/matumoto/emt.html
It is not the same that I give in the programs because it was easier to give the numerical recipies random number because it exists also in Fortran. Anyway I advice you to use the reference given above if you program in C/C++.


The proposed programs (Fast Linear Algorithm, Alias Walker Hasting ...) use a lot of arrays to store the informations before the calculation. Therefore the time to retrieve these informations is fundamental.
This explains why the performances of each algorithm will depend strongly of the Cache Memory of the computer. The Cache Memory is a small amount of memory with an access ten time faster than the usual memory for the processor.
I compare the programs with a Athlon 1800 with 250 KBytes cache memory. The "actual" computer (in 2004) have now until 1000 KBytes of cache memory. Therefore the performance of the proposed programs will increase.
Moreover The performance will depend also of the compiler. I use the intel compiler "icc" for LINUX with the option -O. The executable produced is almost two times faster as the one produced by "gcc".